💡 L’Idée des Frères : Le Jardin Auto‑Intelligent qui Gère Eau, Lumière et Nutriments en Temps Réel

Illustration

J’avoue, pendant des semaines j’ai vécu une véritable galère : chaque matin, je courais dans le jardin, armé d’un arrosoir, pour découvrir que certaines parcelles étaient complètement desséchées tandis que d’autres nageaient sous l’eau. J’ai même perdu la moitié de mes tomates parce que je n’arrivais pas à juger du moment exact où le sol était assez humide. Cette incertitude m’a poussé à chercher une solution qui ne se contente pas de « allumer une prise », mais qui orchestre tout le micro‑climat du jardin comme le ferait un chef d’orchestre.

La réponse s’est présentée sous la forme d’un système de jardin connecté ultra‑intelligent, capable de mesurer l’humidité du sol, de réguler l’éclairage LED selon la météo, et même d’ajuster la fertilisation en fonction du stade de croissance des plantes. Le tout s’intègre dans Home Assistant, le hub domotique open‑source que je recommande déjà à nos lecteurs. Dans cet article, je vous détaille le problème, la solution, le guide d’installation pas à pas, et le budget nécessaire pour transformer votre jardin en un véritable laboratoire de productivité verte.

Le casse‑tête du jardinier moderne

Les jardiniers amateurs (et même les pros) font face à trois contraintes majeures :

  • Variabilité de l’humidité : le sol retient l’eau différemment selon la composition, l’exposition et la température.
  • Lumière inconstante : les journées nuageuses ou les ombres portées par les arbres créent des zones d’éclairage inégales.
  • Nutrition désynchronisée : les engrais sont souvent appliqués en masse, sans tenir compte des besoins réels de chaque espèce.

Sans un suivi précis, on gaspille de l’eau, on affaiblit les plantes et on passe des heures à jouer les devins. Le défi consiste à automatiser ces trois variables de façon cohérente, tout en restant accessible à un bricoleur du dimanche.

La solution : le « Jardin Auto‑Intelligent »

Voici le cœur du hack : un hub central (Raspberry Pi 4 + Home Assistant) qui collecte les données de capteurs sans fil, déclenche des vannes électromagnétiques, pilote des bandes LED spectrales, et envoie des doses d’engrais liquide via une pompe péristaltique. Le tout est piloté par un script Python qui analyse les prévisions météo et les historiques d’humidité pour anticiper les besoins.

Les composants clés

  • Raspberry Pi 4 (4 Go) : serveur domotique, héberge Home Assistant.
  • Capteurs d’humidité du sol (soil‑moisture‑sensor‑v2) : 4 unités, sans fil, alimentées par batterie Li‑Po.
  • Vannes électromagnétiques 12 V : contrôlent le débit d’eau vers chaque zone du jardin.
  • Bandes LED grow‑light (450 nm – 660 nm) : 2 mètres, réglables en intensité via PWM.
  • Pompe péristaltique 12 V : délivre 0,5 ml / s d’engrais liquide.
  • Module Zigbee USB : assure la communication sans fil entre le hub et les capteurs/vannes.
  • Solar Power Bank 20 W : alimente les capteurs et les vannes en énergie verte.

Guide d’installation étape par étape

1. Préparer le hub Home Assistant

Installez Raspberry Pi OS (Lite) puis Home Assistant en suivant la documentation officielle. Une fois le tableau de bord accessible, ajoutez l’intégration Zigbee via le dongle USB.

2. Positionner les capteurs d’humidité

Enterrez chaque capteur à 10 cm de profondeur, à proximité des racines de chaque groupe de plantes (tomates, herbes, fleurs). Activez le mode « pairing » depuis l’interface Home Assistant et assurez‑vous qu’ils apparaissent sous sensor.soil_moisture_X.

3. Installer les vannes et le réseau d’irrigation

Connectez les vannes électromagnétiques à vos tuyaux d’arrosage existants. Alimentez‑les en 12 V et reliez chaque vanne à un module de relais Zigbee (ex. : Sonoff Mini). Nommez‑les switch.valve_zone_X dans Home Assistant.

4. Monter les LED grow‑light

Fixez les bandes LED au-dessus des plates‑basses ou des serres. Alimentez‑les via un driver 12 V PWM, puis créez un light.grow_light dans Home Assistant en utilisant l’intégration MQTT ou le composant light natif.

5. Brancher la pompe péristaltique

Placez la pompe dans un petit réservoir d’engrais concentré. Reliez‑la à un relais Zigbee (ex. : Sonoff Mini) nommé switch.fertilizer_pump. Vérifiez le débit avec un récipient gradué.

6. Écrire le script d’orchestration

Copiez le code suivant dans le répertoire /config/python_scripts/auto_garden.py de Home Assistant :

import appdaemon.plugins.hass.hassapi as hass
import datetime
import requests

class AutoGarden(hass.Hass):
    def initialize(self):
        # Récupérer les entités
        self.moisture_sensors = ["sensor.soil_moisture_1",
                                 "sensor.soil_moisture_2",
                                 "sensor.soil_moisture_3",
                                 "sensor.soil_moisture_4"]
        self.valves = ["switch.valve_zone_1",
                       "switch.valve_zone_2",
                       "switch.valve_zone_3",
                       "switch.valve_zone_4"]
        self.grow_light = "light.grow_light"
        self.fertilizer = "switch.fertilizer_pump"

        # Planifier la vérification toutes les 15 minutes
        self.run_every(self.check_conditions, "now+1", 15*60)

    def check_conditions(self, kwargs):
        # 1. Gestion de l’humidité
        for sensor, valve in zip(self.moisture_sensors, self.valves):
            moisture = float(self.get_state(sensor))
            if moisture < 30:          # seuil sec
                self.turn_on(valve)
            elif moisture > 70:          # seuil trop humide
                self.turn_off(valve)

        # 2. Gestion de la lumière selon la météo
        forecast = self.get_weather_forecast()
        if forecast["cloud_coverage"] > 70:
            # Activer les LED à 80 % d’intensité
            self.turn_on(self.grow_light, brightness=204)
        else:
            # Diminue l’intensité proportionnellement
            brightness = int(255 * (1 - forecast["cloud_coverage"]/100))
            self.turn_on(self.grow_light, brightness=brightness)

        # 3. Fertilisation hebdomadaire (lundi 07h00)
        now = datetime.datetime.now()
        if now.weekday() == 0 and now.hour == 7:
            self.turn_on(self.fertilizer)
            self.run_in(self.stop_fertilizer, 30)  # 30 s d’injection

    def stop_fertilizer(self, kwargs):
        self.turn_off(self.fertilizer)

    def get_weather_forecast(self):
        # Exemple d’appel à OpenWeatherMap (clé API à insérer)
        api_key = "YOUR_API_KEY"
        lat, lon = 48.8566, 2.3522  # Paris
        url = f"http://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={lon}&exclude=current,minutely,hourly,alerts&appid={api_key}"
        resp = requests.get(url).json()
        today = resp["daily"][0]
        return {
            "cloud_coverage": today["clouds"]
        }

Ce script réalise trois actions :

  1. Il ouvre ou ferme les vannes en fonction du taux d’humidité mesuré.
  2. Il ajuste la puissance des LED en fonction du pourcentage de couverture nuageuse fourni par l’API météo.
  3. Il déclenche une dose d’engrais chaque lundi matin, puis arrête la pompe après 30 secondes.

7. Créer les automatisations dans Home Assistant

Ajoutez les lignes suivantes dans votre fichier automations.yaml :

- alias: "Lancer le script AutoGarden"
  trigger:
    - platform: time_pattern
      minutes: "/15"
  action:
    - service: python_script.auto_garden

Redémarrez Home Assistant pour que les changements prennent effet.

8. Test et calibration

  • Vérifiez les lectures d’humidité pendant 48 heures et ajustez les seuils (30 % / 70 %) dans le script.
  • Mesurez la luminosité réelle avec un luxmètre et adaptez la courbe de conversion cloud‑>brightness si nécessaire.
  • Faites un test de fertilisation avec de l’eau avant de passer à l’engrais pour éviter les débordements.

Budget estimatif

<

📖 À découvrir aussi sur id2frere :