Sommario:
- Passaggio 1: dimostrazione
- Passaggio 2: assemblaggio
- Fase 3: Assemblaggio - Tavolo
- Passaggio 4: libreria Adafruit GFX
- Passaggio 5: libreria Adafruit ST7735
- Passaggio 6: libreria client NTPC
- Passaggio 7: ESP32_NTP.ino
- Passaggio 8: file
Video: Non perdere tempo: usa NTP!: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Fai contare il tuo tempo! Questo è un argomento discusso spesso tra i miei abbonati e per quale motivo? Per il semplice e indispensabile fatto che quando si realizza un datalogger, e per tutto ciò che riguarda l'automazione, serve l'ora giusta! E ci sono diversi modi per misurare il tempo: orologio con batteria, RTC (Real Time Clock), tra gli altri. Ma quello che voglio mostrarti oggi (che informa la data, il giorno della settimana e l'ora) è l'NTP (Network Time Protocol), che è online. In questo video, recupereremo le informazioni su data e ora online e mostreremo le informazioni sul display.
Passaggio 1: dimostrazione
Passaggio 2: assemblaggio
Fase 3: Assemblaggio - Tavolo
Passaggio 4: libreria Adafruit GFX
Nell'IDE di Arduino, vai su Schizzo-> Includi libreria-> Gestisci librerie …
Installa la libreria Adafruit GFX
Passaggio 5: libreria Adafruit ST7735
Nell'IDE di Arduino, vai su Schizzo-> Includi libreria-> Gestisci librerie …
Installa Adafruit ST7735
Passaggio 6: libreria client NTPC
Vai su https://github.com/taranais/NTPClient e scarica la libreria NTPClient modificata da taranais.
Decomprimi e metti la cartella in C:\Users\Documents\Arduino\libraries
Passaggio 7: ESP32_NTP.ino
Include e definisce
#include #include //Biblioteca NTPClient modificada #include //Socket UDP #include //Display #include //Display #include //Pino visualizza #define DISPLAY_DC 12 //A0 #define DISPLAY_CS 13 //CS #define DISPLAY_MOSI 14 //SDA #define DISPLAY_CLK 27 //SCK #define DISPLAY_RST 0 //Fuso Horário, no case horário de verião de Brasília int timeZone = -2; //Struct com os dados do dia e hora struct Date{ int dayOfWeek; int giorno; int mese; int anno; int ore; int minuti; int secondi; }; //Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; //Objeto responsável por recuperar dados sobre horário NTPClient ntpClient(udp, //socket udp "0.br.pool.ntp.org", //URL do servwer NTP timeZone*3600, //Deslocamento do horário em relacão ao GMT 0 60000); //Intervalo entre verificações online //Nomes dos dias da semana char* dayOfWeekNames = {"Sunday", "Monday", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"}; //Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735(DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Impostare
void setup(){ Serial.begin(115200); setupDisplay(); connettiWiFi(); setupNTP(); //Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore(wifiConnectionTask, //Função que será executada "wifiConnectionTask", //Nome da tarefa 10000, //Tamanho da memória disponível (em WORDs) NULL, //Não vamos passar nenh parametro, //prioridade NULL, //Não precisamos de referência para a tarefa 0); //Numero fare core }
ConfigurazioneNTP
void setupNTP(){ //Inizializzazione del client NTP ntpClient.begin(); //Espera pelo primeiro update online Serial.println("In attesa del primo aggiornamento"); while(!ntpClient.update()) { Serial.print("."); ntpClient.forceUpdate(); ritardo (500); } Serial.println(); Serial.println("Primo aggiornamento completato"); }
WifiConnessioneAttività
//Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask(void* param) { while(true) { //Se a WiFi não está conectada if(WiFi.status() != WL_CONNECTED) { //Manda conectar connectWiFi(); } //Ritardo di 100 tick vTaskDelay(100); } }
ConnettiWiFi
void connectWiFi(){ Serial.println("Connessione"); //Troque nome e senha da sua rede WiFi WiFi.begin("SSID", "12345678"); //Espera enquanto não estater conectado while(WiFi.status() != WL_CONNECTED) { Serial.print("."); ritardo (500); } Serial.println(); Serial.print("Connesso a"); Serial.println(WiFi. SSID()); }
ConfigurazioneDisplay
void setupDisplay(){ display.initR(INITR_BLACKTAB); //Inizializzazione del display display.setRotation(3); //Rotazione display.setTextSize(2); //Tamanho fai testo display.fillScreen(ST77XX_BLACK); //Preenche com a cor preta display.setCursor(0, 0); //Coloca o cursore non come display.setTextColor(ST77XX_WHITE, ST77XX_BLACK); //Texto branco com fundo preto display.setTextWrap(false); //Não pula linha automaticamente }
Ciclo continuo
void loop(){ //Recupera tutti i dati dopo i dati e l'orario Date date = getDate(); //Reimposta il cursore display.setCursor(0, 0); //Mostra dati senza display display.printf(" %s \n\n %s \n\n %02d/%02d/%d\n\n %02d:%02d:%02d", WiFi. SSID().c_str(), dayOfWeekNames[date.dayOfWeek], date.day, date.month, date.year, date.hours, date.minutes, date.seconds); ritardo(100); }
Ottieni data
Date getDate(){ //Recupera i dati e l'orario usando il client NTP char* strDate = (char*)ntpClient.getFormattedDate().c_str(); //Passa os dados da string para a struct Date date; sscanf(strDate, "%d-%d-%dT%d:%d:%dZ", &date.year, &date.month, &date.day, &date.hours, &date.minutes, &date.seconds); //Dia settimana da 0 a 6, invia 0 o domingo date.dayOfWeek = ntpClient.getDay(); data di ritorno; }
Passaggio 8: file
Scarica i file
IO NO
Consigliato:
NON PERDERE LE PAROLE!: 3 Passi
NON PERDERE LE PAROLE!: PROGETTO PER LA COMPETIZIONE CON LA SCHEDA MAKEY MAKEY
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED - Dashboard Covid19 in tempo reale: 4 passaggi
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED | Dashboard Covid19 in tempo reale: visita il sito Web Techtronic Harsh: http://techtronicharsh.com Ovunque c'è un enorme focolaio del Novel Corona Virus (COVID19). È diventato necessario tenere d'occhio l'attuale scenario di COVID-19 nel mondo. Quindi, essendo a casa, questo è stato il p
Non comprare un modulo GSM, usa il tuo vecchio telefono!: 6 passaggi
Non comprare un modulo GSM, usa il tuo vecchio telefono!: Recentemente ho fatto molti progetti wireless, principalmente basati su un modulo Bluetooth, ma da allora ho voluto andare avanti e iniziare a realizzare i miei progetti SMS o Telefonata controllata che è quasi altrettanto facile con l'aiuto di un modulo GSM
Chiave di lettura! il dispositivo che non ti fa perdere le chiavi!: 3 passaggi (con immagini)
Chiave di lettura! il dispositivo che non ti fa perdere le chiavi!: questo dispositivo ti aiuta a non perdere le chiavi! Se sei come me, quando torni a casa dal lavoro perdi immediatamente le chiavi dopo aver sbloccato la porta e aspetti fino al giorno successivo prima di dover uscire per cercarle. Sì, potresti avere
Come cambiare la batteria in un tag Tempo Tempo: 12 passaggi
Come sostituire la batteria in un tag Tempo Time: I tag Tempo Time di Vessel sono un ottimo sostituto per un orologio, che si attacca ai vestiti, alle cinghie delle borse o ai bordi delle tasche. La batteria si esaurisce alla fine, quindi ecco come sostituirla. È una batteria a bottone standard 364 / AG1 / LR621 / SR621W / 164 che