Système d'arrosage automatique des plantes avec Raspberry Pi et tableau de bord web
Vue d'ensemble
Ce guide vous accompagne à chaque étape — de la sélection des composants au câblage, au codage et au lancement d'un tableau de bord web Flask. Le résultat est une solution d'arrosage fiable et peu exigeante en maintenance qui fonctionne sur un Raspberry Pi.
Matériel
- Raspberry Pi 3 (tout Pi 2/4 fonctionne avec de légères modifications de broches)
- Capteur d'humidité du sol (sortie analogique)
- Module relais 5 V (mono canal)
- Mini pompe submersible 3–6 V (≤ 200 mL/min)
- Tuyau d'arrosage flexible (1 pouce ou moins)
- Fils Dupont multicolores (jeu de 120 pièces)
- Alimentation 5 V (câble USB + chargeur mural ou adaptateur 5 V)
- Optionnel : Petit potentiomètre pour calibrer le capteur
Configuration d'alimentation
Utilisez un câble USB comme source 5 V. Dénudez le câble, soudez des fils de plus gros calibre aux conducteurs rouge (+) et noir (–), et connectez-les à un chargeur mural 5 V. Vérifiez la tension avec un multimètre avant de connecter au Pi.
Câblage GPIO (Pi 3)
- Capteur sol : Positif à la broche 2 (5 V), Négatif à la broche 6 (GND), Signal (jaune) à la broche 8 (GPIO 14).
- Relais : broche IN à la broche 7 (GPIO 4), VCC à la broche 2, GND à la broche 5.
- Pompe : Connectez l'alimentation de la pompe au contact Normalement Ouvert (NO) du relais ; la masse au contact Commun (COM). Lorsque le Pi tire la broche 1 (GPIO 5) à LOW, le relais se ferme et la pompe s'active.
Fixez le tuyau à la sortie de la pompe et positionnez l'autre extrémité près du sol de la plante. Remplissez le réservoir du tuyau avec de l'eau.
Assemblage matériel
Fixez le tuyau à la pompe avec du ruban électrique pour éviter les fuites. Assurez-vous que toutes les connexions sont isolées et que le Pi est alimenté séparément de l'alimentation de la pompe pour éviter le bruit électrique.
Vue d'ensemble logicielle
Le projet comprend quatre scripts Python et une interface web Flask :
- water.py – Abstraction GPIO pour lecture capteur et contrôle pompe.
- auto_water.py – Logique d'arrosage planifié.
- web_plants.py – Application Flask exposant le statut du capteur et contrôles manuels.
- main.html – Modèle de tableau de bord simple.
Installation des dépendances
Sur le Pi, exécutez :
$ python3 -m pip install RPi.GPIO flask psutil
Script de contrôle GPIO (water.py)
Le script expose deux fonctions clés : get_status() renvoie une chaîne « humide/sec », et pump_on() active la pompe pendant une seconde. Testez-le interactivement :
$ python3
>>> import water
>>> water.get_status()
'Sec'
>>> water.pump_on()
Pompe activée pour 1 s.
Si le capteur rapporte incorrectement, ajustez le petit potentiomètre sur le module jusqu'à ce que la deuxième LED s'allume lorsque le sol est humide.
Lancement du tableau de bord Flask
Placez web_plants.py dans le même dossier que water.py et créez un sous-répertoire templates contenant main.html. Puis lancez le serveur :
$ sudo python3 web_plants.py
Accédez à l'adresse IP du Pi dans un navigateur ; vous verrez un tableau de bord avec le statut d'humidité en temps réel et un bouton manuel « Arroser maintenant ». Cette page est alimentée par Flask et communique avec la couche GPIO via les scripts d'aide.
Automatiser le démarrage avec Cron
Pour que le serveur web démarre automatiquement après redémarrage, éditez le crontab root :
$ sudo crontab -e
Ajoutez la ligne ci-dessous, en remplaçant /home/pi/project par votre chemin réel :
@reboot cd /home/pi/project && sudo python3 web_plants.py
Redémarrez le Pi et confirmez que le tableau de bord se charge automatiquement.
Prochaines étapes
Une fois le système opérationnel, vous pouvez l'améliorer en ajoutant :
- Plusieurs modules plantes et un tableau de bord unique.
- Journalisation des niveaux d'humidité dans un CSV ou une base de données.
- Notifications par e-mail ou push lors de l'arrosage.
Pour approfondir, consultez les tutoriels Raspberry Pi GPIO et les guides d'intégration Flask-GPIO.
Processus de fabrication
- Comment lire la température avec un DS18B20 sur Raspberry Pi 2
- Système aquaponique piloté par Raspberry Pi : guide de construction et code
- Mesure de température sur Raspberry Pi avec capteurs 1‑Wire Maxim et pont I2C DS2482
- Centre Énergie Domestique : Surveillance panneaux solaires PV, thermiques et températures pièces avec Raspberry Pi et Moteino
- Surveillance précise de la température dans un placard serveur avec Raspberry Pi
- Comment connecter un capteur de température DS1820 One‑Wire à un Raspberry Pi via GPIO
- Connexion du capteur ultrasonique HC‑SR04 au Raspberry Pi 3 : Guide complet
- Capteur de suivi de ligne KY‑033 avec Raspberry Pi : Détecteur de porte/lignes simple
- Détection d'éclairs avec Raspberry Pi et AS3935 : Guide pratique