Détecteur d’humidité du sol pour potager à base d’ATTiny85
Confinement oblige, je cherchais une méthode pour « mesurer » l’humidité du sol du potager de manière simple, pour déclencher mes circuits d’arrosage vraiment lorsque nécessaire. Alors on va en bricoler un à base d’ATTiny85 !
Principe et schéma
Le principe est assez simple : on plante 2 tiges métalliques dans le sol et on récupère la valeur analogique sur l’Arduino (entre 0 et 1023). Plus la terre est humide, plus le sol est conducteur et plus la valeur analogique augmente. Si il n’y a pas de contact, on aura zéro. Il est alors facile avec 3 leds de faire un indicateur visuel simple.
Les 2 plots au bout des fils jaune et vert sont les pointes métalliques à enfoncer dans le sol.
- Les 2 plots au bout des fils jaune et vert sont les pointes métalliques à enfoncer dans le sol. Un des deux plots est raccordé ici sur la pin A3 de l’attiny. Une résistance de 68kohms est raccordée entre la pin A3 et la masse du circuit. La valeur de la résistance est à ajuster en fonction des tiges, de leur longueur et des tests sur le terrain. J’ai retenu donc 68 kohms.
- les 3 leds sont sur les pins D0, D1, et D2 de l’attiny. Par facilité, j’ai mis qu’une résistance pour les 3 leds, reliée ensuite à la masse.
- pour l’alimentation, j’ai pris 3 piles AA que j’ai relié entre elle pour en sortir 4,5V d’alimentation. Le circuit fonctionnera via un bouton poussoir, que permettra une mesure instantanée. Cela économisera l’énergie des piles aussi.
Réalisation
Les 2 plots qui vont en terre sont des tiges filetées de 5mm, longues de 15cm. L’ensemble est mis dans une boite de dérivation Schneider de 7cmx7cm, fixé avec une plaque de bois et des ecrous rondelles. L’écartement de mes deux tiges filetées est de 4,3cm.
Le bloc pile a été fait « à l’arrache » avec 3 piles AA, scotchées entre elles. Les bornes + et – de deux piles adjacentes ont été soudées.
Le montage a été fait sur une plaque à trou, en montage à la volée.
Comment cela fonctionne ? Très simple : on enfonce les 2 plots dans la terre et on appuie sur le bouton poussoir : le circuit se met en route, calcule la valeur entre les 2 plots, et affiche la led correspondante.
Code source
Le code est très simple : on lit la valeur analogique et en fonction de seuils défini, on affiche la led correspondante. Facile non ?
J’ai fixé le seuil bas (led rouge) à inférieur 500 (500/1023 = 48,9%). Le seuil moyen (led jaune) est entre 500 et 850 (83%). Le seuil haut (led verte) est supérieur à 850 (83%).
/*
Attiny85 - programme sonde humidité sol
avec :
- Attiny85
- led rouge
- led jaune
- led verte
- resistance 680 ohms
- resistance 68 Kohms
Source : https://www.sla99.fr
17/04/2020 v0 version initiale
*/
const int LED_ROUGE = 2;
const int LED_JAUNE = 1;
const int LED_VERTE = 0;
const int SONDE = A3;
const int SEUIL_HAUT = 850;
const int SEUIL_BAS = 500;
void setup() {
pinMode(LED_ROUGE, OUTPUT);
pinMode(LED_JAUNE, OUTPUT);
pinMode(LED_VERTE, OUTPUT);
//on met le numero de pin digital, meme pour un port analogique (ici D3 = A3)
pinMode(3, INPUT);
}
void loop() {
if(analogRead(SONDE) < SEUIL_BAS){
digitalWrite(LED_VERTE, LOW);
digitalWrite(LED_JAUNE, LOW);
digitalWrite(LED_ROUGE, HIGH);
}
if(analogRead(SONDE) >= SEUIL_BAS && analogRead(SONDE)<SEUIL_HAUT){
digitalWrite(LED_VERTE, LOW);
digitalWrite(LED_JAUNE, HIGH);
digitalWrite(LED_ROUGE, LOW);
}
if(analogRead(SONDE) >= SEUIL_HAUT){
digitalWrite(LED_VERTE, HIGH);
digitalWrite(LED_JAUNE, LOW);
digitalWrite(LED_ROUGE, LOW);
}
delay(1000);
}
Démonstration
Conclusion
Une création rapide mais utile, qui permettra facilement de connaitre l’état du sol pour arroser. Je ne cherchais pas ici l’automatisation, je préfère contrôler à chaque fois (pour le moment) afin de maitriser le timing d’arrosage.