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+ |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
---|---|
- |
|
- |
|
- |
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.
2. Éditer le Tableau de Bord
Les data streams créés dans les projets précédents doivent être conservés, et ils seront utilisés dans ce projet également.
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 sur0
et1024
.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.
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.
Remplacez le
Template ID
,Device Name
etAuth Token
par les vôtres. Vous devez également entrer lessid
et lemot 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.Après avoir sélectionné la bonne carte et le bon port, cliquez sur le bouton Upoad.
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.
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.
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.
Si vous souhaitez utiliser Blynk sur des appareils mobiles, veuillez vous référer à Comment utiliser Blynk sur un appareil mobile ?.
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);
}