6. Moniteur de Plantes

L’objectif de ce projet est de créer un système d’arrosage intelligent qui détecte la température actuelle, l’humidité, l’intensité de la lumière et l’humidité du sol et les affiche sur Blynk.

Dès que vous activez le basculeur Switch dans Blynk Cloud, la pompe commencera à fonctionner et les plantes seront hydratées.

Composants Requis

Pour ce projet, nous avons besoin des composants suivants.

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DANS CE KIT

LIEN

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Carte SunFounder R3

BUY

Plaque d’essai

BUY

Module ESP8266

BUY

Fils de Cavalier

BUY

Résistance

BUY

Photorésistance

BUY

Capteur d’Humidité et de Température DHT11

-

Module d’Humidité du Sol

BUY

Module de Contrôle Moteur L9110

-

Pompe Centrifuge

-

1. Construire le Circuit

Note

Le module ESP8266 nécessite un courant élevé pour fournir un environnement de fonctionnement stable, donc assurez-vous que la batterie 9V est branchée.

../_images/wiring_6_plant_monitor_bb.png

2. Éditer le Tableau de Bord

  1. Les data streams créés dans les projets précédents doivent être conservés, et ils seront utilisés dans ce projet également.

  2. Pour enregistrer l’humidité du sol, créez un autre Datastream de type Virtual Pin sur la page Datastream. Réglez le TYPE DE DONNÉES sur Integer et MIN et MAX sur 0 et 1024.

    ../_images/sp220610_155221.png
  3. Maintenant, allez sur la page Wed Dashboard, faites glisser 2 widgets Label et réglez leurs data streams respectivement sur V4 et V5; faites glisser 2 widgets Gauge et réglez leurs data streams pour afficher V6 et V7 respectivement; et enfin faites glisser un widget Switch et réglez son data stream sur V0.

    ../_images/sp220610_155350.png

3. Exécutez le Code

Ouvrez le fichier 6.plant_monitoring.ino situé dans le dossier 3in1-kit\iot_project\6.plant_monitoring, ou copiez ce code dans Arduino IDE.

Note

  • La DHT sensor library est utilisée ici, vous pouvez l’installer depuis le Library Manager.

    ../_images/lib_dht11.png
  1. Remplacez le Template ID, Device Name et Auth Token par les vôtres. Vous devez également entrer le ssid et le mot de passe du WiFi que vous utilisez. Pour des tutoriels détaillés, veuillez vous référer à 1.4 Connexion de la carte R3 à Blynk.

  2. Après avoir sélectionné la bonne carte et le bon port, cliquez sur le bouton Upoad.

  3. Ouvrez le moniteur série (réglez le débit en bauds sur 115200) et attendez qu’un message tel qu’une connexion réussie apparaisse.

    ../_images/2_ready.png

    Note

    Si le message ESP is not responding apparaît lorsque vous vous connectez, veuillez suivre ces étapes.

    • Assurez-vous que la batterie 9V est branchée.

    • Réinitialisez le module ESP8266 en connectant la broche RST à GND pendant 1 seconde, puis débranchez-la.

    • Appuyez sur le bouton de réinitialisation de la carte R3.

    Parfois, il peut être nécessaire de répéter l’opération ci-dessus 3 à 5 fois, veuillez être patient.

  4. De retour sur Blynk, vous verrez la température actuelle, l’humidité, l’intensité lumineuse et l’humidité du sol. Vous pouvez laisser la pompe arroser les plantes si nécessaire en cliquant sur le widget Bouton de Contrôle.

    ../_images/sp220610_155350.png
  5. Si vous souhaitez utiliser Blynk sur des appareils mobiles, veuillez vous référer à Comment utiliser Blynk sur un appareil mobile ?.

    ../_images/mobile_plant.jpg

Comment ça fonctionne ?

Ce BLYNK_WRITE permet au widget Switch de Blynk de démarrer la pompe lorsqu’il est ON et de l’éteindre lorsqu’il est OFF.

BLYNK_WRITE(V0)
{
    if(param.asInt()==1){
        digitalWrite(pumpA,HIGH);
    }else{
        digitalWrite(pumpA,LOW);
    }
}

Ces trois fonctions sont utilisées pour obtenir la température ambiante actuelle, l’humidité, l’intensité lumineuse et l’humidité du sol.

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

Avec le Timer de Blynk, la température ambiante, l’humidité, l’intensité lumineuse et l’humidité du sol sont obtenues chaque seconde et envoyées au data stream sur le Blynk Cloud, à partir duquel les widgets affichent les données.

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