Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U ovom ćemo vodiču vidjeti kako dobiti vrijeme koristeći ESP8266/nodemcu s Arduino IDE -om. Dobivanje vremena osobito je korisno pri bilježenju podataka radi vremenske oznake vaših očitanja. Ako vaš projekt ESP8266 ima pristup internetu, možete dobiti vrijeme pomoću mrežnog protokola za vrijeme (NTP) - ne treba vam nikakav dodatni hardver. Možete povezati svoj ESP8266 sa svojom WiFi mrežom i to će biti sat koji će se sinkronizirati s mrežom, pa ako jednom učitate kôd, dobit će vrijeme s interneta pa će uvijek prikazati točno vrijeme.
Korak 1: Stvari koje trebate
Za ovaj projekt trebat će vam vrlo malo stvari: USB kabel ESP8266/NODEMCUA za njegovo programiranje.
Korak 2: Što je NTP i kako će funkcionirati?
Što je NTP: NTP označava Network Time Protocol. To je standardni internetski protokol (IP) za sinkronizaciju satova računala na neku referencu preko mreže. Protokol se može koristiti za sinkronizaciju svih umreženih uređaja na univerzalno koordinirano vrijeme (UTC). NTP postavlja satove računala na UTC, bilo koje lokalno vrijeme zonski pomak ili pomak zimskog računanja vremena primjenjuje klijent. Na ovaj način klijenti se mogu sinkronizirati s poslužiteljima bez obzira na razlike u lokaciji i vremenskoj zoni. Kako će to funkcionirati za nas: Klijentski uređaj, poput ESP8266, povezuje se s poslužiteljem koristeći User Datagram Protocol (UDP) na portu 123. Klijent tada šalje zatražiti paket na NTP poslužitelj. Kao odgovor na ovaj zahtjev, NTP poslužitelj šalje paket vremenske oznake. Paket vremenskih oznaka sadrži više informacija poput UNIX vremenske oznake, točnosti, kašnjenja ili vremenske zone. Klijent tada može raščlaniti trenutne vrijednosti datuma i vremena.
Korak 3: Instaliranje knjižnice na Arduino IDE
U svom Arduino IDE idite na Upravitelj knjižnica i potražite NTP i samo preuzmite NTP klijentsku knjižnicu dok sam preuzimao, pogledajte sliku za daljnju pomoć.
Korak 4: Kodiranje dijela
Kopirajte sljedeći kôd i unesite svoje mrežne vjerodajnice u svoj kôd. Morate postaviti offsettime za mene to je 19800 Budući da je moja vremenska zona utc+5: 30 pa je UTC +5: 30 = 5,5*60*60 = 19800UTC+1 = 1*60*60 = 3600 IZRAČUNAJTE svoju vremensku zonu i uredite je, a zatim prenesite kôd.#Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char*ssid = "***** ****** "; const char*password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" Nedjelja "," ponedjeljak ", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // Definirajte NTP klijenta za dobivanje timeWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); () {Serial.begin (115200); WiFi.započni (ssid, lozinka); while (WiFi.status ()! = WL_CONNECTED) {odgoda (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 ()); odgoda (1000);}
Korak 5: Dobijte VRIJEME
Nakon što učitate kôd na Esp8266, možete otvoriti serijski monitor i ako je sve u redu, moći ćete dobiti vrijeme na serijskom monitoru jer ja mogu dobiti vrijeme na svom serijskom monitoru. Dakle, uz ovaj projekt možete priložiti bilo koji prikazati i učiniti ga ispravnim mrežnim satom. Zato se zabavite izrađujući svoj mrežni sat.