Tutorial ESP32 43/55 - Stazione Meteorologica IoT Internet | Kit di apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 43/55 - Stazione Meteorologica IoT Internet | Kit di apprendimento IoT ESP32 di SunFounder

In questo tutorial, costruiremo una stazione meteorologica connessa a Internet utilizzando l'ESP32 e la sua scheda di estensione per la camera di SunFounder. Questo progetto consente all'ESP32 di recuperare dati meteorologici in tempo reale, inclusi temperatura e umidità, e di visualizzarli su uno schermo LCD. Questa applicazione non solo mette in mostra le capacità dell'ESP32, ma dimostra anche come recuperare e analizzare i dati da un'API esterna.

Man mano che progrediamo nel tutorial, collegheremo i componenti, configureremo il codice e ci assicureremo che tutto funzioni perfettamente insieme. Il risultato finale sarà una stazione meteorologica completamente funzionante che aggiorna le sue letture ogni 10 secondi, fornendo una visualizzazione chiara e concisa delle attuali condizioni meteorologiche (nel video a 00:30).

Hardware Spiegato

I principali componenti utilizzati in questo progetto includono il microcontrollore ESP32, un display LCD e il cablaggio necessario. L'ESP32 è dotato di Wi-Fi e Bluetooth integrati, permettendo di connettersi a Internet e recuperare dati. Il display LCD mostrerà le attuali informazioni meteorologiche, inclusa la temperatura e l'umidità.

Il LCD che stiamo utilizzando è un display di caratteri 16x2, il che significa che può mostrare due righe di 16 caratteri ciascuna. Questo sarà sufficiente per la nostra uscita di informazioni meteorologiche. L'ESP32 comunicherà con il LCD tramite I2C, il che semplifica il cablaggio utilizzando solo due linee dati.

Dettagli della scheda tecnica

ProduttoreEspressif
Numero parteESP32-WROOM-32
Tensione di logica/IO3,3 V
Tensione di alimentazione3,0-3,6 V
Corrente di uscita (per canale)12 mA max
Corrente di picco (per canale)40 mA
Guida per la frequenza PWM1 kHz
Soglie logiche di ingresso0,3 V (basso), 0,7 V (alto)
Caduta di tensione / RDS(on)/ saturazione0,5 V
Limiti termici-40 a 85 °C
PaccoQFN48
Note / variantiInclude più varianti per diverse applicazioni.

  • Assicurati che l'ESP32 sia alimentato con una fornitura stabile di 3,3 V.
  • Utilizza un terreno comune per tutti i componenti per evitare problemi di comunicazione.
  • Controlla l'indirizzo I2C del LCD utilizzando uno scanner I2C.
  • Monitora lo stato della connessione Wi-Fi per evitare disconnessioni durante il recupero dei dati.
  • Gestire gli errori di parsing JSON per garantire robustezza nel recupero dei dati.

Istruzioni di cablaggio

esp32-43-weather_station-wiring

Per cablare i componenti, inizia collegando il LCD all'ESP32. Il LCD utilizzerà l'interfaccia I2C, quindi collega il pin SDA del LCD al GPIO21 sull'ESP32 e il pin SCL al GPIO22. Assicurati di collegare i pin di alimentazione e terra del LCD ai pin 5V e GND sull'ESP32, rispettivamente.

Successivamente, assicurati che l'ESP32 sia alimentato correttamente utilizzando la batteria al litio inclusa o una connessione USB. La batteria offre portabilità, mentre la connessione USB è utile per programmazione e debugging. Infine, controlla che tutte le connessioni siano sicure per evitare problemi di cablaggio allentato che potrebbero interrompere il funzionamento.

Esempi di codice e guida passo passo

Nella fase di configurazione del nostro programma, inizializziamo la comunicazione seriale e ci connettiamo alla rete Wi-Fi utilizzando l'SSID e la password forniti. Il seguente frammento di codice gestisce la connessione Wi-Fi:

WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
  delay(500);
  Serial.print(".");
}
Serial.println("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());

Questo codice garantisce che l'ESP32 si connetta alla rete Wi-Fi specificata prima di procedere con il recupero dei dati. Se la connessione fallisce, tenterà continuamente di riconnettersi.

Successivamente, dobbiamo inviare una richiesta HTTP GET per recuperare i dati meteorologici. Questo viene realizzato utilizzando il seguente frammento di codice:

String serverPath = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "," + countryCode + "&units=metric" + "&APPID=" + openWeatherMapApiKey;
jsonBuffer = httpGETRequest(serverPath.c_str());

Qui costruiamo l'URL per la richiesta API, che include la città, il codice del paese e la nostra chiave API.httpGETRequestViene quindi chiamata la funzione per recuperare i dati meteorologici.

Infine, analizziamo la risposta JSON e visualizziamo i dati pertinenti sul LCD:

lcd.clear(); 
lcd.setCursor(0, 0); 
lcd.print(time);
lcd.print(" ");        
lcd.print(myObject["weather"][0]["main"]);             
lcd.setCursor(0, 1);
lcd.print("T:");    
lcd.print(myObject["main"]["temp"]); 
lcd.print("\xDF");  // "°" char
lcd.print("C ");    
lcd.print("H:");    
lcd.print(myObject["main"]["humidity"]);  
lcd.print("%");

Questo frammento di codice aggiorna il display LCD con l'ora corrente, le condizioni meteorologiche, la temperatura e l'umidità. Pulisce il display precedente e imposta il cursore nelle posizioni appropriate per ogni riga.

Dimostrazione / Cosa Aspettarsi

Dopo il cablaggio e la programmazione riusciti, la tua stazione meteorologica si connetterà al Wi-Fi e inizierà a recuperare i dati meteorologici ogni 10 secondi. Vedrai la temperatura attuale, l'umidità e le condizioni meteorologiche visualizzate sullo schermo LCD. Se l'ESP32 non riesce a connettersi al Wi-Fi, stamperà un messaggio di errore sul monitor seriale.

Fai attenzione ai limiti delle chiamate API per evitare di essere bloccato dal servizio OpenWeatherMap. Se riscontri problemi con il recupero dei dati, controlla la tua chiave API e assicurati che il codice della tua città e del tuo paese siano specificati correttamente (nel video alle 15:45).

Timestamp video

  • 00:00 Inizio
  • 2:00 introduzione al progetto
  • 5:04 Account OpenWeather
  • 6:11 Cablaggio
  • 8:05 Codice Arduino spiegato
  • 14:13 JASON Elementi nel codice
  • 20:23 Selezionando la scheda ESP32 e la porta COM in Arduino IDE
  • 22:05 Dimostrazione della Stazione Meteorologica su LCD1602
  • 23:45 Dimostrazione della Stazione Meteo su LCD2004

Immagini

esp32-43-weather_station-main
esp32-43-weather_station-main
esp32-43-weather_station-wiring
esp32-43-weather_station-wiring
844-ESP32 Tutorial 43/55- Arduino code for IoT Internet Weather Station
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.