Le capteur capacitif d’humidité de sol mesure l’eau présente dans la terre sans qu’aucun métal nu ne touche le sol. Les deux électrodes sont noyées dans le circuit imprimé, sous le vernis, et le sol joue le rôle de diélectrique : plus il contient d’eau, plus la capacité augmente. Rien ne s’oxyde, rien ne s’électrolyse, et la sonde tient la saison — là où un capteur à deux pointes résistives se corrode en quelques semaines.
Il se branche en trois fils et délivre une tension analogique que n’importe quel microcontrôleur sait lire. Son cordon trois fils est fourni avec le capteur.
Caractéristiques techniques
| Modèle | Capteur capacitif d’humidité de sol, version 1.2 |
|---|---|
| Alimentation | 3,3 V à 5 V continu |
| Consommation | Environ 5 mA |
| Sortie | Analogique sur la broche AOUT — pas de sortie numérique, pas de seuil réglable sur la carte |
| Sens de lecture | Tension haute dans un sol sec, tension basse dans un sol détrempé |
| Étendue utile | De la sonde dans l’air ambiant à la sonde plongée dans l’eau |
| Dimensions de la carte | 98 × 23 mm, environ 5 mm d’épaisseur avec les composants |
| Partie sensible | Le dernier tiers de la carte, la partie à enfoncer dans la terre |
| Connecteur | 3 points — VCC, GND, AOUT — cordon trois fils fourni |
| Matériau | Circuit imprimé vernis, électrodes sous masque de soudure |
| Compatibilité | Arduino, ESP32, ESP8266, Raspberry Pi accompagné d’un convertisseur analogique-numérique |
Pourquoi un capteur capacitif plutôt qu’un capteur à pointes
- Aucune corrosion. Un capteur résistif fait passer un courant continu entre deux pointes plantées dans la terre humide : les pointes s’électrolysent et disparaissent en quelques mois. Ici, aucun courant ne traverse le sol.
- Une lecture qui ne dérive pas avec les engrais. Les sels d’engrais changent la conductivité du sol, donc la lecture d’un capteur résistif ; ils changent très peu la constante diélectrique, qui est ce que mesure ce capteur.
- Une mesure qui suit le volume d’eau, et non le seul contact entre deux électrodes : c’est ce qui permet d’arroser au bon moment plutôt qu’au hasard.
- Une durée de vie longue pour un capteur laissé dehors, en pot ou en pleine terre, à condition de garder l’électronique hors du sol.
Les deux valeurs à relever avant de s’en servir
Aucun chiffre absolu n’est valable pour ce capteur : la valeur lue dépend de la terre (sableuse, argileuse, rempotée), de son tassement et de la tension d’alimentation. Un relevé annoncé par quelqu’un d’autre ne vous servira pas. La marche à suivre tient en deux mesures, à faire une fois, capteur branché et programme ouvert :
- Valeur sèche — laissez la sonde à l’air libre, loin de toute surface humide, et relevez la valeur affichée. C’est la valeur la plus haute que le capteur donnera.
- Valeur humide — plongez la carte dans un verre d’eau sans dépasser la partie sensible, et relevez la valeur. C’est la plus basse.
Ces deux nombres deviennent les bornes du programme : tout ce qui tombe entre les deux est converti en pourcentage d’humidité. Tant qu’ils ne sont pas relevés, la seule chose que le capteur sait dire est « plus sec » ou « plus humide ».
Applications
- Arrosage automatique — une pompe et un relais, et le pot s’arrose seul quand la terre sèche.
- Suivi d’un jardin ou d’un balcon — un écran qui affiche le taux d’humidité de chaque plante.
- Serre et semis — maintenir une humidité régulière, qui est la condition de la levée.
- Projet connecté — lecture envoyée à un ESP32, seuil déclenché depuis le téléphone.
- Alerte de sécheresse — un buzzer ou une LED qui prévient avant que la plante ne souffre.
Mini-projet : un arrosage automatique avec affichage
Le montage complet tient sur une plaque d’essai. Le capteur mesure, l’écran affiche, le relais met la pompe en marche quand la terre devient trop sèche.
Ce qu’il faut
| La mesure | Le capteur capacitif d’humidité de sol — celui de cette page |
|---|---|
| La carte | Arduino Uno R3 |
| L’affichage | Afficheur LCD 16×02 I2C |
| La commande | Module 1 relais 5V |
| Le débit d’eau | Pompe miniature 120 L/h |
| Les liaisons | 10 × fil mâle-femelle |
Le câblage
Capteur VCC | → Arduino 5V |
|---|---|
Capteur GND | → Arduino GND |
Capteur AOUT | → Arduino A0 |
Écran SDA | → Arduino A4 |
Écran SCL | → Arduino A5 |
Écran VCC et GND | → Arduino 5V et GND |
Relais VCC et GND | → Arduino 5V et GND |
Relais IN | → Arduino D7 |
Relais COM et NO | → en série avec l’alimentation de la pompe |
La pompe est alimentée par sa propre alimentation, jamais par une sortie de la carte : le relais ne fait que couper ou rétablir le circuit, exactement comme un interrupteur commandé.
Le programme
À copier dans l’IDE Arduino, après avoir remplacé les deux valeurs d’étalonnage par les vôtres :
/*
* Arrosage automatique - capteur capacitif d'humidite de sol
* Carte : Arduino Uno R3
* Capteur : VCC -> 5V, GND -> GND, AOUT -> A0
* Relais : IN -> D7, VCC -> 5V, GND -> GND, pompe sur COM et NO
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "LiquidCrystal_I2C.h"
const int BROCHE_CAPTEUR = A0; // sortie AOUT du capteur
const int BROCHE_RELAIS = 7; // entree IN du module relais
const int SEUIL_ARROSAGE = 35; // en dessous, en pourcent, on arrose
// Valeurs relevees a l'etalonnage (valeurs brutes de analogRead) :
// sonde dans l'air sec, puis sonde plongee dans un verre d'eau.
const int VALEUR_SEC = 620;
const int VALEUR_HUMIDE = 260;
LiquidCrystal_I2C ecran(0x27, 16, 2);
int humiditeEnPourcent() {
int brut = analogRead(BROCHE_CAPTEUR);
brut = constrain(brut, VALEUR_HUMIDE, VALEUR_SEC);
return map(brut, VALEUR_SEC, VALEUR_HUMIDE, 0, 100);
}
void setup() {
ecran.init();
ecran.backlight();
pinMode(BROCHE_RELAIS, OUTPUT);
digitalWrite(BROCHE_RELAIS, HIGH); // pompe arretee au demarrage
Serial.begin(9600);
}
void loop() {
int taux = humiditeEnPourcent();
ecran.setCursor(0, 0);
ecran.print("Humidite du sol :");
ecran.setCursor(0, 1);
ecran.print(taux);
ecran.print(" % ");
Serial.println(taux);
if (taux >= SEUIL_ARROSAGE) {
digitalWrite(BROCHE_RELAIS, HIGH); // sol assez humide, pompe arretee
} else {
digitalWrite(BROCHE_RELAIS, LOW); // sol sec, la pompe demarre
delay(3000); // une petite dose, puis on remesure
}
delay(2000);
}Comment ça marche
map()retourne la lecture : la valeur sèche devient 0 % et la valeur humide 100 %, ce qui rend le seuil lisible d’un coup d’œil.constrain()empêche les valeurs aberrantes de sortir de la plage étalonnée — sans lui, un capteur débranché afficherait des pourcentages négatifs.- Beaucoup de modules relais se collent sur un niveau bas : c’est pourquoi la pompe est arrêtée par
HIGHau repos. Si votre module fonctionne dans l’autre sens, échangez simplementLOWetHIGHdans les deux branches. - La pause de trois secondes limite la dose d’eau : un arrosage continu noierait la plante et fausserait la mesure suivante.
Variante : ESP32 alimenté en 3,3 V
Si le convertisseur analogique-numérique de votre carte est un modèle 3,3 V, alimentez le capteur en 3,3 V et non en 5 V : la tension de sortie suit l’alimentation, et une sortie en 5 V abîmerait l’entrée d’un ESP32. Le programme est identique, seul le brochage change. Pensez alors à refaire l’étalonnage : les valeurs relevées en 5 V ne sont plus valables.
Points d’attention
- N’enfoncez que la partie sensible. L’électronique, le connecteur et le haut de la carte doivent rester hors du sol ; c’est ce qui garantit la longue tenue annoncée.
- Ne rayez pas le vernis. Les électrodes sont protégées par le masque de soudure ; une griffure profonde met le cuivre à nu et la sonde perd son avantage sur un capteur bon marché.
- Ne posez pas la sonde juste sous le goutteur. Arrosez à côté, sinon la mesure ne décrit que la zone arrosée et la pompe se coupera trop tôt.
- Attendez quelques minutes après chaque arrosage avant de juger une lecture : l’eau doit diffuser dans la terre.
- Un sol très tassé se lit comme un sol humide. En pot, vérifiez la densité de la terre avant d’accuser le capteur.
Questions fréquentes
Faut-il une bibliothèque ?
Non. Le capteur se lit avec analogRead(), rien de plus. Seul l’afficheur LCD I2C utilisé dans le montage demande sa propre bibliothèque.
La valeur ne bouge presque pas, pourquoi ?
Trois causes possibles, dans l’ordre : la sonde est enfoncée trop profondément et son eau ne varie pas, l’étalonnage a été fait dans une terre différente de celle mesurée, ou la sortie AOUT est branchée sur une broche numérique au lieu d’une entrée analogique. Vérifiez le branchement avant tout le reste.
Combien de temps tient-il dans la terre ?
Bien plus longtemps qu’un capteur à pointes : c’est précisément son intérêt. Il reste néanmoins un circuit imprimé immergé dans un milieu humide — prévoyez de le remplacer si la lecture se met à dériver d’une saison sur l’autre.
Peut-on l’alimenter en 3,3 V ?
Oui, il fonctionne de 3,3 V à 5 V. Le point d’attention n’est pas le capteur mais votre carte : la tension de sortie suit l’alimentation, donc si votre convertisseur analogique-numérique est limité à 3,3 V, alimentez le capteur en 3,3 V et refaites l’étalonnage.
Peut-on mesurer plusieurs pots avec un seul Arduino ?
Oui. Chaque capteur consomme environ 5 mA et occupe une entrée analogique : l’Uno en accepte six sans difficulté. Un multiplexeur devient utile au-delà.
À combiner avec
Si vous partez de zéro, le KIT Starter Arduino Uno contient déjà la carte, la plaque d’essai, les fils et les résistances : en y ajoutant ce capteur, vous avez l’essentiel du montage décrit plus haut. Pour un arrosage piloté depuis le téléphone, le ESP32 WROOM 38 broches lit le même capteur et dispose du WiFi. Pour surveiller la réserve d’eau avant qu’elle ne se vide, le capteur de niveau d’eau complète la mesure d’humidité. Et pour connaître la température de la terre ou de l’eau d’arrosage, la sonde DS18B20 étanche se plante à côté.








