Tutorial ESP32 48/55 - Monitoraggio della temperatura remota e controllo LED MQTT | Kit IoT ESP32 di SunFounder
In questo tutorial, esploreremo come utilizzare il modulo ESP32 in concomitanza con la scheda di espansione ESP32 di SunFounder per monitorare la temperatura e l'umidità da remoto utilizzando la piattaforma Adafruit IO. Inoltre, implementeremo la funzionalità per controllare un LED tramite un'interfaccia web. Alla fine di questo progetto, sarai in grado di visualizzare i dati in tempo reale sulla temperatura e l'umidità e accendere e spegnere un LED dal tuo browser.
Questo progetto sfrutta il protocollo MQTT per una comunicazione efficiente tra l'ESP32 e il servizio Adafruit IO. MQTT è leggero e ben adattato per le applicazioni IoT, permettendoci di pubblicare facilmente i dati dei sensori e iscriverci ai comandi per il controllo del LED. Per ulteriori chiarimenti sul codice e sul cablaggio, assicurati di controllare il video che accompagna questo tutorial (nel video a 00:00).
Hardware Spiegato
I componenti principali di questo progetto includono il microcontrollore ESP32, un sensore di temperatura e umidità DHT11 e un LED. L'ESP32 è un potente microcontrollore che dispone di funzionalità Wi-Fi e Bluetooth integrate, rendendolo una scelta ideale per progetti IoT. Può gestire più compiti e connettersi a Internet senza problemi.
Il sensore DHT11 è responsabile della misurazione della temperatura e dell'umidità. Produce segnali digitali che possono essere letti dall'ESP32. Il LED funge da indicatore e può essere controllato da remoto per dimostrare l'efficacia del protocollo MQTT nella gestione dei dispositivi su internet.
Dettagli del datashsheet
| Produttore | Adafruit |
|---|---|
| Numero di parte | DHT11 |
| Tensione Logica/IO | 3,3 V |
| Tensione di alimentazione | 3,3 V |
| Corrente di uscita (per canale) | 20 mA |
| Corrente di picco (per canale) | 50 mA |
| Indicazioni sulla frequenza PWM | N/A |
| Soglie della logica di ingresso | 0,3 V (basso), 0,7 V (alto) |
| Caduta di tensione / RDS(on)/ saturazione | N/A |
| Limiti termici | 0 a 50 °C |
| Pacchetto | 3-pin |
| Note / varianti | Utilizzare DHT22 per una maggiore precisione. |
- Assicurati di avere il corretto cablaggio per prevenire danni.
- Usa una resistenza da 220 Ohm con il LED per limitare la corrente.
- Usa resistori di pull-up per il pin dati del DHT11 se necessario.
- Controlla le credenziali Wi-Fi per la sensibilità alle maiuscole.
- Monitora l'output seriale per il debug dei problemi di connessione.
- Mantieni i topic MQTT unici per evitare conflitti.
- Testare le letture dei sensori per garantire che siano valide.
- Fai attenzione al tempo di risposta del DHT11; potrebbe essere necessario del tempo per stabilizzare le letture.
LED= controllo LED;temperature= pubblicare i dati sulla temperatura;humidity= pubblicare i dati sull'umidità.
Istruzioni di cablaggio
Per cablare i componenti, inizia collegando il sensore DHT11. Collega il pin di sinistra del DHT11 al binario di alimentazione a 3.3V sulla breadboard utilizzando un filo rosso. Il pin centrale del DHT11 deve essere collegato al pin 13 sull'ESP32 utilizzando un filo giallo. Infine, collega il pin di destra del DHT11 al binario di terra utilizzando un filo blu.
Successivamente, per il LED, collega l'anodo (gamba più lunga) al pin 15 dell'ESP32 tramite una resistenza da 220 Ohm. Collega il catodo (gamba più corta) direttamente alla barra di massa sulla scheda a circuiti. Assicurati che tutte le connessioni siano sicure e ricontrolla eventuali fili allentati.
Impostazione del Dashboard
-
VisitaAdafruit IO, quindi fai clic suInizia gratuitamenteper creare un account gratuito.

-
Compila il modulo per creare un account.

-
Dopo aver creato un account Adafruit, dovrai riaprire Adafruit io. Clicca su theDashboard, quindi fai clic suNuovo Dashboard.

-
Crea unNuovo Dashboard.

-
Inserisci il nuovo creatoCruscottoe creare un nuovo blocco.

-
Crea 1Attiva/disattivablocco.

-
Successivamente, dovrai creare un nuovo feed qui. Questo interruttore sarà usato per controllare il LED e daremo a questo feed il nome "LED".

-
Controlla ilLEDnutrire, poi passare al passaggio successivo.

-
Completa le impostazioni del blocco (principalmente Titolo del Blocco, Testo Acceso e Testo Spento), quindi fai clic suCrea bloccopulsante in basso a destra per finire.

-
Dobbiamo anche creare dueBlocchi di testosuccessivi. Saranno utilizzati per visualizzare temperatura e umidità. Quindi, crea due feed chiamatitemperaturaeumidità.

-
Dopo la creazione, il tuo Dashboard dovrebbe apparire più o meno così:

-
Puoi regolare il layout utilizzando ilModifica layoutopzione nella Dashboard.

-
Clicca suCHIAVE APIe vedrai il tuo nome utente eCHIAVE APIAnnotali. Tieni nota di questi poiché ti serviranno per il tuo codice.

Esempi di Codice e Guida Passo Passo
Il codice inizia includendo le librerie necessarie, configurando le credenziali Wi-Fi e definendo i parametri MQTT. Identificatori chiave comeAIO_USERNAMEeAIO_KEYsono utilizzati per autenticarsi con il servizio Adafruit IO.
#define AIO_USERNAME "YourUsername"
#define AIO_KEY "YourKey"Queste righe definiscono il tuo nome utente e la tua chiave Adafruit IO, che sono essenziali per collegarsi al broker MQTT. Assicurati che questi valori siano accurati per stabilire una connessione riuscita.
Nellasetup()funzione, la connessione Wi-Fi viene inizializzata e il client MQTT viene configurato con il certificato CA radice per una comunicazione sicura.
WiFi.begin(WLAN_SSID, WLAN_PASS);
client.setCACert(adafruitio_root_ca);Questo codice collega l'ESP32 alla rete Wi-Fi specificata e imposta il root CA per connessioni MQTT sicure. Gestire correttamente queste connessioni è fondamentale per una trasmissione dati affidabile.
Finalmente, illoop()La funzione gestisce la connessione MQTT e pubblica letture di temperatura e umidità a intervalli regolari.
mqtt.processPackets(5000);Questa linea consente all'ESP32 di elaborare i messaggi in arrivo per gli argomenti sottoscritti, garantendo che il dispositivo rimanga reattivo ai comandi inviati dall'interfaccia web.
Per il codice completo, si prega di fare riferimento al programma completo caricato sotto l'articolo.
Dimostrazione / Cosa Aspettarsi
Una volta completata con successo l'installazione, dovresti vedere aggiornamenti in tempo reale sulla temperatura e sull'umidità nel tuo dashboard di Adafruit IO. Puoi anche attivare e disattivare il LED tramite l'interfaccia web. Se il LED non risponde come previsto, controlla il cablaggio e assicurati che i nomi dei topic MQTT corrispondano a quelli definiti nel codice.
Tieni presente che potrebbero verificarsi alcuni errori di connessione MQTT a causa di certificati scaduti. Assicurati di avere l'ultima versione del certificato CA root nel tuo codice per evitare questi problemi (nel video alle 15:30).
Timestamp video
- 00:00 Inizio
- 1:50 Introduzione al progetto
- 3:16 Cos'è MQTT
- 6:36 Configurazione di Adafruit IO
- 11:13 cablaggio
- 13:38 Spiegazione del codice Arduino
- 22:03 Selezionando la scheda ESP32 e la porta COM
- 23:44 Dimostrazione del progetto
- 27:05 Aggiornamento del cruscotto
Common Course Links
Common Course Files
Risorse e riferimenti
-
Documentazione
File📁
Nessun file disponibile.