Satura rādītājs:

Laika iegūšana no interneta, izmantojot ESP8266 - NTP pulksteņa projekts ar ESP8266 Nodemcu: 5 soļi
Laika iegūšana no interneta, izmantojot ESP8266 - NTP pulksteņa projekts ar ESP8266 Nodemcu: 5 soļi

Video: Laika iegūšana no interneta, izmantojot ESP8266 - NTP pulksteņa projekts ar ESP8266 Nodemcu: 5 soļi

Video: Laika iegūšana no interneta, izmantojot ESP8266 - NTP pulksteņa projekts ar ESP8266 Nodemcu: 5 soļi
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Novembris
Anonim
Laika iegūšana no interneta, izmantojot ESP8266 | NTP pulksteņa projekts ar ESP8266 Nodemcu
Laika iegūšana no interneta, izmantojot ESP8266 | NTP pulksteņa projekts ar ESP8266 Nodemcu

Šajā apmācībā mēs redzēsim, kā iegūt laiku, izmantojot ESP8266/nodemcu ar Arduino IDE. Laika iegūšana ir īpaši noderīga datu reģistrēšanā, lai rādītu laika zīmogu. Ja jūsu ESP8266 projektam ir piekļuve internetam, varat iegūt laiku, izmantojot tīkla laika protokolu (NTP) - jums nav nepieciešama papildu aparatūra. Jūs varat savienot savu ESP8266 ar savu wifi tīklu, un tas būs pulkstenis, kas tiks sinhronizēts ar tīklu, tādēļ, ja jūs augšupielādēsit kodu, tas saņems laiku no interneta, tāpēc tas vienmēr parādīs pareizo laiku.

1. darbība. Nepieciešamās lietas

Nepieciešamās lietas
Nepieciešamās lietas

Šim projektam jums būs nepieciešams ļoti maz lietu: ESP8266/NODEMCUA USB kabelis, lai to ieprogrammētu.

2. darbība. Kas ir NTP un kā tas darbosies?

Kas ir NTP un kā tas darbosies?
Kas ir NTP un kā tas darbosies?
Kas ir NTP un kā tas darbosies?
Kas ir NTP un kā tas darbosies?

Kas ir NTP: NTP apzīmē tīkla laika protokolu. Tas ir standarta interneta protokols (IP) datora pulksteņu sinhronizēšanai ar kādu atsauci tīklā. Protokolu var izmantot, lai sinhronizētu visas tīkla ierīces ar koordinēto universālo laiku (UTC). NTP nosaka datora pulksteņus uz UTC jebkurā vietējā laikā zonas nobīde vai dienas gaismas taupīšanas laika nobīde tiek piemērota klientam. Šādā veidā klienti var sinhronizēties ar serveriem neatkarīgi no atrašanās vietas un laika joslu atšķirībām. Kā tas mums darbosies: Klienta ierīce, piemēram, ESP8266, izveido savienojumu ar serveri, izmantojot lietotāja datu diagrammas protokolu (UDP) 123. portā. Pēc tam klients pārraida pieprasījuma paketi NTP serverim. Atbildot uz šo pieprasījumu, NTP serveris nosūta laika zīmoga paketi. Laika zīmoga pakete satur vairākas ziņas, piemēram, UNIX laika zīmogu, precizitāti, aizkavi vai laika joslu. Pēc tam klients var parsēt pašreizējās datuma un laika vērtības.

3. darbība: bibliotēkas instalēšana Arduino IDE

Bibliotēkas instalēšana Arduino IDE
Bibliotēkas instalēšana Arduino IDE

Savā Arduino IDE dodieties uz bibliotēku pārvaldnieku un meklējiet NTP un vienkārši lejupielādējiet NTP klienta bibliotēku, kad es to lejupielādēju, lai iegūtu papildu palīdzību, skatiet attēlu.

4. darbība. Kodēšanas daļa

Kodēšanas daļa
Kodēšanas daļa
Kodēšanas daļa
Kodēšanas daļa

Lūdzu, nokopējiet šo kodu un ievadiet tīkla akreditācijas datus savā kodā, tad man ir jāiestata kompensācijas laiks 19800 Jo mana laika josla ir utc+5: 30 tātad UTC +5: 30 = 5,5*60*60 = 19800UTC+1 = 1*60*60 = 3600 APRĒĶINIET savu laika joslu, rediģējiet to un pēc tam augšupielādējiet kodu.#Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char*ssid = "***** ****** "; const char*password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" svētdiena "," pirmdiena ", "Otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"}; // Definējiet NTP klientu, lai iegūtu laikuWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); void setup () {Sērijas sākums (115200); WiFi.begin (ssid, parole); while (WiFi.status ()! = WL_CONNECTED) {kavēšanās (500); Sērijas nospiedums ("."); } 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 ()); kavēšanās (1000);}

5. darbība: LAIKA iegūšana

Gūst LAIKU
Gūst LAIKU

Pēc koda augšupielādes Esp8266 jūs varat atvērt seriālo monitoru, un, ja viss ir kārtībā, jūs varēsit iegūt laiku sērijas monitorā, jo es varu iegūt laiku savā sērijas monitorā. Tātad ar šo projektu jūs varat pievienot jebkuru displeju un padariet to par pareizu tīkla pulksteni. Tāpēc izklaidējieties izveidot savu tīkla pulksteni.

Ieteicams: