Sommario:

Ottenere tempo da Internet utilizzando ESP8266 - Progetto orologio NTP con Nodemcu ESP8266: 5 passaggi
Ottenere tempo da Internet utilizzando ESP8266 - Progetto orologio NTP con Nodemcu ESP8266: 5 passaggi

Video: Ottenere tempo da Internet utilizzando ESP8266 - Progetto orologio NTP con Nodemcu ESP8266: 5 passaggi

Video: Ottenere tempo da Internet utilizzando ESP8266 - Progetto orologio NTP con Nodemcu ESP8266: 5 passaggi
Video: Contatore iscritti YT e Orologio IoT con ESP8266 - Speciale 10k subs 2024, Dicembre
Anonim
Ottenere tempo da Internet utilizzando ESP8266 | Progetto orologio NTP con ESP8266 Nodemcu
Ottenere tempo da Internet utilizzando ESP8266 | Progetto orologio NTP con ESP8266 Nodemcu

In questo tutorial vedremo come guadagnare tempo usando ESP8266/nodemcu con Arduino IDE. Ottenere il tempo è particolarmente utile nella registrazione dei dati per contrassegnare l'ora delle letture. Se il tuo progetto ESP8266 ha accesso a Internet, puoi ottenere il tempo utilizzando Network Time Protocol (NTP) - non hai bisogno di alcun hardware aggiuntivo. Puoi connettere il tuo ESP8266 alla tua rete wifi e sarà un orologio che sarà sincronizzato con la rete, quindi se una volta caricato il codice otterrà l'ora da Internet, quindi visualizzerà sempre l'ora corretta.

Passaggio 1: cose di cui hai bisogno

Cose di cui hai bisogno
Cose di cui hai bisogno

Per questo progetto avrai bisogno di pochissime cose: cavo USB ESP8266/NODEMCUA per programmarlo.

Passaggio 2: cos'è un NTP e come funzionerà?

Che cos'è un NTP e come funzionerà?
Che cos'è un NTP e come funzionerà?
Che cos'è un NTP e come funzionerà?
Che cos'è un NTP e come funzionerà?

Che cos'è un NTP: Un NTP sta per Network Time Protocol. È un protocollo Internet standard (IP) per sincronizzare gli orologi del computer con un riferimento su una rete. Il protocollo può essere utilizzato per sincronizzare tutti i dispositivi in rete con l'ora UTC (Coordinated Universal Time). NTP imposta gli orologi dei computer su UTC, qualsiasi ora locale l'offset di zona o l'offset dell'ora legale viene applicato dal cliente. In questo modo i client possono sincronizzarsi con i server indipendentemente dalla posizione e dalle differenze di fuso orario. Come funzionerà per noi: il dispositivo client come ESP8266 si connette al server utilizzando il protocollo UDP (User Datagram Protocol) sulla porta 123. Un client trasmette quindi un richiedere il pacchetto a un server NTP. In risposta a questa richiesta, il server NTP invia un pacchetto di timestamp. Un pacchetto di timestamp contiene più informazioni come timestamp UNIX, precisione, ritardo o fuso orario. Un client può quindi analizzare i valori di data e ora correnti.

Passaggio 3: installazione della libreria su Arduino IDE

Installazione della libreria su Arduino IDE
Installazione della libreria su Arduino IDE

Nel tuo IDE Arduino vai su Gestore librerie e cerca NTP e scarica semplicemente la libreria client NTP come ho scaricato, fai riferimento all'immagine per ulteriore aiuto.

Passaggio 4: parte di codifica

Parte di codifica
Parte di codifica
Parte di codifica
Parte di codifica

Per favore copia il seguente codice e inserisci le tue credenziali di rete nel tuo codice, quindi devi impostare offsettime per me è 19800 Perché il mio fuso orario è utc + 5: 30 quindi UTC + 5: 30 = 5,5 * 60 * 60 = 19800 UTC + 1 = 1*60*60=3600CALCOLA il tuo fuso orario e modificalo, quindi carica il codice.#include "NTPClient.h"#include "ESP8266WiFi.h"#include "WiFiUdp.h"const char *ssid = "***** ******";const char *password = "***********";const long utcOffsetInSeconds = 19800;char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"};// Definisci il client NTP per ottenere timeWiFiUDP ntpUDP;NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);void setup (){ Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { ritardo (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()); ritardo(1000);}

Passaggio 5: ottenere TEMPO

Ottenere TEMPO
Ottenere TEMPO

Dopo aver caricato il codice su Esp8266 puoi aprire il monitor seriale e se tutto va bene, sarai in grado di ottenere l'ora sul monitor seriale come posso ottenere l'ora nel mio monitor seriale. Quindi con questo progetto puoi allegare qualsiasi visualizzare e renderlo un vero e proprio orologio di rete. Quindi divertiti a creare il tuo orologio di rete.

Consigliato: