Obsah:

Získání času z internetu pomocí ESP8266 - Projekt hodin NTP s ESP8266 Nodemcu: 5 kroků
Získání času z internetu pomocí ESP8266 - Projekt hodin NTP s ESP8266 Nodemcu: 5 kroků

Video: Získání času z internetu pomocí ESP8266 - Projekt hodin NTP s ESP8266 Nodemcu: 5 kroků

Video: Získání času z internetu pomocí ESP8266 - Projekt hodin NTP s ESP8266 Nodemcu: 5 kroků
Video: Arduino a ESP8266 (Petr Stehlík) 2024, Listopad
Anonim
Získání času z internetu pomocí ESP8266 | Projekt hodin NTP s ESP8266 Nodemcu
Získání času z internetu pomocí ESP8266 | Projekt hodin NTP s ESP8266 Nodemcu

V tomto tutoriálu uvidíme, jak získat čas pomocí ESP8266/nodemcu s Arduino IDE. Získání času je užitečné zejména v protokolování dat k časovému razítku vašich naměřených hodnot. Pokud má váš projekt ESP8266 přístup k internetu, můžete získat čas pomocí protokolu NTP (Network Time Protocol) - nepotřebujete žádný další hardware. Svůj ESP8266 můžete připojit k síti Wi -Fi a budou to hodiny, které budou synchronizovány se sítí, takže pokud jednou nahrajete kód, získá čas z internetu, takže bude vždy zobrazovat správný čas.

Krok 1: Věci, které potřebujete

Věci, které potřebujete
Věci, které potřebujete

Pro tento projekt budete potřebovat velmi málo věcí: USB kabel ESP8266/NODEMCUA k jeho naprogramování.

Krok 2: Co je to NTP a jak bude fungovat?

Co je to NTP a jak bude fungovat?
Co je to NTP a jak bude fungovat?
Co je to NTP a jak bude fungovat?
Co je to NTP a jak bude fungovat?

Co je to NTP: NTP znamená Network Time Protocol. Je to standardní internetový protokol (IP) pro synchronizaci hodin počítače s nějakou referencí v síti. Protokol lze použít k synchronizaci všech síťových zařízení do koordinovaného světového času (UTC). Protokol NTP nastavuje hodiny počítačů na UTC v libovolném místním čase offset zóny nebo časový posun letního času uplatňuje klient. Tímto způsobem se mohou klienti synchronizovat se servery bez ohledu na rozdíly v umístění a časovém pásmu. Jak to bude fungovat pro nás: Klientské zařízení, jako je ESP8266, se připojí k serveru pomocí protokolu User Datagram Protocol (UDP) na portu 123. Klient poté přenese paket požadavku na server NTP. V reakci na tento požadavek server NTP odešle paket časového razítka. Paket časového razítka obsahuje více informací, jako je časové razítko UNIX, přesnost, zpoždění nebo časové pásmo. Klient pak může analyzovat aktuální hodnoty data a času.

Krok 3: Instalace knihovny na Arduino IDE

Instalace knihovny na Arduino IDE
Instalace knihovny na Arduino IDE

Ve vašem Arduino IDE přejděte do Správce knihoven a vyhledejte NTP a stáhněte si klientskou knihovnu NTP, jak jsem stáhl, další pomoc naleznete na obrázku.

Krok 4: Část kódování

Kódovací část
Kódovací část
Kódovací část
Kódovací část

Zkopírujte prosím následující kód a vložte své síťové údaje do kódu. Poté pro mě musíte nastavit časový posun - je to 1 800, protože moje časové pásmo je utc+5: 30, takže UTC +5: 30 = 5,5*60*60 = 19800UTC+1 = 1*60*60 = 3600VÝPOČTUJTE své časové pásmo a upravte jej a poté nahrajte kód.#Include "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char*ssid = "***** ****** "; const char*heslo =" *********** "; konst long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" neděle "," pondělí ", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"}; // Definování klienta NTP pro získání časuWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); neplatné nastavení () {Serial.begin (115200); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (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 ()); zpoždění (1000);}

Krok 5: Získání ČASU

Získání ČASU
Získání ČASU

Po nahrání kódu do Esp8266 můžete otevřít sériový monitor a pokud je vše v pořádku, budete moci získat čas na sériovém monitoru, protože jsem schopen získat čas na svém sériovém monitoru. Takže k tomuto projektu můžete připojit libovolný zobrazit a udělat z něj správné síťové hodiny. Bavte se tedy při vytváření síťových hodin.

Doporučuje: