Tutorial ESP32 53/55 - Costruisci un orologio Internet LCD | Kit di apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 53/55 - Costruisci un orologio Internet LCD | Kit di apprendimento IoT ESP32 di SunFounder

In questo tutorial, costruiremo un orologio LCD connesso a Internet utilizzando il microcontrollore ESP32 di SunFounder. Questo orologio si sincronizzerà automaticamente con l'orario attuale tramite Internet, visualizzando l'ora nel formato di 12 ore o 24 ore, insieme al giorno della settimana, alla data e al mese. L'uso del Protocollo di Tempo di Rete (NTP) assicura che l'orologio rimanga preciso senza regolazioni manuali.

esp32-53-orologio-internet-principale

Questo progetto sfrutta le capacità Wi-Fi integrate dell'ESP32 per recuperare l'ora attuale da un server NTP. Utilizzeremo un Display a Cristalli Liquidi (LCD) per mostrare l'ora, che può essere formattata secondo le preferenze dell'utente. Per ulteriori chiarimenti su qualsiasi passaggio, si prega di fare riferimento al video (nel video a :30).

Hardware Spiegato

I componenti principali per questo progetto includono il microcontrollore ESP32, un display LCD 20x4 e una fonte di alimentazione. L'ESP32 è un potente microcontrollore con Wi-Fi e Bluetooth integrati, rendendolo adatto per progetti IoT. L'LCD viene utilizzato per visualizzare l'ora e la data e può essere configurato per diverse dimensioni di display.

Il LCD opera tramite il protocollo I2C, che consente la comunicazione su due fili (SDA e SCL). Questo semplifica il cablaggio e riduce il numero di pin necessari sull'ESP32. La connessione al server NTP avviene utilizzando le capacità Wi-Fi dell'ESP32, consentendo aggiornamenti in tempo reale.

  • Assicurati di avere una tensione di alimentazione corretta (5 V).
  • Utilizzare condensatori di disaccoppiamento vicino ai pin di alimentazione per stabilità.
  • Fai attenzione alle connessioni I2C per evitare conflitti bus.
  • Verifica l'indirizzo I2C del LCD (0x27 o 0x3F).
  • Controlla le credenziali Wi-Fi per una connessione accurata.
  • Gestisci le modifiche dell'ora legale nel tuo codice.
  • Utilizza il server NTP corretto per la tua posizione geografica.
  • Pulire sempre il LCD prima di aggiornare il display.

Istruzioni di cablaggio

ESP32-11_LCD-wiring

Per collegare l'ESP32 con il LCD, inizia collegando i pin di alimentazione. Collega il VCC del LCD al pin 5V dell'ESP32 e il pin GND del LCD al pin GND dell'ESP32. Per la comunicazione I2C, collega il pin SDA del LCD al GPIO 21 dell'ESP32 e il pin SCL al GPIO 22. Assicurati che i collegamenti siano sicuri per evitare eventuali problemi di comunicazione.

Quando si configura il cablaggio, utilizzare cavi jumper maschio-femmina per connessioni facili. Se il tuo LCD ha un indirizzo I2C o una configurazione dei pin diversa, regola il codice di conseguenza. Fare riferimento al video (nel video a 05:30) per opzioni di cablaggio alternative se necessario.

Esempi di codice e guida passo passo

Il codice inizializza il LCD e configura la connessione Wi-Fi per recuperare i dati temporali dal server NTP. Identificatori chiave comessidepasswordsono utilizzati per connettersi alla rete Wi-Fi, mentrentpServer1entpServer2specificare i server NTP da utilizzare.

const char* ssid = "dars";
const char* password = "llllllllllllll";
const char* ntpServer1 = "pool.ntp.org";
const char* ntpServer2 = "time.nist.gov";

Questo snippet mostra le credenziali di rete e gli indirizzi del server. Assicurati di inserire il tuo SSID Wi-Fi e la password in modo accurato, poiché eventuali errori impediranno all'ESP32 di connettersi a Internet.

NellaprintLocalTime()funzione, l'ora attuale è formattata per la visualizzazione. La strutturatmviene utilizzato per memorizzare informazioni temporali, mentrestrftimeaiuta a formattare il tempo in una stringa leggibile.

void printLocalTime() {
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)) {
    Serial.println("No time available (yet)");
    return;
  }
  char timeHour[5];
  strftime(timeHour, 5, "%H", &timeinfo);

Questo codice verifica se l'ora locale è disponibile e recupera l'ora. L'ora formattata viene quindi utilizzata per visualizzare l'ora corrente sul LCD. Se l'ora non è ancora disponibile, stampa un messaggio sul Monitor Serial.

Finalmente, ilsetup()La funzione inizializza l'LCD e si connette al Wi-Fi. Configura anche le impostazioni del server NTP e imposta un callback per la sincronizzazione dell'ora.

void setup() {
  Serial.begin(115200);
  lcd.init(); // initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);

Questo estratto inizializza il Monitor Seriale per il debug, configura il LCD e tenta di connettersi alla rete Wi-Fi specificata. Lo stato della connessione verrà stampato sul Monitor Seriale, permettendoti di verificare la connessione.

Dimostrazione / Cosa Aspettarsi

Al termine della configurazione, il LCD visualizzerà l'ora corrente, il giorno della settimana e la data. Puoi aspettarti che l'ora si aggiorni ogni 5 secondi, grazie alloop()funzione. Se la connessione al server NTP fallisce, apparirà un messaggio nel Monitor Seriale che indica che l'ora non è ancora disponibile (nel video alle 12:00).

Le trappole comuni includono cablaggi errati, indirizzi I2C sbagliati e credenziali Wi-Fi errate. Assicurati che tutte le connessioni siano sicure e che il server NTP sia raggiungibile dalla tua rete.

Timestamp video

  • 00:00 Inizio
  • 2:10 Introduzione
  • 5:15 Spiegazione del cablaggio
  • 7:32 Spiegazione del codice Arduino
  • Selezionando la scheda ESP32 e la porta COM nell'IDE Arduino
  • 20:27 Dimostrazione dell'orologio Internet

Immagini

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
esp32-53-internet-clock-main
esp32-53-internet-clock-main
854-ESP32 Tutorial 53/55- Internet Clock
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

File richiesto (.h)