Alcune parti di questo sito web non sono ancora disponibili nella tua lingua. Stiamo lavorando per risolvere questo problema e ci scusiamo per eventuali disagi.
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.
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