Բովանդակություն:

ESP8266- ի միջոցով ինտերնետից ժամանակ ստանալը NTP ժամացույցի նախագիծ ESP8266 Nodemcu- ով ՝ 5 քայլ
ESP8266- ի միջոցով ինտերնետից ժամանակ ստանալը NTP ժամացույցի նախագիծ ESP8266 Nodemcu- ով ՝ 5 քայլ

Video: ESP8266- ի միջոցով ինտերնետից ժամանակ ստանալը NTP ժամացույցի նախագիծ ESP8266 Nodemcu- ով ՝ 5 քայլ

Video: ESP8266- ի միջոցով ինտերնետից ժամանակ ստանալը NTP ժամացույցի նախագիծ ESP8266 Nodemcu- ով ՝ 5 քայլ
Video: Ինչպես ծրագրավորել ESP8266 ESP-01 Wi-Fi ռելե մոդուլը 2024, Նոյեմբեր
Anonim
ESP8266- ի միջոցով ինտերնետից ժամանակ ստանալը NTP ժամացույցի նախագիծ ESP8266 Nodemcu- ով
ESP8266- ի միջոցով ինտերնետից ժամանակ ստանալը NTP ժամացույցի նախագիծ ESP8266 Nodemcu- ով

Այս ձեռնարկում մենք կտեսնենք, թե ինչպես ժամանակ ստանալ Edu8266/nodemcu- ով Arduino IDE- ի միջոցով: Timeամանակ ստանալը հատկապես օգտակար է տվյալների գրանցման համար `ձեր ընթերցումները ժամանակային նշելու համար: Եթե ձեր ESP8266 նախագիծը հասանելի է ինտերնետին, կարող եք ժամանակ ստանալ ցանցի ժամանակի արձանագրության (NTP) միջոցով. Ձեզ լրացուցիչ սարքավորումներ պետք չեն: Դուք կարող եք ձեր ESP8266- ը միացնել ձեր wifi ցանցին, և դա կլինի ժամացույց, որը կհամաժամացվի ցանցի հետ, այնպես որ, եթե մի անգամ վերբեռնեք ծածկագիրը, այն ժամանակ կստանա ինտերնետից, այնպես որ այն միշտ կցուցադրի ճիշտ ժամանակը:

Քայլ 1: Ձեզ անհրաժեշտ բաներ

Ձեզ անհրաժեշտ բաներ
Ձեզ անհրաժեշտ բաներ

Այս նախագծի համար ձեզ շատ քիչ բան է պետք. ESP8266/NODEMCUA USB մալուխ այն ծրագրավորելու համար:

Քայլ 2. Ի՞նչ է NTP- ը և ինչպես է այն աշխատելու:

Ի՞նչ է NTP- ը և ինչպես է այն աշխատելու
Ի՞նչ է NTP- ը և ինչպես է այն աշխատելու
Ի՞նչ է NTP- ը և ինչպես է այն աշխատելու
Ի՞նչ է NTP- ը և ինչպես է այն աշխատելու

Ինչ է NTP- ը. NTP- ը նշանակում է Network Time Protocol: Դա ստանդարտ ինտերնետային արձանագրություն է (IP) `համակարգչի ժամացույցները ցանցի վրա ինչ -որ տեղեկանքի համաժամեցնելու համար: Արձանագրությունը կարող է օգտագործվել բոլոր ցանցային սարքերը Համաժամեցված համընդհանուր ժամանակի (UTC) համաժամացման համար: NTP- ն համակարգիչների ժամացույցները սահմանում է UTC, ցանկացած տեղական ժամանակ գոտու օֆսեթը կամ ցերեկային լույսի խնայողության ժամանակի անջատումը կիրառվում է հաճախորդի կողմից: Այս կերպ հաճախորդները կարող են համաժամացվել սերվերների հետ `անկախ գտնվելու վայրից և ժամային գոտու տարբերություններից: Ինչպես է դա մեզ մոտ աշխատելու. Հաճախորդի սարքը, ինչպիսին է ESP8266- ը, միանում է սերվերին` օգտագործելով 123 նավահանգստում օգտագործողի տվյալների տեքստը (UDP): Հաճախորդը այնուհետև փոխանցում է պահանջել փաթեթ NTP սերվերին: Այս խնդրանքին ի պատասխան NTP սերվերն ուղարկում է ժամանակային կնիքի փաթեթ: stամկետային դրոշմանիշի փաթեթը պարունակում է բազմաթիվ տեղեկություններ, ինչպիսիք են UNIX- ի ժամանակացույցը, ճշգրտությունը, ուշացումը կամ ժամային գոտին: Այնուհետև հաճախորդը կարող է վերլուծել ընթացիկ ամսաթվի և ժամի արժեքները:

Քայլ 3. Գրադարանի տեղադրում Arduino IDE- ում

Arduino IDE- ում գրադարանի տեղադրում
Arduino IDE- ում գրադարանի տեղադրում

Ձեր Arduino IDE- ում գնացեք Գրադարանների կառավարիչ և փնտրեք NTP և պարզապես ներբեռնեք NTP հաճախորդների գրադարանը, ինչպես ներբեռնեցի, հետագա օգնության համար հղեք պատկերը:

Քայլ 4: Կոդավորման մաս

Կոդավորման մաս
Կոդավորման մաս
Կոդավորման մաս
Կոդավորման մաս

Խնդրում ենք պատճենել հետևյալ ծածկագիրը և տեղադրել ձեր ցանցի հավատարմագրերը ձեր ծածկագրում, ապա ինձ համար պետք է սահմանել offsettime- ը `19800, որովհետև իմ ժամային գոտին utc+5: 30 է, այնպես որ UTC +5: 30 = 5.5*60*60 = 19800UTC+1 = 1*60*60 = 3600 ՀԱՇՎԵԼ ձեր ժամային գոտին և խմբագրել այն, այնուհետև վերբեռնել կոդը:#ներառել "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char*ssid = "***** ****** "; const char*գաղտնաբառ =" *********** "; const long utcOffsetInSeconds = 19800; օրեր շաբաթից շաբաթ [7] [12] = {" կիրակի "," երկուշաբթի ", «Երեքշաբթի», «չորեքշաբթի», «հինգշաբթի», «ուրբաթ», «շաբաթ»}; // Սահմանեք NTP հաճախորդին ժամանակ ստանալու համարWiFiUDP ntpUDP; 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: tingԱՄԱՆԱԿԸ

GetԱՄԱՆԱԿԸ
GetԱՄԱՆԱԿԸ

Esp8266 կոդը վերբեռնելուց հետո կարող եք բացել սերիական մոնիտորը, և եթե ամեն ինչ լավ է, ապա կկարողանաք ժամանակ ստանալ սերիական մոնիտորի վրա, քանի որ ես կարողանում եմ ժամանակ ստանալ իմ սերիական մոնիտորի վրա: Այսպիսով, այս նախագծով կարող եք կցել ցանկացած ցուցադրել և դարձնել այն համապատասխան ցանցային ժամացույց: Այսպիսով, զվարճացեք, ստեղծելով ձեր ցանցային ժամացույցը:

Խորհուրդ ենք տալիս: