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+

3 in 1 Starter Kit

Puoi anche acquistarli separatamente dai link seguenti.

INTRODUZIONE AI COMPONENTI

LINK DI ACQUISTO

Scheda SunFounder R3

ACQUISTA

Breadboard

ACQUISTA

Modulo ESP8266

ACQUISTA

Cavi di Collegamento

ACQUISTA

Resistore

ACQUISTA

Fotoresistore

ACQUISTA

Sensore di Temperatura e Umidità DHT11

-

Modulo Sensore di Umidità del Suolo

ACQUISTA

Modulo Driver Motore L9110

-

Pompa Centrifuga

-

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.

../_images/wiring_6_plant_monitor_bb.png

2. Modifica il Dashboard

  1. I flussi di dati creati nei progetti precedenti devono essere salvati, in quanto verranno utilizzati anche in questo progetto.

  2. Per registrare l’umidità del suolo, crea un altro Datastream di tipo Virtual Pin nella pagina Datastream. Imposta il TIPO DI DATO su Integer e MIN e MAX su 0 e 1024.

    ../_images/sp220610_155221.png
  3. 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.

    ../_images/sp220610_155350.png

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.

    ../_images/lib_dht11.png
  1. Sostituisci il Template ID, Device Name, e Auth Token con i tuoi. Devi anche inserire il ssid e la password del WiFi che stai utilizzando. Per tutorial dettagliati, fai riferimento a 1.3 Collegare la scheda R3 a Blynk.

  2. Dopo aver selezionato la scheda e la porta corrette, clicca sul pulsante Upload.

  3. Apri il Monitor seriale (imposta il baudrate su 115200) e attendi che appaia un messaggio che confermi la connessione avvenuta con successo.

    ../_images/2_ready.png

    Nota

    Se appare il messaggio ESP is not responding quando 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.

  4. 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.

    ../_images/sp220610_155350.png
  5. Se desideri utilizzare Blynk sui dispositivi mobili, fai riferimento a Come usare Blynk su dispositivi mobili?.

    ../_images/mobile_plant.jpg

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);
}