Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În acest tutorial vom vedea cum să obțineți timp folosind ESP8266 / nodemcu cu Arduino IDE. Obținerea timpului este utilă în special în înregistrarea datelor pentru a vă marca citirile. Dacă proiectul dvs. ESP8266 are acces la Internet, puteți obține timp folosind Network Time Protocol (NTP) - nu aveți nevoie de hardware suplimentar. Puteți conecta ESP8266 la rețeaua dvs. wifi și va fi un ceas care va fi sincronizat. cu rețea, deci dacă odată ce ați încărcat codul, acesta va primi timp de pe internet, astfel încât va afișa întotdeauna ora corectă.
Pasul 1: Lucruri de care aveți nevoie
Pentru acest proiect veți avea nevoie de foarte puține lucruri: cablu USB ESP8266 / NODEMCUA pentru a-l programa.
Pasul 2: Ce este un NTP și cum va funcționa?
Ce este un NTP: Un NTP înseamnă Network Time Protocol. Este un protocol de internet standard (IP) pentru sincronizarea ceasurilor computerului la unele referințe printr-o rețea. Protocolul poate fi utilizat pentru a sincroniza toate dispozitivele din rețea la ora universală coordonată (UTC). NTP setează ceasurile computerelor la UTC, orice oră locală compensarea zonei sau compensarea timpului de economisire a luminii de zi este aplicată de client. În acest mod, clienții se pot sincroniza cu servere, indiferent de diferențele de locație și fus orar. Cum va funcționa pentru noi: Dispozitivul client, cum ar fi ESP8266, se conectează la server utilizând Protocolul de utilizator Datagram (UDP) de pe portul 123. Un client transmite apoi un solicitați pachetul către un server NTP. Ca răspuns la această cerere, serverul NTP trimite un pachet de timbru de timp. Un pachet de timbru de timp conține mai multe informații, cum ar fi marca de timp UNIX, acuratețea, întârzierea sau fusul orar. Un client poate apoi analiza valorile curente ale datei și orei.
Pasul 3: Instalarea Bibliotecii pe Arduino IDE
În IDE-ul dvs. Arduino, accesați Managerul de biblioteci și căutați NTP și descărcați biblioteca client NTP așa cum am descărcat, consultați imaginea pentru ajutor suplimentar.
Pasul 4: Partea de codificare
Vă rugăm să copiați următorul cod și să introduceți acreditările de rețea în codul dvs., apoi trebuie să setați ora de compensare pentru mine este 19800 Deoarece fusul meu orar este utc + 5: 30 deci UTC +5: 30 = 5,5 * 60 * 60 = 19800UTC + 1 = 1 * 60 * 60 = 3600 CALCULAȚI fusul orar și editați-l și apoi încărcați codul. # Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char * ssid = "***** ****** "; const char * password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" Sunday "," Monday ", „Marți”, „Miercuri”, „Joi”, „Vineri”, „Sâmbătă”}; // Definiți clientul NTP pentru a obține timeWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, „pool.ntp.org”, utcOffsetInSeconds); () {Serial.begin (115200); WiFi.begin (ssid, parolă); while (WiFi.status ()! = WL_CONNECTED) {întârziere (500); Serial.print ("."); } timeClient.begin ();} void loop () {timeClient.update (); Serial.print (daysOfTheWeek [timeClient.getDay ()]); Serial.print (","); Serial.print (timeClient.getHours ()); Serial.print (":"); Serial.print (timeClient.getMinutes ()); Serial.print (":"); Serial.println (timeClient.getSeconds ()); //Serial.println (timeClient.getFormattedTime ()); întârziere (1000);}
Pasul 5: Obținerea TIMPULUI
După ce încărcați codul în Esp8266, puteți deschide monitorul serial și dacă totul este bun, atunci veți putea obține ora pe monitorul serial, deoarece pot obține ora în monitorul meu serial. Deci, cu acest proiect puteți atașa orice afișați și faceți din acesta un ceas de rețea adecvat. Deci, distrează-te făcându-ți ceasul de rețea.