Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto Esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue abilità.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.
Sconti Esclusivi: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a promozioni e concorsi durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
6. Monitoraggio delle Piante¶
Lo scopo di questo progetto è creare un sistema intelligente di irrigazione che rileva la temperatura attuale, l’umidità, l’intensità della luce e l’umidità del suolo, visualizzandoli su Blynk.
Non appena accendi l’interruttore a levetta su Blynk Cloud, la pompa inizierà a funzionare e le piante saranno idratate.
Componenti necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente comodo acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit 3 in 1 Starter |
380+ |
Puoi anche acquistarli separatamente dai link seguenti.
INTRODUZIONE AI COMPONENTI |
LINK DI ACQUISTO |
|---|---|
- |
|
- |
|
- |
1. Costruisci il Circuito
Nota
Il modulo ESP8266 richiede un’elevata corrente per garantire un ambiente di funzionamento stabile, quindi assicurati che la batteria da 9V sia collegata.
2. Modifica il Dashboard
I flussi di dati creati nei progetti precedenti devono essere salvati, in quanto verranno utilizzati anche in questo progetto.
Per registrare l’umidità del suolo, crea un altro Datastream di tipo Virtual Pin nella pagina Datastream. Imposta il TIPO DI DATO su
Integere MIN e MAX su0e1024.
Ora vai alla pagina Wed Dashboard, trascina 2 widget Label e imposta i loro flussi di dati rispettivamente su V4 e V5; trascina 2 widget Gauge e imposta i loro flussi di dati per visualizzare V6 e V7 rispettivamente; e infine trascina un widget Switch e imposta il suo flusso di dati su V0.
3. Esegui il Codice
Apri il file 6.plant_monitoring.ino nel percorso 3in1-kit\iot_project\6.plant_monitoring, o copia questo codice in Arduino IDE.
Nota
Qui viene utilizzata la libreria
DHT sensor, che puoi installare dal Library Manager.![]()
Sostituisci il
Template ID,Device Name, eAuth Tokencon i tuoi. Devi anche inserire ilsside lapassworddel WiFi che stai utilizzando. Per tutorial dettagliati, fai riferimento a 1.3 Collegare la scheda R3 a Blynk.Dopo aver selezionato la scheda e la porta corrette, clicca sul pulsante Upload.
Apri il Monitor seriale (imposta il baudrate su 115200) e attendi che appaia un messaggio che confermi la connessione avvenuta con successo.
Nota
Se appare il messaggio
ESP is not respondingquando ti connetti, segui questi passaggi.Assicurati che la batteria da 9V sia collegata.
Resetta il modulo ESP8266 collegando il pin RST a GND per 1 secondo, quindi scollegalo.
Premi il pulsante di reset sulla scheda R3.
A volte potrebbe essere necessario ripetere l’operazione sopra 3-5 volte, sii paziente.
Tornando su Blynk, vedrai la temperatura attuale, l’umidità, l’intensità della luce e l’umidità del suolo. Puoi far innaffiare le piante alla pompa, se necessario, cliccando sul widget di controllo del pulsante.
Se desideri utilizzare Blynk sui dispositivi mobili, fai riferimento a Come usare Blynk su dispositivi mobili?.
Come funziona?
Questo BLYNK_WRITE fa sì che il widget Switch di Blynk avvii la pompa quando è acceso e la spenga quando è spento.
BLYNK_WRITE(V0)
{
if(param.asInt()==1){
digitalWrite(pumpA,HIGH);
}else{
digitalWrite(pumpA,LOW);
}
}
Queste tre funzioni vengono utilizzate per ottenere la temperatura, l’umidità, l’intensità della luce e l’umidità del suolo attuali.
int readMoisture(){
return analogRead(moisturePin);
}
int readLight(){
return analogRead(lightPin);
}
bool readDHT() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
humidity = dht.readHumidity();
// Read temperature as Celsius (the default)
temperature = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return false;
}
return true;
}
Con il Timer di Blynk, la temperatura, l’umidità, l’intensità della luce e l’umidità del suolo dell’ambiente vengono ottenute ogni secondo e inviate al flusso di dati sul Blynk Cloud, da cui i widget visualizzano i dati.
void myTimerEvent()
{
bool chk = readDHT();
int light = readLight();
int moisture = readMoisture();
if(chk){
Blynk.virtualWrite(V4,humidity);
Blynk.virtualWrite(V5,temperature);
}
Blynk.virtualWrite(V6,light);
Blynk.virtualWrite(V7,moisture);
}