תוכן עניינים:
- שלב 1: דברים שאתה צריך
- שלב 2: חיבורים
- שלב 3: הורדת ספריות
- שלב 4: מהו NTP
- שלב 5: חלק קידוד
- שלב 6: קבלת תאריך ושעה
וִידֵאוֹ: שעון אינטרנט: הצג תאריך ושעה עם OLED באמצעות ESP8266 NodeMCU עם פרוטוקול NTP: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
היי חברים במדריך זה נבנה שעון אינטרנט שיקבל זמן מהאינטרנט ולכן הפרויקט הזה לא יצטרך שום RTC להפעלה, הוא יצטרך רק חיבור אינטרנט עובד.
ולפרויקט זה אתה צריך esp8266 שיהיה לו wifi כדי לקבל גישה לאינטרנט ותצוגה שתציג בו את הזמן ו- esp8266 יביא זמן מהאינטרנט באמצעות פרוטוקול NTP, ntp מייצג פרוטוקול זמן רשת, כך שבעצם ישנם שרתי ntp באינטרנט המשמשים לסנכרון שעוני מחשב ואנו נשתמש בשרתים אלה כדי לקבל זמן בפרויקט שלנו.
שלב 1: דברים שאתה צריך
לפרויקט זה תזדקק לדברים הבאים:
Esp8266/nodemcu
Oled ssd1306 0.96"
חוטי מגשר
לוח לחם
כבל יו אס בי
שלב 2: חיבורים
צג OLED בעל 4 פינים זה מתקשר עם מודול ESP8266 באמצעות פרוטוקול I2C, להלן תרשים המעגלים וטבלת החיבורים לחיבור סיכות OLED I2C עם NodeMCU להצגת זמן האינטרנט.
שלב 3: הורדת ספריות
וודא שהורדת את ספריות SD1306 ב- Arduino ide שלך כפי שמוצג בתמונה וודא שגם את ספריית ה- GFX של Adafruit, אם לא אז התקן את שתי הספריות האלה.
ב- IDE Arduino שלך עבור למנהל הספריות וחפש NTP ופשוט הורד את ספריית לקוחות NTP כפי שהורדתי, עיין בתמונה לעזרה נוספת.
שלב 4: מהו NTP
NTP הוא אחד מפרוטוקולי האינטרנט הוותיקים ברשת לסנכרון שעונים בין רשתות מחשבים. הוא תוכנן על ידי דיוויד ל 'מילס מאוניברסיטת דלאוור בשנת 1981. ניתן להשתמש בפרוטוקול זה לסנכרן רשתות רבות עם זמן אוניברסלי מתואם (UTC) בתוך כמה אלפיות השנייה. UTC הוא תקן הזמן העיקרי שלפיו העולם מסדיר את השעון והזמן. UTC אינו משתנה ומשתנה עבור מיקומים גיאוגרפיים שונים. NTP משתמש ב- UTC כהפניה לזמן ומספק זמן מדויק ומסונכרן ברחבי האינטרנט.
NTP פועל על מודל שרת-לקוח היררכי. לדגם העליון יש שעוני התייחסות המכונים "שכבה 0" כמו שעונים אטומיים, גלי רדיו, GPS, GSM המקבלים זמן מהלווין. השרתים המקבלים זמן משכבה 0 נקראים "שכבה 1" ושרתים המקבלים זמן משכבה 1 נקראים "שכבה 2" וכן הלאה. זה ממשיך ודיוק הזמן ממשיך לרדת לאחר כל שלב. 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.
אֵזוֹר. קיזוז זמן UTC (שעות ודקות). קיזוז זמן UTC (שניות)
הודו +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"
#הגדר SCREEN_WIDTH 128 // רוחב תצוגה של OLED, בפיקסלים
#הגדר 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 (לבן);
display.setCursor (5, 2);
display.println ("ברוכים הבאים");
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 (":");
display.print (ss);
display.println ("PM");
}
אַחֵר
{
display.print (hh);
display.print (":");
display.print (מ מ);
display.print (":");
display.print (ss);
display.println ("AM");
}
int day = 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 עם ESP8266 Nodemcu: 5 שלבים
קבלת זמן מהאינטרנט באמצעות ESP8266 | פרויקט שעון NTP עם ESP8266 Nodemcu: במדריך זה נראה כיצד להשיג זמן באמצעות ESP8266/nodemcu עם Arduino IDE. קבלת זמן שימושית במיוחד ברישום נתונים כדי לחותם את זמן הקריאות שלך. אם לפרויקט ESP8266 שלך יש גישה לאינטרנט, תוכל לקבל זמן באמצעות רשת T
שעון רשת ESP8266 ללא כל RTC - Nodemcu NTP שעון אין RTC - פרויקט שעון אינטרנט: 4 שלבים
שעון רשת ESP8266 ללא כל RTC | Nodemcu NTP שעון אין RTC | פרויקט שעון אינטרנט: בפרויקט תעשה פרויקט שעון ללא RTC, ייקח זמן מהאינטרנט באמצעות wifi והוא יציג אותו בתצוגה st7735
נקודת גישה ESP8266 NodeMCU (שרת אינטרנט) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 והדפסת טמפרטורה ולחות בדפדפן: 5 שלבים
נקודת גישה ESP8266 NodeMCU (AP) עבור שרת אינטרנט עם חיישן טמפרטורה DT11 וטמפרטורת הדפסה ולחות בדפדפן: שלום חברים ברוב הפרויקטים בהם אנו משתמשים ב- ESP8266 וברוב הפרויקטים אנו משתמשים ב- ESP8266 כשרת אינטרנט כך שניתן יהיה לגשת לנתונים ב כל מכשיר באמצעות wifi על ידי גישה לשרת האינטרנט המתארח על ידי ESP8266 אך הבעיה היחידה היא שאנחנו צריכים נתב עובד עבור
נורית מבוקרת אינטרנט באמצעות שרת אינטרנט מבוסס ESP32: 10 שלבים
נורית מבוקרת אינטרנט באמצעות שרת אינטרנט מבוסס ESP32: סקירה כללית של הפרויקט בדוגמה זו נבין כיצד ליצור שרת אינטרנט מבוסס ESP32 לשליטה על מצב LED, הנגיש מכל מקום בעולם. תזדקק למחשב Mac לפרויקט זה, אך תוכל להריץ תוכנה זו אפילו על i
דחיפת תאריך ושעה לאפליקציית Blynk באמצעות Wemos D1 Mini Pro: 10 שלבים
דחיפת תאריך ושעה לאפליקציית Blynk באמצעות Wemos D1 Mini Pro: נשתמש ב- Wemos D1 Mini Pro לדחוף את הזמן & תאריך לאפליקציית Blynk. לא תצטרך לחבר שום רכיב ל- Wemos D1 Mini Pro לפעילות זו