Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tässä opetusohjelmassa näemme kuinka saada aikaa käyttämällä ESP8266/nodemcu -ohjelmaa Arduino IDE: n kanssa. Ajan saaminen on erityisen hyödyllistä tietojen keräämisessä lukemiesi aikaleimaamiseksi. Jos ESP8266 -projektillasi on Internet -yhteys, voit saada aikaa käyttämällä Network Time Protocol (NTP) -protokollaa - et tarvitse lisälaitteistoa. verkon kanssa, joten jos olet ladannut koodin, se saa aikaa Internetistä, joten se näyttää aina oikean ajan.
Vaihe 1: Tarvitsemasi asiat
Tätä projektia varten tarvitset hyvin vähän asioita: ESP8266/NODEMCUA USB -kaapeli sen ohjelmoimiseksi.
Vaihe 2: Mikä on NTP ja miten se toimii?
Mikä on NTP: NTP tarkoittaa Network Time Protocolia. Se on standardi Internet -protokolla (IP), jolla synkronoidaan tietokoneen kellot johonkin viittaukseen verkon kautta. Protokollaa voidaan käyttää synkronoimaan kaikki verkkoon liitetyt laitteet UTC -aikaan (NTC). asiakas käyttää vyöhykkeen siirtymää tai päivänvaloaika -poikkeamaa. Tällä tavalla asiakkaat voivat synkronoida palvelimille sijainti- ja aikavyöhyke -eroista riippumatta. Miten se toimii meille: Asiakaslaite, kuten ESP8266, muodostaa yhteyden palvelimeen portin 123 User Datagram Protocol (UDP) -protokollan avulla. Vastauksena tähän pyyntöön NTP -palvelin lähettää aikaleimapaketin. Aikaleimapaketti sisältää useita tietoja, kuten UNIX -aikaleiman, tarkkuuden, viiveen tai aikavyöhykkeen. Asiakas voi sitten jäsentää nykyiset päivämäärä- ja aika -arvot.
Vaihe 3: Kirjaston asentaminen Arduino IDE: hen
Siirry Arduino IDE: ssä kirjastojenhallintaan ja etsi NTP ja lataa vain NTP -asiakaskirjasto ladatessani, katso lisätietoja kuvasta.
Vaihe 4: Koodausosa
Kopioi seuraava koodi ja kirjoita verkkotunnuksesi koodillesi, niin sinun on asetettava kuittausaika minulle 19800 Koska aikavyöhykkeeni on utc+5: 30 joten UTC +5: 30 = 5,5*60*60 = 19800UTC+1 = 1*60*60 = 3600LASKE aikavyöhykkeesi ja muokkaa sitä ja lähetä sitten koodi.#Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char*ssid = "***** ****** "; const char*password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" sunnuntai "," maanantai ", "Tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"}}; // Määrittele NTP -asiakas saadaksesi aikaaWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); mitätön asennus () {Serial.begin (115200); WiFi.begin (ssid, salasana); while (WiFi.status ()! = WL_CONNECTED) {delay (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 ()); viive (1000);}
Vaihe 5: AJAN saaminen
Kun olet ladannut koodin Esp8266: een, voit avata sarjamonitorin ja jos kaikki on kunnossa, voit saada ajan sarjamonitorille, koska voin saada ajan sarjamonitoristani. ja tee siitä oikea verkkokello. Joten pidä hauskaa verkkokellon tekemisessä.