Turinys:
- 1 žingsnis: reikalingi dalykai
- 2 žingsnis: kas yra NTP ir kaip jis veiks?
- 3 veiksmas: bibliotekos diegimas „Arduino IDE“
- 4 žingsnis: kodavimo dalis
- 5 žingsnis: Gaukite laiko
Video: Laiko gavimas iš interneto naudojant ESP8266 - NTP laikrodžio projektas su ESP8266 „Nodemcu“: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Šioje pamokoje pamatysime, kaip gauti laiko naudojant ESP8266/nodemcu su „Arduino IDE“. Laiko gavimas yra ypač naudingas registruojant duomenis ir rodant laiko žymę. Jei jūsų ESP8266 projektas turi prieigą prie interneto, galite gauti laiko naudodami tinklo laiko protokolą (NTP) - jums nereikia jokios papildomos aparatūros. Galite prijungti savo ESP8266 prie savo „Wi -Fi“tinklo ir tai bus laikrodis, kuris bus sinchronizuojamas su tinklu, taigi jei vieną kartą įkėlę kodą gausite laiko iš interneto, todėl jis visada rodys teisingą laiką.
1 žingsnis: reikalingi dalykai
Šiam projektui jums reikės labai nedaug dalykų: ESP8266/NODEMCUA USB kabelis, kad jį užprogramuotumėte.
2 žingsnis: kas yra NTP ir kaip jis veiks?
Kas yra NTP: NTP reiškia tinklo laiko protokolą. Tai standartinis interneto protokolas (IP), skirtas kompiuterio laikrodžiams sinchronizuoti su tam tikra nuoroda per tinklą. Protokolas gali būti naudojamas sinchronizuoti visus tinklo įrenginius pagal suderintą visuotinį laiką (UTC). NTP nustato kompiuterių laikrodžius pagal UTC bet kuriuo vietos laiku Klientas taiko zonos poslinkį arba dienos šviesos taupymo laiką. Tokiu būdu klientai gali sinchronizuotis su serveriais, neatsižvelgiant į vietos ir laiko juostų skirtumus. Kaip tai mums veiks: Kliento įrenginys, pvz., ESP8266, prisijungia prie serverio naudodamas vartotojo prievado protokolą (UDP) 123 prievade. Tada klientas perduoda užklausos paketą NTP serveriui. Atsakydamas į šią užklausą, NTP serveris siunčia laiko žymos paketą. Laiko žymos paketas apima daug informacijos, pvz., UNIX laiko žymę, tikslumą, vėlavimą ar laiko juostą. Tada klientas gali išanalizuoti dabartines datos ir laiko reikšmes.
3 veiksmas: bibliotekos diegimas „Arduino IDE“
Savo „Arduino IDE“eikite į bibliotekų tvarkytuvę ir ieškokite NTP ir tiesiog atsisiųskite NTP kliento biblioteką, kaip aš atsisiunčiau, daugiau pagalbos ieškokite paveikslėlyje.
4 žingsnis: kodavimo dalis
Nukopijuokite šį kodą ir įveskite savo tinklo kredencialus į savo kodą, tada jums reikia nustatyti kompensavimo laiką 19800, nes mano laiko juosta yra utc+5: 30, taigi UTC +5: 30 = 5,5*60*60 = 19800UTC+1 = 1*60*60 = 3600Skaičiuokite savo laiko juostą ir redaguokite ją, tada įkelkite kodą.#Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char*ssid = "***** ****** "; const char*password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" sekmadienis "," pirmadienis ", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"}; // Nustatykite NTP klientą, kad gautumėte laikoWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); void setup () {Serial.begin (115200); WiFi.begin (ssid, slaptažodis); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serijinis atspaudas ("."); } 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 ()); vėlavimas (1000);}
5 žingsnis: Gaukite laiko
Įkėlę kodą į „Esp8266“, galite atidaryti nuoseklųjį monitorių ir, jei viskas gerai, galėsite gauti laiką serijiniame monitoriuje, nes aš galiu gauti laiką savo serijiniame monitoriuje. Taigi su šiuo projektu galite pridėti bet kurį rodyti ir padaryti tinkamą tinklo laikrodį. Taigi smagiai padarykite savo tinklo laikrodį.
Rekomenduojamas:
Daiktų interneto pagrindai: savo daiktų interneto prijungimas prie debesies naudojant „Mongoose“OS: 5 žingsniai
Daiktų interneto pagrindai: savo daiktų interneto prijungimas prie debesies naudojant „Mongoose“OS: Jei esate žmogus, kuris užsiima tinkle ir elektronika, dažniausiai susidursite su daiktų internetu, paprastai sutrumpintu kaip daiktų internetas, ir kad reiškia įrenginių, galinčių prisijungti prie interneto, rinkinį! Būdamas toks žmogus
Tikslus, greitas ir automatinis DS3231 RTC (realiojo laiko laikrodžio) nustatymas naudojant „Java“(+-1 s): 3 žingsniai
Tikslus, greitas ir automatizuotas DS3231 RTC (realiojo laiko laikrodžio) nustatymas naudojant „Java“(+-1 s): ši instrukcija parodys, kaip nustatyti laiką DS3231 realiojo laiko laikrodyje naudojant „Arduino“ir mažą „Java“programą, kuri naudoja serijinis „Arduino“ryšys. Pagrindinė šios programos logika: 1. „Arduino“siunčia serijinį prašymą
DS1307 ir DS3231 realaus laiko laikrodžio modulių naudojimas naudojant „Arduino“: 3 žingsniai
DS1307 ir DS3231 realaus laiko laikrodžio modulių naudojimas su „Arduino“: Mes nuolat gauname užklausų, kaip naudoti DS1307 ir DS3231 realaus laiko laikrodžio modulius su „Arduino“iš įvairių šaltinių, todėl tai yra pirmoji iš dviejų dalių mokymo, kaip juos naudoti. Šiai „Arduino“pamokai mes turime du realaus laiko laikrodžio modulius
„Arduino“laikrodis naudojant DS1307 realaus laiko laikrodžio (RTC) modulį ir 0,96: 5 žingsniai
„Arduino“laikrodis, naudojant DS1307 realaus laiko laikrodžio (RTC) modulį ir 0.96: Sveiki, vaikinai, šioje pamokoje pamatysime, kaip sukurti darbinį laikrodį naudojant DS1307 realaus laiko laikrodžio modulį & OLED ekranai. Taigi laiką perskaitysime iš laikrodžio modulio DS1307. Ir atsispausdinkite jį OLED ekrane
Laikrodžio kūrimas naudojant „M5stick C“naudojant „Arduino IDE -“RTC realaus laiko laikrodis su „M5stack M5stick-C“: 4 žingsniai
Laikrodžio kūrimas naudojant „M5stick C“naudojant „Arduino IDE |“RTC realaus laiko laikrodis su „M5stack M5stick-C“: Sveiki, vaikinai, šioje instrukcijoje mokysimės, kaip naudojant „Arduino IDE“sukurti laikrodį su „m5stick“kūrimo lenta „m5stack“. Taigi „m5stick“rodys datą, laiką ir amp; ekrane rodoma mėnesio savaitė