Créer votre sonde d’humidité du sol autonome et solaire pour Home Assistant : La Version 2 Si vous avez lu mon précédent tutoriel sur la création d’une sonde d’humidité connectée, vous savez à quel point ce petit projet est redoutable pour automatiser l’arrosage du potager avec Home Assistant. Mais après quelques mois d’utilisation de ma version 1 (basée sur un ESP32 WROOM classique et une grosse pile 18650), l’envie de l’améliorer a été la plus forte. L’objectif de cette Version 2 ? Réduire drastiquement la taille du boîtier et optimiser la consommation électrique pour le rendre 100% autonome et invisible dans le jardin. Adieu le gros cylindre, place à la miniaturisation absolue avec le petit ESP32-C3, une batterie LiPo extra-plate et un boîtier imprimé en 3D sur mesure ! C’est ainsi qu’est née la Sonde DIY V2. Exit le vieux ESP32 WROOM et les batteries 18650 encombrantes, place à la miniaturisation absolue avec l’ESP32-C3, une batterie LiPo plate, et un boîtier sur-mesure imprimé en 3D ! Ce tutoriel vous guidera pas à pas, du choix des composants à la configuration logicielle, pour que vous puissiez vous aussi surveiller la santé de votre jardin intelligemment. 🛠️ Le matériel nécessaire pour la V2 Pour réussir cette cure d’amincissement, j’ai revu l’ensemble des composants : Le cerveau : ESP32-C3 SuperMini. C’est la véritable star de cette V2. Basé sur l’architecture RISC-V, ce microcontrôleur est minuscule (de la taille d’une pièce de monnaie) et consomme beaucoup moins d’énergie en veille (deep sleep) que son grand frère. Un Shield d’expansion (Optionnel mais recommandé). Pour éviter de souder directement sur la minuscule carte, j’utilise une petite carte d’expansion sur laquelle l’ESP vient s’enficher. La sonde : Capacitive Soil Moisture Sensor V2.0. (Modèle noir HW-390). Cette version intègre un meilleur régulateur matériel pour des mesures plus stables. L’alimentation : Module de charge TP4056 + Batterie LiPo. J’ai troqué la cellule 18650 contre une batterie LiPo plate de 3.7V (2000mAh). Le petit module TP4056 va gérer la recharge solaire et protéger la batterie. Un mini panneau solaire 5V. Deux résistances de même valeur (ex: 100 kΩ ou 10 kΩ) pour créer un pont diviseur de tension. Un connecteur d’alimentation étanche (Prise Jack femelle). ⚡ Le Câblage détaillé : Relier les éléments étape par étape Pour que notre sonde V2 soit totalement autonome et préserve sa batterie, chaque branchement a son importance. Voici comment connecter simplement tous les composants entre eux, sans faire d’erreur. 1. La gestion de l’énergie (Panneau, Batterie et TP4056) Le petit module bleu TP4056 est le gestionnaire d’énergie du projet. C’est lui qui va s’occuper de recharger la batterie grâce au soleil et de l’empêcher de se décharger trop profondément. Le Panneau Solaire : Connectez ses deux fils aux entrées IN+ (positif) et IN- (négatif) du TP4056. La Batterie LiPo : Branchez-la directement sur les bornes B+ et B- du TP4056. Alimenter la carte ESP32 : Partez des sorties du TP4056. Reliez le OUT+ à la broche d’alimentation principale 5V de votre shield (la carte d’expansion noire), et le OUT- à une broche de masse GND. 2. La Sonde d’humidité (Le secret de l’économie d’énergie) Il y a un piège classique avec les shields d’expansion : toute la colonne rouge fournit du courant en permanence. Si vous y branchez la sonde, elle tournera 24h/24 et videra votre batterie en quelques jours ! Pour que l’ESP32 puisse allumer la sonde uniquement quand il se réveille, il faut l’alimenter via une broche de signal : Alimentation (Fil Rouge de la sonde) : Branchez-le sur le GPIO1 (sur la rangée jaune de votre shield, dédiée aux signaux). Données (Fil Jaune de la sonde) : Branchez-le sur le GPIO0 (rangée jaune). Masse (Fil Noir de la sonde) : Branchez-le sur n’importe quelle broche GND du shield (rangée noire). 3. La lecture du niveau de batterie (Le fameux pont diviseur) Pour afficher le pourcentage de batterie dans Home Assistant, l’ESP32 doit « lire » la tension de la pile. Cependant, l’ESP32-C3 ne tolère pas plus de 2.5V sur ses entrées, alors que notre batterie atteint 4.2V. Si on la branche en direct, on grille la puce ! Il faut donc diviser cette tension par deux en utilisant deux résistances de valeur identique (ex : deux résistances de 100 kΩ ou 10 kΩ) : Résistance 1 : Soudez une extrémité directement sur la sortie OUT+ du TP4056. Reliez l’autre extrémité à la broche GPIO4 de votre shield (rangée jaune). Résistance 2 : Partez de ce même GPIO4 et reliez l’autre extrémité à une broche de masse GND. Résultat : la tension est physiquement coupée en deux, protégeant votre ESP32. Notre code ESPHome se chargera simplement de la multiplier par deux informatiquement pour vous donner la vraie valeur ! 📦 L’impression 3D : Un écrin sur-mesure de 6×6 cm Qui dit composants miniatures, dit boîtier miniature. J’ai modélisé et imprimé en 3D un boîtier spécifique (en PETG pour résister au soleil) d’un encombrement total d’à peine 60×60 mm ! Design anti-pluie : Le dessus du boîtier a une forme d’arche. L’eau glisse naturellement sans jamais stagner. Intégration millimétrée : L’intérieur est tout juste assez grand pour glisser la batterie LiPo au fond, le module TP4056 à la verticale, et le shield de l’ESP32-C3 par-dessus. Connectique soignée : À l’arrière, un trou cylindrique accueille la prise Jack femelle étanche reliée au panneau solaire. Les fils de la sonde sortent par une petite encoche, scellée ensuite au silicone. Fermeture : Une plaque inférieure vient s’emboîter par le dessous pour refermer et protéger le circuit des insectes et de l’humidité du sol. 💻 Le Code ESPHome final Voici le code complet à injecter. Il a été spécialement optimisé pour la puce ESP32-C3. Son comportement est le suivant : il se réveille toutes les heures, allume le GPIO1 pour alimenter la sonde, attend 15 secondes qu’elle chauffe, lit l’humidité (GPIO0) et la batterie (GPIO4), envoie tout à Home Assistant, coupe le courant de la sonde et retourne dormir. Il intègre également une sécurité (le bouton input_boolean.deep_sleep côté
Créer votre sonde d’humidité du sol autonome et solaire pour Home Assistant
Créer votre sonde d’humidité du sol autonome et solaire pour Home Assistant Vous en avez marre d’arroser votre pelouse ou vos plantes à l’aveugle ? Vous souhaitez optimiser votre consommation d’eau tout en gardant un jardin verdoyant ? Aujourd’hui, je vous présente un projet passionnant et très utile : la fabrication d’une sonde d’humidité du sol connectée, 100% autonome grâce à l’énergie solaire et parfaitement intégrée à Home Assistant. 💧☀️ Ce tutoriel vous guidera pas à pas, du choix des composants à la configuration logicielle, pour que vous puissiez vous aussi surveiller la santé de votre jardin intelligemment. Le projet : objectif autonomie et fiabilité L’idée de base est simple : mesurer le taux d’humidité de la terre et remonter l’information à Home Assistant. Mais le véritable défi est de rendre ce système complètement autonome en énergie pour pouvoir le placer n’importe où dans le jardin, sans se soucier des câbles ou de changer les piles. Pour y parvenir, notre stratégie repose sur trois piliers : Alimentation solaire : un petit panneau solaire couplé à une batterie rechargeable. Très basse consommation : utilisation du mode deep sleep (sommeil profond) de l’ESP32 pour ne consommer quasiment rien entre les mesures. Fiabilité des composants : choisir du matériel adapté à un usage en extérieur. Ce projet vous permettra d’obtenir des données précieuses pour déclencher un arrosage automatique, recevoir des notifications, ou simplement suivre l’état de votre sol au fil des saisons. Le matériel nécessaire Voici la liste des composants que j’ai utilisés. J’ai opté pour un bon rapport qualité/prix, avec du matériel facile à trouver. Le cerveau : une carte de développement ESP32. Son Wi-Fi intégré, sa faible consommation en sommeil profond et ses nombreux ports en font le candidat idéal. Le module d’alimentation : un module de charge solaire pour batterie 18650 (type TP4056 ou similaire). C’est la pièce maîtresse de notre système d’alimentation. Il gère la charge de la batterie via le panneau solaire et fournit une sortie stable pour alimenter l’ESP32. La batterie : une batterie lithium-ion de type 18650. Choisissez-en une avec une bonne capacité (ex: 2500-3400mAh) pour une meilleure autonomie, surtout en hiver. Le panneau solaire : un petit panneau solaire de 6V. Sa tension est parfaite pour le module de charge. La sonde d’humidité : une sonde d’humidité capacitive. C’est un choix crucial ! Contrairement aux sondes résistives (celles avec deux broches apparentes), les capacitives ne se corrodent pas au contact de la terre et de l’eau, assurant une bien meilleure fiabilité sur le long terme. La sonde de température/humidité (optionnel) : un capteur DHT11 ou DHT22 pour mesurer la température et l’humidité de l’air. C’est un petit plus pour avoir des données météo locales. Le boîtier : un boîtier de dérivation étanche (IP65 ou plus) pour protéger l’électronique des intempéries. Divers : des câbles de prototypage (fils Dupont), un fer à souder (optionnel mais recommandé), et un piquet (un tuteur en bambou fait parfaitement l’affaire) pour monter le panneau solaire. L’assemblage électronique Le montage est assez simple. Le cœur du système est le module de charge qui fait le lien entre le panneau solaire, la batterie et l’ESP32. Voici le schéma des connexions : Panneau solaire → module de charge : soudez les fils du panneau solaire aux bornes d’entrée « SOLAR +/- » du module. Batterie 18650 → module de charge : insérez la batterie dans son support sur le module, en respectant la polarité. Module de charge → ESP32 : connectez la sortie 5V du module à la broche VIN de l’ESP32, et la masse GND du module à une broche GND de l’ESP32. Sonde d’humidité capacitive → ESP32 : VCC → GPIO26 (on utilisera ce port pour n’alimenter la sonde que lors des mesures) GND → GND AOUT (Signal) → GPIO33 Sonde DHT11 → ESP32 : VCC → 3V3 GND → GND DATA → GPIO27 Mesure de la tension batterie → ESP32 : le module de charge inclut un pont diviseur de tension. Connectez la broche BAT du module (souvent au milieu) à la broche GPIO35 de l’ESP32 pour lire la tension. Une fois tout connecté, placez l’ensemble dans le boîtier étanche, en faisant sortir proprement les câbles du panneau solaire et de la sonde. La configuration avec ESPHome ESPHome est un outil fantastique qui transforme un code complexe en une configuration simple sous forme de fichier YAML. Voici le code complet, que nous allons décortiquer juste après. Note : n’oubliez pas de créer un fichier secrets.yaml dans votre dossier ESPHome pour y stocker vos informations sensibles (clé API, mots de passe Wi-Fi…). esphome: name: sonde-gazon friendly_name: Sonde Gazon on_boot: priority: -100 then: – output.turn_on: gpio_sensor – wait_until: condition: api.connected: – component.update: moisture – component.update: battery – component.update: battery_voltage – component.update: wifisignal – script.execute: deep_sleep_evaluation esp32: board: esp32dev framework: type: arduino # Activer les logs logger: # API pour Home Assistant api: encryption: key: !secret api_key # Remplacez par votre clé ota: password: !secret ota_password # Remplacez par votre mot de passe OTA wifi: ssid: !secret wifi_ssid password: !secret wifi_password manual_ip: static_ip: 192.168.0.177 gateway: 192.168.0.1 subnet: 255.255.255.0 fast_connect: true substitutions: sleep_duration: 1h moisture_min: "2.60500" # À calibrer à sec moisture_max: "1.50000" # À calibrer dans l'eau deep_sleep: id: deep_sleep_enabled sleep_duration: ${sleep_duration} binary_sensor: – platform: homeassistant id: prevent_deep_sleep entity_id: input_boolean.deep_sleep # Un interrupteur virtuel dans HA pour la maintenance publish_initial_state: true output: – platform: gpio pin: GPIO26 id: gpio_sensor sensor: – platform: wifi_signal name: "WiFi Signal" id: "wifisignal" – platform: adc pin: 33 name: "Moisture" id: "moisture" icon: "mdi:watering-can" device_class: 'moisture' state_class: 'measurement' attenuation: 12db accuracy_decimals: 1 unit_of_measurement: '%' filters: – calibrate_linear: – ${moisture_min} -> 0.0 – ${moisture_max} -> 100.0 – platform: adc pin: number: 35 allow_other_uses: true name: "Battery" id: "battery" device_class: 'battery' attenuation: 12db unit_of_measurement: '%' filters: – multiply: 2 # Le pont diviseur divise la tension par 2 – calibrate_linear: – 3.0 -> 0 – 4.2 -> 100 – platform: adc pin: number: 35 name: "Battery Voltage" id: "battery_voltage" attenuation: 12db unit_of_measurement: "V" icon: "mdi:battery-high" device_class: "voltage" state_class: "measurement" accuracy_decimals: 2





