Nous sommes le 17 décembre et les nains de Noël d'AZ-Delivery ont préparé de nombreuses petites et grandes surprises derrière les portes. Derrière la porte numéro dix-sept se trouve aujourd'hui encore un petit quelque chose qui peut aider à arroser les fleurs, surtout en hiver. Un poinsettia, en particulier, n'a besoin d'eau que lorsque le sol est légèrement sec, sinon il se décompose rapidement. Avec ce peu de connaissances en matière de jardinage, il continue aussi de manière directe.
Qu'y a-t-il derrière la petite porte ?
Derrière la porte se trouve le capteur d'humidité du sol Hygrometer Module V1.2 capacitive (voir figure 1).
Figure 1 : Capteur d'humidité du sol Module hygrométrique V1.2 capacitif
En comparaison directe avec les modules d'hygrométrie du capteur d'humidité du sol (voir la figure 2) la taille et le type de connexion sont visiblement différents.
Figure 2 : Comparaison des capteurs d'humidité du sol
Mais non seulement la taille et la connexion diffèrent, mais aussi la façon dont les capteurs communiquent avec les microcontrôleurs. Le module d'hygrométrie du capteur d'humidité du sol V1.2 capacitif renvoie uniquement un signal analogique, tandis que le module d'hygrométrie du capteur d'humidité du sol renvoie un signal analogique et numérique. Dans la plupart des cas, cependant, seul le signal analogique présente un intérêt. Comme les contacts du module hygrométrique du capteur d'humidité du sol sont librement accessibles, il peut arriver rapidement que les contacts se corrodent. Avec le module d'hygrométrie V1.2 capacitif du capteur d'humidité du sol, comme son nom l'indique déjà, l'humidité du sol est mesurée de manière capacitive.
La préparation
Pour que nous puissions utiliser le module d'hygrométrie V1.2 capacitif du capteur d'humidité du sol, il faut encore un microcontrôleur correspondant. Pour la petite expérience présentée ici, le Nano V3.0 avec Atmega328 CH340 est parfaitement suffisant. Important : le module d'hygrométrie V1.2 capacitif du capteur d'humidité du sol nécessite une alimentation de 5V et fournit un signal analogique entre 0-5V ! Si vous utilisez par exemple un ESP32, vous devez construire un diviseur de tension devant l'entrée analogique, sinon vous pouvez détruire votre microcontrôleur.
Pour l'affichage, vous avez toujours besoin d'un écran LCD 16x2 avec une connexion I2C.
Surveiller l'humidité du sol
Comme petit exemple rapide, le capteur doit sortir le signal analogique sur un écran LCD 16x2 avec un adaptateur I2C. L'installation et le code source se font assez rapidement.
Le câblage est indiqué dans le tableau 1.
Code PIN |
MicroController (Nano V3.0) |
Capteur d'humidité du sol |
Afficher |
GND |
GND |
GND |
GND |
5V |
5V |
VCC |
VCC |
Signal analogique |
A0 |
AOUT |
|
SDA |
A4 |
|
SDA |
SCL |
A5 |
|
SCL |
Tableau 1 : Connexion au microcontrôleur
Le code source est aussi simple que rapide (voir Code 1).
//-----------------------------------------------------
// Échantillon de capteur d'humidité du sol
// Auteur: Joern Weise
// Licence: GNU GPl 3.0
// Créé: 10 déc.2020
// Mise à jour: 10 décembre 2020
//-----------------------------------------------------
#include
#include
#define UPDATETIME 5000
#define NEEDTOWATERING 700
LCD LiquidCrystal_I2C (0x27,16,2); // définit l'adresse LCD sur 0x27 pour un affichage de 16 caractères et 2 lignes
unsigned long iLastUpate = 0;
int iLastAnalogRead = 0;
// la routine de configuration s'exécute une fois lorsque vous appuyez sur reset:void setup () {
// initialise la communication série à 9600 bits par seconde:
Serial.begin (115200);
Serial.println ("Démarrage de l'installation");
Serial.println ("Affichage initial");
lcd.init (); // initialise le lcd
Serial.println ("Rétroéclairage activé");
LCD rétro-éclairage (); // rétro-éclairage activé
Serial.println ("Ecrire du texte");
lcd.home (); // positionne le curseur sur 0,0
// Ecrire du texte
lcd.print ("Humidité du sol");
lcd.setCursor (0, 1);
lcd.print ("moniteur de capteur");
Serial.println ("Configuration terminée");
retard (5000);
}
// la routine de boucle s'exécute encore et encore pour toujours:
boucle void () {
if (millis () - iLastUpate> UPDATETIME) {
int sensorValue = analogRead (A0);
if (iLastAnalogRead! = sensorValue) {
lcd.clear ();
lcd.home ();
lcd.print ("Value:" + String (sensorValue));
lcd.setCursor (0, 1);
if (sensorValue> = NEEDTOWATERING)
lcd.print ("Besoin d'un peu d'eau");
autre
lcd.print ("Pas d'eau nécessaire");
Serial.println ("Nouvelle valeur:" + String (sensorValue));
iLastAnalogRead = sensorValue;
}
iLastUpate = millis ();
}
}
code 1: Code surveiller l'humidité du sol
Ainsi, vous pouvez toujours voir quand vous devez arroser votre poinsettia ou autre plante (voir la figure 3) mais n'oubliez pas de définir le BESOIN D'EAU pour que vos plantes ne meurent pas de soif !
Illustration 3: Circuit terminé
Plus de projets pour AZ-Delivery de ma part, vous pouvez trouver sous
https://github.com/M3taKn1ght/Blog-Repo.
1 commentaire
Horst Schwemmer
kann ich das Hygrometer Modul V1.2 auch über den bereits vorhandenen MCP3800 an einem Raspberry 3 betreiben?
Danke schon mal im Voraus
Horst Schwemmer