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 28/55 - Sensore di temperatura DHT11 con LCD | Kit di apprendimento IoT ESP32 di SunFounder
In questo tutorial, esamineremo come interfacciare il sensore di temperatura e umidità DHT11 con il microcontrollore ESP32. Utilizzando questa configurazione, misureremo la temperatura e l'umidità ambientale, visualizzando i risultati sia sul monitor seriale che su uno schermo LCD. Inoltre, implementeremo un buzzer che si attiva quando la temperatura supera una certa soglia.
ESP32-28_sensore-di-temperatura-dht-principale
Questo progetto non solo dimostra l'uso del sensore DHT11, ma mostra anche la versatilità dell'ESP32, che include capacità Wi-Fi e Bluetooth integrate. Alla fine di questo tutorial, avrai una configurazione funzionante che monitora continuamente le condizioni ambientali e fornisce feedback in tempo reale.
Per una guida visiva, dai un'occhiata al video che accompagna questo tutorial (nel video a :00). Immergiamoci!
Spiegazione dell'hardware
I componenti principali utilizzati in questo progetto sono il microcontrollore ESP32, il sensore DHT11 e un display LCD. L'ESP32 fungerà da cervello dell'operazione, elaborando i dati provenienti dal sensore DHT11 e controllando l'output LCD.
Il sensore DHT11 misura l'umidità e la temperatura, fornendo letture attraverso un'unica linea di dati. Richiede un'alimentazione di 3,3V a 5,5V e ha un basso consumo di corrente, rendendolo adatto per applicazioni alimentate a batteria. Il LCD mostrerà i valori di temperatura e umidità in tempo reale.
Dettagli della scheda tecnica
Produttore
GROVE
Numero di parte
DHT11
Tensione logica/IO
3,3 - 5,5 V
Tensione di alimentazione
3,3 V
Corrente di uscita (per canale)
0,5 mA tip.
Corrente di picco (per canale)
2,5 mA max.
linee guida sulla frequenza PWM
N/A
Soglie logiche di ingresso
0,3 VCC (basso), 0,7 VCC (alto)
Caduta di tensione / RDS(on)saturazione
Non applicabile
Limiti termici
0°C a 60°C
Pacchetto
DIP-4
Note / varianti
Risoluzione: 1°C / 1% UR
Utilizzare una resistenza di pull-up (5 kΩ consigliata) sulla linea dei dati.
Mantieni i cavi del sensore corti (meno di 20 m) per garantire letture accurate.
Alimenta il DHT11 con 3,3V per prestazioni ottimali.
Il periodo di campionamento non dovrebbe essere inferiore a 1 secondo.
Controlla le connessioni dei cavi se le letture non sono corrette (ad esempio, non connesse, pin errato).
Per collegare il sensore DHT11 all'ESP32, inizia collegando il pin VCC del DHT11 (il pin più a sinistra) all'uscita di 3,3V dell'ESP32. Successivamente, collega il pin di massa (il quarto pin) a un pin di massa (GND) sull'ESP32. Il pin dati (il secondo pin) dovrebbe essere collegato al pin GPIO 14 dell'ESP32.
Per il LCD, collegare il pin VCC all'uscita di 5V dell'ESP32. Il pin di massa dovrebbe essere collegato a un pin di massa sull'ESP32. I pin SDA e SCL del LCD devono essere collegati ai pin GPIO 21 e 22, rispettivamente. Assicurati che tutte le connessioni siano sicure per evitare problemi durante la lettura dei dati.
Esempi di codice e guida passo passo
Nella prima parte del codice, inizializziamo il sensore DHT e impostiamo il numero del pin con#define DHTPIN 14Questo identificatore ci consente di fare riferimento facilmente al pin connesso alla linea dati del DHT11 in tutto il codice.
#include "DHT.h"
#define DHTPIN 14 // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
In thesetup()nella funzione, inizializziamo la comunicazione seriale per il debugging e avviamo il sensore DHT. Il ciclo principale include un ritardo di 2 secondi per garantire che non sovraccarichiamo il sensore con richieste.
Successivamente, leggiamo i valori di umidità e temperatura utilizzandofloat humidity = dht.readHumidity();efloat temperature = dht.readTemperature();Questi identificatori memorizzano i valori misurati per un uso successivo.
Infine, verifichiamo eventuali errori di lettura e stampiamo i valori sul monitor seriale utilizzandoSerial.print()Questo ci consente di osservare le letture in tempo reale.
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
Nel codice LCD, inizializziamo l'LDC e mostriamo la temperatura e l'umidità sullo schermo utilizzando illcd.print()funzione. Questo fornisce una rappresentazione visiva dei dati raccolti dal sensore DHT11.
Dimostrazione / Cosa Aspettarsi
Una volta che tutto è cablato correttamente e il codice è caricato sull'ESP32, dovresti vedere le letture di temperatura e umidità visualizzate sul monitor seriale e sullo schermo LCD. Se la temperatura supera i 30°C, il buzzer si attiverà, fornendo un avviso acustico.
Fai attenzione alle connessioni invertite e assicurati che il sensore non sia esposto a condizioni estreme, poiché ciò può influire sulle letture. Potresti dover regolare la soglia per il buzzer a seconda delle tue esigenze (nel video alle 15:30).
Timestamp video
00:00 Inizio
1:57 Introduzione al DHT11
6:18 Cablaggio DHT11 con ESP32
7:67 Codice Arduino spiegato
11:49 Selezionare la scheda ESP32 e la porta COM in Arduino IDE
13:30 Dimostrazione del progetto
15:32 Ottenendo Fahrenheit
16:04 visualizzazione della temperatura su LCD utilizzando ESP32
17:20 DHT11 e LCD con codice ESP32
19:49 Demo LCD DHT11 con ESP32
21:33 Prendere provvedimenti sul valore della temperatura
Immagini
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
828-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor
Lingua: C++
829-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor with LCD