Tutorial ESP32 35/55 - Monitoraggio piante, suolo, temperatura e luce | Kit di apprendimento IoT ESP32 di SunFounder
In questo tutorial, costruiremo un monitor per piante utilizzando il microcontrollore ESP32 del SunFounder ESP32 IoT Learning Kit. Questo progetto combina diversi componenti per monitorare l'umidità del suolo, la temperatura, l'umidità e i livelli di luce. Alla fine di questa guida, avrai un sistema completamente funzionante in grado di gestire e visualizzare questi parametri critici per la cura delle piante. Per una spiegazione visiva dettagliata, assicurati di controllare il video (nel video a 00:00).

Hardware Spiegato
I componenti principali utilizzati in questo progetto includono il microcontrollore ESP32, il sensore DHT11, il sensore di umidità del suolo, il resistore dipendente dalla luce (LDR) e un LCD per visualizzare i dati. L'ESP32 funge da cervello del sistema, gestendo l'elaborazione dei dati e i compiti di controllo. Dispone di Wi-Fi e Bluetooth integrati, offrendo opzioni di connettività per il monitoraggio remoto.
Il sensore DHT11 misura la temperatura e l'umidità, mentre il sensore di umidità del suolo rileva i livelli di umidità nel terreno. L'LDR misura l'intensità della luce ambientale, permettendo di avere informazioni sulle condizioni di illuminazione della pianta. Ogni componente gioca un ruolo cruciale nell'assicurare la salute della pianta fornendo dati in tempo reale.
Dettagli del datasheet
| Produttore | SunFounder |
|---|---|
| Numero di parte | DHT11 |
| Tensione logica/IO | 3,3 V |
| Tensione di alimentazione | 5 V |
| Corrente di uscita (per canale) | 20 mA |
| Corrente di picco (per canale) | 50 mA |
| Guida sulla frequenza PWM | N/A |
| Soglie di logica di input | 0,3 VCC (basso), 0,7 VCC (alto) |
| Caduta di tensione / RDS(on)/ saturazione | N/A |
| Limiti termici | 0°C a 50°C |
| Pacchetto | DIP |
| Note / varianti | Compatibile con DHT22 |
- Assicurati che i livelli di tensione siano appropriati per ciascun componente (5V per il driver del motore, 3.3V per i sensori).
- Utilizzare resistori di pull-down per i pulsanti per evitare ingressi flottanti.
- Tieni i cablaggi in ordine per evitare confusione e potenziali cortocircuiti.
- Verifica le connessioni prima di alimentare il circuito per prevenire danni.
- Controlla il cablaggio del DHT11 poiché è sensibile alle connessioni errate.
Istruzioni per il cablaggio

Per cablare i componenti, inizia collegando le linee di alimentazione e di massa. L'ESP32 deve essere alimentato con una batteria al litio, collegando il terminale positivo alla linea VCC e il ground alla linea GND sulla breadboard. Il pin dei dati del sensore DHT11 si collega aPIN 13, mentre il suo VCC va alla linea di 3.3V e GND a terra. Il sensore di umidità del suolo si collega in modo simile: il suo pin di segnale aPIN 14, VCC a 3.3V e GND a massa.
Collegare un pin alla linea da 3,3 V e l'altro aPIN 35, con una resistenza da 10k ohm collegata dall'LDR a terra. Il display LCD si collega alla linea da 5V per l'alimentazione e utilizzaSDAeSCLpin collegati aPIN 21ePIN 22, rispettivamente. Infine, collega il pulsante aPIN 32con la resistenza di pull-down collegata a terra, garantendo che legga basso quando non viene premuto e alto quando viene premuto.
Esempi di codice e guida passo passo
Il nucleo del nostro programma inizia definendo i pin per ciascun componente. Per esempio,DHTPINè assegnato aPIN 13per il sensore DHT11, mentreMOIS_PINè impostato perPIN 14per il sensore di umidità. Questa organizzazione aiuta a tenere traccia di quale sensore è collegato a quale pin.
#define DHTPIN 13 // Set the pin connected to the DHT11 data pin
#define MOIS_PIN 14 // Soil moisture module
#define LIGHT_PIN 35 // Photoresistor
Successivamente, inizializziamo il sensore DHT e il display LCD all'interno delsetup()funzione. Questo è cruciale poiché prepara questi componenti per il funzionamento. Assicurati di chiamaredht.begin()è essenziale affinché il sensore DHT inizi a leggere i valori correttamente.
void setup() {
Serial.begin(115200);
dht.begin(); // Initialize the DHT11
lcd.init(); // Initialize the LCD
lcd.backlight();
}
Nellaloop()funzione, leggiamo continuamente i valori di temperatura e umidità, mostrandoli sul LCD. Se il pulsante viene premuto, il motore viene attivato per annaffiare le piante. Questa logica utilizza la lettura digitale del pin del pulsante per determinare se accendere o spegnere il motore.
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (digitalRead(BUTTON) == HIGH) {
digitalWrite(motor1A, HIGH); // Turn on water pump
} else {
digitalWrite(motor1A, LOW); // Turn off water pump
}
delay(2000);
}
Questa struttura del codice consente un chiaro flusso di dati e controllo, garantendo che il monitoraggio dell'impianto funzioni senza problemi. Per ulteriori dettagli, il codice completo si carica sotto l'articolo.
Dimostrazione / Cosa Aspettarsi
Una volta completata la configurazione e caricata la programmazione, il LCD dovrebbe visualizzare alternativamente le letture di temperatura e umidità con i livelli di umidità e luce. Quando si preme il pulsante, la pompa dell'acqua dovrebbe attivarsi, fornendo acqua alla pianta. Assicurati che tutte le connessioni siano sicure per evitare problemi come input fluttuanti o letture errate (nel video alle 05:30).
Monitorare i valori visualizzati sul LCD e sul monitor seriale aiuterà a garantire che il sistema funzioni correttamente. Se riscontri problemi, controlla di nuovo il cablaggio e assicurati che tutti i componenti siano alimentati correttamente.
Timestamp video
- 00:00 Inizio
- 2:23 Introduzione al Progetto
- 4:02 Pagina dei documenti
- 7:43 1-L293D driver del motore della pompa
- 14:30 2-Premere il pulsante per la pompa
- 16:35 Sensore di temperatura e umidità 3-DHT11
- 19:26 Sensore di umidità 4-slild
- 21:43 Sensore a 5 luci
- 24:47 6-Sensore di umidità del suolo
- 26:01 codice completo per il monitoraggio di piante Arduino
- 29:21 Dimostrazione
Common Course Links
Common Course Files
Cose di cui potresti avere bisogno
-
AmazonAcquista LCD1602-I2C da Amazonamzn.to
-
eBayAcquista LCD1602-I2C da eBayebay.us
-
AliExpressAcquista 10 pezzi di LCD1602-I2C da AliExpresss.click.aliexpress.com
Risorse e riferimenti
-
DocumentazioneTutorial ESP32 35/55 - Pagina del documento SunFounder monitoraggio delle piantedocs.sunfounder.com
File📁
File Fritzing
-
Sensore di Umidità e Temperatura DHT11 (3 pin)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB -
Modulo LCD LCD1602-I2C con 4 fili
LCD1602-I2C.fzpz0.01 MB