ESP8266 көмегімен Интернеттен уақыт алу - ESP8266 Nodemcu көмегімен NTP сағаты жобасы: 5 қадам
ESP8266 көмегімен Интернеттен уақыт алу - ESP8266 Nodemcu көмегімен NTP сағаты жобасы: 5 қадам
Anonim
ESP8266 көмегімен Интернеттен уақыт алу | ESP8266 Nodemcu көмегімен NTP сағаты жобасы
ESP8266 көмегімен Интернеттен уақыт алу | ESP8266 Nodemcu көмегімен NTP сағаты жобасы

Бұл оқулықта біз Arduino IDE көмегімен ESP8266/nodemcu көмегімен уақытты қалай алуға болатынын көреміз. Уақытты алу, әсіресе, оқылымдардың уақыт белгісін қою үшін деректерді тіркеуде пайдалы. Егер сіздің ESP8266 жобаңызда Интернетке кіру мүмкіндігі болса, сіз желідегі уақыт протоколының (NTP) көмегімен уақытты ала аласыз - сізге қосымша қондырғы қажет емес, сіз ESP8266 -ді Wi -Fi желісіне қосуға болады, ол синхрондалатын сағат болады. егер сіз кодты жүктесеңіз, ол интернеттен уақыт алады, сондықтан ол әрқашан дұрыс уақытты көрсетеді.

1 -қадам: Сізге қажет заттар

Сізге қажет заттар
Сізге қажет заттар

Бұл жоба үшін сізге өте аз нәрсе қажет: оны бағдарламалау үшін ESP8266/NODEMCUA USB кабелі.

2 -қадам: NTP деген не және ол қалай жұмыс істейді?

NTP деген не және ол қалай жұмыс істейді?
NTP деген не және ол қалай жұмыс істейді?
NTP деген не және ол қалай жұмыс істейді?
NTP деген не және ол қалай жұмыс істейді?

NTP дегеніміз не: NTP желілік уақыт протоколы дегенді білдіреді. Бұл желідегі компьютерлік сағаттарды кейбір сілтемелерге синхрондауға арналған стандартты Интернет протоколы (IP). Протокол барлық желілік құрылғыларды үйлестірілген әмбебап уақытқа (UTC) синхрондау үшін пайдаланылуы мүмкін. Клиент аймақтық офсетті немесе күндізгі жарық үнемдеуді есептейді. Осылайша клиенттер серверлерге синхрондауы мүмкін, олар орналасуы мен уақыт белдеуінің айырмашылығына қарамастан: біз үшін қалай жұмыс істейді: ESP8266 сияқты клиенттік құрылғы серверге 123. A портындағы User Datagram Protocol (UDP) көмегімен қосылады. NTP серверіне сұрау пакеті. Бұл сұрауға жауап ретінде NTP сервері уақыт белгісі пакетін жібереді. Уақыт белгісі пакеті UNIX уақыт белгісі, дәлдігі, кешігуі немесе уақыт белдеуі сияқты көптеген ақпаратты қамтиды. Клиент ағымдағы күн мен уақыт мәндерін талдай алады.

3 -қадам: Arduino IDE -де кітапхананы орнату

Arduino IDE -де кітапхананы орнату
Arduino IDE -де кітапхананы орнату

Arduino IDE -де Кітапханалар менеджеріне өтіңіз және NTP іздеңіз, мен жүктеген кезде NTP клиенттік кітапханасын жүктеңіз, қосымша көмек алу үшін суретті қараңыз.

4 -қадам: кодтау бөлігі

Кодтау бөлігі
Кодтау бөлігі
Кодтау бөлігі
Кодтау бөлігі

Келесі кодты көшіріп, желі тіркелгі деректерін кодыңызға енгізіңіз, содан кейін мен үшін офсет уақытын орнату керек - бұл 19800, себебі менің уақыт белдеуім utc+5: 30 болғандықтан UTC +5: 30 = 5.5*60*60 = 19800UTC+1 = 1*60*60 = 3600Уақыт белдеуін есептеп, оны өңдеңіз, содан кейін кодты жүктеңіз.#Include «NTPClient.h»#include «ESP8266WiFi.h» #include «WiFiUdp.h» const char*ssid = «***** ****** «; const char*password =» *********** «; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {» жексенбі «,» дүйсенбі «), «Сейсенбі», «сәрсенбі», «бейсенбі», «жұма», «сенбі»}; // timeWiFiUDP ntpUDP алу үшін NTP клиентін анықтаңыз; NTPClient timeClient (ntpUDP, «pool.ntp.org», utcOffsetInSeconds); жарамсыз орнату () {Serial.begin (115200); WiFi.begin (ssid, құпия сөз); while (WiFi.status ()! = WL_CONNECTED) {кешіктіру (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 ()); кешіктіру (1000);}

5 -қадам: УАҚЫТ алу

Уақытты алу
Уақытты алу

Кодты Esp8266 -ға жүктегеннен кейін сіз сериялық мониторды аша аласыз, егер бәрі жақсы болса, сіз сериялық мониторда уақытты ала аласыз, себебі мен сериялық мониторда уақытты ала аламын. көрсетіңіз және оны сәйкес желі сағаты етіңіз. Сондықтан желілік сағатты жасаудан рахат алыңыз.

Ұсынылған: