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 46/55 - Monitoraggio della temperatura remota utilizzando HiveMQ MQTT | Kit ESP32 di SunFounder
In questo tutorial, creeremo un sistema di monitoraggio della temperatura remota utilizzando l'ESP32 e il protocollo MQTT. Questo progetto ci consente di pubblicare i dati di temperatura su un broker MQTT e controllare un LED da remoto utilizzando un'interfaccia web. Premendo un pulsante, possiamo inviare le letture di temperatura al cloud e possiamo anche ricevere comandi per accendere o spegnere il LED.
esp32-47-mqt-1
L'ESP32 è un potente microcontrollore che presenta Wi-Fi e Bluetooth integrati, rendendolo ideale per applicazioni Internet of Things (IoT). In questa configurazione, utilizzeremo un termistore NTC per misurare la temperatura, un pulsante per attivare le letture e un LED per indicare lo stato. I dati verranno inviati a HiveMQ, un popolare broker MQTT, dove possono essere accessibili da remoto (nel video al 00:45).
esp32-47-mqt-2
Hardware Spiegato
Per questo progetto, utilizzeremo i seguenti componenti:
Microcontrollore ESP32:Questa scheda funge da unità di elaborazione centrale, gestendo le connessioni Wi-Fi e le comunicazioni MQTT.
Termistore NTC:Questo sensore di temperatura cambia la sua resistenza in base alla temperatura. Fornisce un segnale analogico che l'ESP32 può leggere per determinare la temperatura attuale.
LED:Questo diodo a emissione di luce sarà utilizzato per indicare lo stato in base ai comandi ricevuti tramite MQTT.
Pulsante:Questo pulsante attiverà l'ESP32 per leggere la temperatura e pubblicarla sul broker MQTT.
Dettagli del datasheet
Produttore
SunFounder
Numero di parte
ESP32
Tensione logica/IO
3,3 V
Tensione di alimentazione
5 V (tramite USB)
Corrente in uscita (per canale)
12 mA max
Guida sulla frequenza PWM
Fino a 40 kHz
Soglie di logica di ingresso
0,3 V (basso), 2,4 V (alto)
Limiti termici
-40 a 85 °C
Pacchetto
ESP32-WROOM-32
Garantire livelli di tensione adeguati per evitare danni.
Utilizzare resistori di pull-up per il pulsante per garantire letture stabili.
I condensatori di disaccoppiamento possono aiutare a stabilizzare l'alimentazione.
Fai attenzione al cablaggio del termistore per evitare letture errate.
Verifica i dettagli del tuo broker MQTT per una connessione riuscita.
Istruzioni di cablaggio
esp32-47-mqtt-wiring
Per cablare i componenti, inizia collegando il termistore NTC. Collega un pin del termistore all'alimentazione di 3,3 V sull'ESP32. L'altro pin si collega al pin 36 dell'ESP32 e deve anche connettersi a una resistenza da 10 kΩ, che poi è collegata a terra. Questo crea un partitore di tensione che consente all'ESP32 di leggere la resistenza del termistore.
Successivamente, collega il LED. Il pin più lungo (anodo) del LED si collega al pin 4 dell'ESP32 tramite una resistenza da 220 Ω, mentre il pin più corto (catodo) si collega a terra. Per il pulsante, collega un lato a 3.3 V e l'altro lato al pin 14 dell'ESP32. Inoltre, collega una resistenza da 10 kΩ dal pin del pulsante a terra per garantire uno stato LOW stabile quando il pulsante non è premuto.
Installa la libreria richiesta
IlPubSubClientla libreria è utilizzata qui, puoi installarla daGestore della Biblioteca.
esp32-47-libreria-mqtt
Esempi di codice e guida passo passo
Nella configurazione, inizializziamo la comunicazione seriale, impostiamo la connessione Wi-Fi e configuriamo il server MQTT. Ecco un estratto del codice di configurazione:
Questa parte del codice stabilisce la connessione alla rete Wi-Fi e configura il server MQTT. Anche le modalità dei pin per il pulsante e il LED sono configurate qui.
La funzione loop controlla continuamente lo stato del pulsante e pubblica i dati sulla temperatura quando viene premuto. Ecco un estratto concentrato dalla loop:
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
if (digitalRead(buttonPin)) {
long now = millis();
if (now - lastMsg > 5000) {
lastMsg = now;
char tempString[8];
dtostrf(thermistor(), 1, 2, tempString);
client.publish("SF/TEMP", tempString);
}
}
}
In questo ciclo, controlliamo se l'ESP32 è connesso al broker MQTT. Se il pulsante viene premuto, legge la temperatura dal termistore e la pubblica nell'argomento "SF/TEMP" ogni 5 secondi.
Dimostrazione / Cosa Aspettarsi
Quando il progetto è configurato e in esecuzione, premere il pulsante pubblicherà la temperatura corrente al broker MQTT. Puoi monitorare questi dati da qualsiasi client MQTT. Inoltre, puoi inviare messaggi per controllare il LED; inviando "on" si accenderà, mentre "off" lo spegnerà. Guarda il comportamento atteso nel video alle 15:30, dove le letture della temperatura vengono mostrate dopo ogni pressione del pulsante.
Timestamp video
00:00 Inizio
2:05 Introduzione al progetto
7:06 Servizio HiveMQ gratuito
7:56 Spiegazione del cablaggio
11:11 Spiegazione del codice Arduino
18:46 Selezione della scheda ESP32 e della porta COM nell'Arduino IDE
20:30 Dimostrazione del broker HiveMQ Free
Immagini
esp32-47-mqt-1
esp32-47-mqt-2
esp32-47-mqtt-library
esp32-47-mqtt-wiring
esp32-47-mqt-1
esp32-47-mqt-2
esp32-47-mqtt-library
esp32-47-mqtt-wiring
847-ESP32 Tutorial 46/55- Arduino code for IoT Communication with MQTT