جدول المحتويات:
- الخطوة 1: الأشياء التي تحتاجها
- الخطوة 2: التوصيلات
- الخطوة 3: تنزيل المكتبات
- الخطوة 4: ما هو NTP
- الخطوة 5: جزء الترميز
- الخطوة 6: الحصول على التاريخ والوقت
فيديو: ساعة الإنترنت: عرض التاريخ والوقت باستخدام OLED باستخدام ESP8266 NodeMCU مع بروتوكول NTP: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
مرحبًا يا رفاق في هذه التعليمات ، سنبني ساعة إنترنت ستحصل على وقت من الإنترنت لذلك لن يحتاج هذا المشروع إلى أي RTC لتشغيله ، وسيحتاج فقط إلى اتصال إنترنت فعال
وبالنسبة لهذا المشروع ، فأنت بحاجة إلى esp8266 التي ستحتوي على شبكة wifi للوصول إلى الإنترنت وشاشة لعرض الوقت عليها و esp8266 ستجلب الوقت من الإنترنت باستخدام بروتوكول NTP ، وتقف ntp على بروتوكول وقت الشبكة ، لذلك توجد خوادم ntp بشكل أساسي على الويب والتي تُستخدم لمزامنة ساعات الكمبيوتر وسنستخدم خوادم bthose للحصول على الوقت في مشروعنا.
الخطوة 1: الأشياء التي تحتاجها
لهذا المشروع ، ستحتاج إلى الأشياء التالية:
Esp8266 / nodemcu
ssd1306 أولد 0.96 بوصة
أسلاك العبور
اللوح
كابل USB
الخطوة 2: التوصيلات
تتصل شاشة OLED ذات 4 سنون بوحدة ESP8266 باستخدام بروتوكول I2C ، فيما يلي مخطط الدائرة وجدول التوصيلات لتوصيل دبابيس OLED I2C بـ NodeMCU لعرض وقت الإنترنت.
الخطوة 3: تنزيل المكتبات
تأكد من تنزيل مكتبات SD1306 في Arduino ID الخاص بك كما هو موضح في الصورة وتأكد من مكتبة Adafruit GFX أيضًا ، إذا لم يكن الأمر كذلك ، فقم بتثبيت هاتين المكتبتين.
في Arduino IDE الخاص بك ، انتقل إلى Libraries manager وابحث عن NTP وقم فقط بتنزيل مكتبة عميل NTP أثناء تنزيلها ، وارجع إلى الصورة للحصول على مزيد من المساعدة.
الخطوة 4: ما هو NTP
يعد NTP أحد أقدم بروتوكولات الإنترنت الشبكية (IP) لمزامنة الساعات بين شبكات الكمبيوتر. تم تصميمه بواسطة David L. Mills من جامعة ديلاوير في عام 1981. يمكن استخدام هذا البروتوكول لمزامنة العديد من الشبكات مع التوقيت العالمي المنسق (UTC) في غضون أجزاء قليلة من الثانية. التوقيت العالمي المنسق (UTC) هو معيار الوقت الأساسي الذي ينظم العالم من خلاله الساعة والوقت. لا تتغير شركة UTC وتختلف باختلاف المواقع الجغرافية. يستخدم NTP التوقيت العالمي المنسق كمرجع زمني ويوفر وقتًا دقيقًا ومتزامنًا عبر الإنترنت.
يعمل NTP على نموذج خادم العميل الهرمي. يحتوي الطراز الأعلى على ساعات مرجعية تُعرف باسم "الطبقة 0" مثل الساعات الذرية ، وموجات الراديو ، ونظام تحديد المواقع العالمي ، ونظام GSM الذي يستقبل الوقت من القمر الصناعي. الخوادم التي تتلقى الوقت من stratum0 تسمى "stratum1" والخوادم التي تتلقى الوقت من الطبقة 1 تسمى "stratum2" وهكذا. يستمر هذا وتتناقص دقة الوقت بعد كل مرحلة. يختار NTP تلقائيًا أفضل مصادر الوقت المتاحة المتعددة للمزامنة مما يجعله بروتوكولًا قادرًا على تحمل الأخطاء. هنا في هذا المشروع ، نحصل على وقت من خادم NTP باستخدام ESP8266 NodeMCU ونعرضه على شاشة OLED. تم إنشاء هذا النوع نفسه من ساعة الإنترنت باستخدام ESP32 في البرنامج التعليمي السابق.
الخطوة 5: جزء الترميز
لطلب التاريخ والوقت ، قم بتهيئة عميل الوقت بعنوان خوادم NTP. للحصول على دقة أفضل ، اختر عنوان خوادم NTP القريبة من منطقتك الجغرافية. هنا نستخدم “pool.ntp.org” الذي يوفر خوادم من جميع أنحاء العالم. إذا كنت ترغب في اختيار خوادم من آسيا يمكنك استخدام “asia.pool.ntp.org”. يأخذ timeClient أيضًا تعويض التوقيت العالمي المنسق (UTC) بالمللي ثانية من منطقتك الزمنية. على سبيل المثال ، تعويض التوقيت العالمي المنسق (UTC) للهند هو +5: 30 لذلك نقوم بتحويل هذه الإزاحة بالمللي ثانية والتي تساوي 5 * 60 * 60 + 30 * 60 = 19800.
منطقة. تعويض الوقت بالتوقيت العالمي المنسق (ساعات ودقائق). تعويض الوقت بالتوقيت العالمي المنسق (بالثواني)
الهند +5: 30 19800
لندن 0:00. 0
نيويورك -5: 00-18000
يرجى نسخ الكود التالي وإدخال wifi الخاص بك وكلمة المرور في الكود وإدخال إزاحة الوقت في الكود ثم تحميله على لوحات esp8266 الخاصة بك.:
#include "NTPClient.h" #include "ESP8266WiFi.h" // يوفر إجراءات Wi-Fi محددة لـ ESP8266 نتصل بها للاتصال بالشبكة # تتضمن "WiFiUdp.h" // يعالج إرسال واستقبال حزم UDP
# تضمين "SPI.h" // SPI للتفاعل مع OLED مع NodeMCu
# تضمين "Adafruit_GFX.h"
# تضمين "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // عرض شاشة OLED ، بالبكسل
#define SCREEN_HEIGHT 64 // ارتفاع عرض OLED ، بالبكسل
# تعريف OLED_RESET -1
عرض Adafruit_SSD1306 (SCREEN_WIDTH ، SCREEN_HEIGHT ، & Wire ، OLED_RESET) ؛
constchar * ssid = "yourwifissid" ؛
const char * password = "yourwifipass" ؛
WiFiUDP ntpUDP ؛
NTPClient timeClient (ntpUDP، "pool.ntp.org"، 19800، 60000) ؛
String arr_days = {"الأحد" ، "الإثنين" ، "الثلاثاء" ، "الأربعاء" ، "الخميس" ، "الجمعة" ، "السبت"} ؛
سلسلة تاريخ_وقت ؛ // يمكنك تحديد تجمع خادم الوقت والإزاحة (بالثواني ، يمكن // تغييرها لاحقًا باستخدام setTimeOffset ()). يمكنك أيضًا تحديد // الفاصل الزمني للتحديث (بالمللي ثانية ، يمكن تغييره باستخدام setUpdateInterval ()).
الإعداد باطل()
{
Serial.begin (115200) ؛
WiFi.begin (SSID ، كلمة المرور) ؛
بينما (WiFi.status ()! = WL_CONNECTED)
{
تأخير (500) ؛
Serial.print (".") ؛
}
إذا (! display.begin (SSD1306_SWITCHCAPVCC، 0x3C))
{
Serial.println (F ("فشل تخصيص SSD1306")) ؛
ل(؛؛)؛ // لا تتابع ، حلقة إلى الأبد
}
display.clearDisplay () ،
display.setTextSize (2) ، // ارسم نصًا بمقياس 2X
display.setTextColor (WHITE) ،
display.setCursor (5، 2) ؛
display.println ("WELCOME TO") ؛
display.println ("تعليمات") ؛
display.println ("المشروع") ؛
display.display () ،
تأخير (3000) ؛
timeClient.begin () ،
}
حلقة فارغة()
{
timeClient.update () ،
display.clearDisplay () ،
Serial.println (timeClient.getFormattedTime ()) ،
display.setTextSize (2) ، // ارسم نصًا بمقياس 2X
display.setTextColor (BLUE) ؛
display.setCursor (0، 2) ؛
int hh = timeClient.getHours () ،
int mm = timeClient.getMinutes () ،
int ss = timeClient.getSeconds () ،
إذا (hh> 12)
{
hh = hh-12 ؛
display.print (hh) ؛
display.print (":") ؛
طباعة الشاشة (مم) ؛
display.print (":") ؛
display.print (ss) ؛
display.println ("PM") ؛
}
آخر
{
display.print (hh) ؛
display.print (":") ؛
طباعة الشاشة (مم) ؛
display.print (":") ؛
display.print (ss) ؛
display.println ("AM") ؛
}
اليوم int = timeClient.getDay () ،
display.println ("" "+ arr_days [اليوم] +" "") ؛
date_time = timeClient.getFormattedDate () ،
int index_date = date_time.indexOf ("T") ؛
تاريخ السلسلة = date_time.substring (0، index_date) ؛
Serial.println (التاريخ) ؛
display.println (التاريخ) ؛
display.display () ،
// إظهار النص الأولي}
الخطوة 6: الحصول على التاريخ والوقت
إذا قمت بتوصيل كل شيء بشكل صحيح وقمت بتحميل الكود بشكل صحيح أيضًا ، فستتمكن من رؤية ساعة ntp تعمل على شاشة oled كما لو كنت تعمل في شاشة oled. يرجى الرجوع إلى الصورة للإخراج.
موصى به:
الحصول على الوقت من الإنترنت باستخدام ESP8266 - مشروع ساعة NTP مع Nodemcu ESP8266: 5 خطوات
الحصول على الوقت من الإنترنت باستخدام ESP8266 | مشروع ساعة NTP مع ESP8266 Nodemcu: في هذا البرنامج التعليمي سنرى كيفية الحصول على الوقت باستخدام ESP8266 / nodemcu مع Arduino IDE. يعد الحصول على الوقت مفيدًا بشكل خاص في تسجيل البيانات للطابع الزمني لقراءاتك. إذا كان مشروع ESP8266 الخاص بك يتمتع بإمكانية الوصول إلى الإنترنت ، فيمكنك الحصول على الوقت باستخدام Network T
ساعة الشبكة ESP8266 بدون أي RTC - Nodemcu NTP Clock No RTC - مشروع ساعة الإنترنت: 4 خطوات
ساعة الشبكة ESP8266 بدون أي RTC | Nodemcu NTP Clock No RTC | مشروع ساعة الإنترنت: في المشروع ، سيتم إنشاء مشروع ساعة بدون RTC ، سيستغرق الأمر وقتًا من الإنترنت باستخدام wifi وسيعرضه على شاشة st7735
عرض التاريخ والوقت ودرجة الحرارة باستخدام XinaBox: 8 خطوات
عرض التاريخ والوقت ودرجة الحرارة باستخدام XinaBox: شاشة OLED باردة تعرض التاريخ والوقت ودرجة الحرارة بالدرجة المئوية والفهرنهايت باستخدام Xinabox xChips المستندة إلى ESP8266
وحدة عرض التاريخ والوقت ودرجة الحرارة اللطيفة: 3 خطوات
وحدة عرض التاريخ والوقت ودرجة الحرارة اللطيفة: مرحبًا يا أصدقاء ، في هذه التعليمات ، سأشرح الإجراء الخاص بتحديد التاريخ والوقت ووحدة عرض درجة الحرارة الحالية باستخدام Arduino pro mini و RTC وشاشة عرض مكونة من ثمانية أرقام من سبعة أرقام في وحدة مضغوطة للغاية ، وهي أداة مفيدة
دفع التاريخ والوقت لتطبيق Blynk باستخدام Wemos D1 Mini Pro: 10 خطوات
دفع التاريخ والوقت إلى تطبيق Blynk باستخدام Wemos D1 Mini Pro: سنستخدم Wemos D1 Mini Pro لدفع الوقت وأمبير. تاريخ تطبيق Blynk. لن تحتاج إلى توصيل أي مكونات بـ Wemos D1 Mini Pro لهذا النشاط