====== Présentation de la sonde d’humidité du sol Gravity SEN0193 ====== ===== Description ===== ### La **Gravity SEN0193** est une **sonde capacitive d’humidité du sol** développée par DFRobot. Elle mesure **l’humidité du sol** de façon **capacitive**, ce qui est **plus fiable** et **plus durable** que les anciennes sondes résistives (qui s’oxydent avec le temps). ### ===== Avantages ===== * 🌿 Capacitive : ne s’oxyde pas, dure plus longtemps que les modèles bas de gamme. * 📐 Compacte : facile à insérer dans un pot ou un bac. * 🔌 Compatible Raspberry Pi via convertisseur ADC. ===== Branchement de la sonde ===== Voici le schéma logique de câblage pour la sonde sur le MCP3008 déjà alimenté et installé : | Broche de la sonde | À connecter sur… | | ------------------ | ------------------------------------------------------ | | `VCC` | ligne 3,3V (pin 1 du Raspberry Pi) via breadboard | | `GND` | ligne GND (pin 6 du Raspberry Pi) via breadboard | | `A0` (sortie) | une des entrées **CH0 à CH7** du MCP3008 (ex: **CH0**) | ⚠️ Le MCP3008 doit être alimenté en 3,3V, pas 5V, pour correspondre au niveau logique du Pi. ===== Test de la sonde en mode interractif ===== Installer la bibliothèque Adafruit_CircuitPython_MCP3xxx #Importation des bibliothèques nécessaires import time # Pour ajouter une pause entre deux lectures (temporisation) import busio # Pour initialiser et utiliser le bus SPI (communication avec le MCP3008) import digitalio # Pour gérer les entrées/sorties numériques (notamment la broche CS du SPI) import board # Pour accéder aux broches physiques du Raspberry Pi via des noms symboliques # Importation de la bibliothèque du convertisseur analogique/numérique MCP3008 import adafruit_mcp3xxx.mcp3008 as MCP from adafruit_mcp3xxx.analog_in import AnalogIn #Initialisation du bus SPI matériel (horloge, entrée et sortie de données) spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI) #Définir la broche utilisée pour sélectionner le MCP3008 (CS = Chip Select) # Ici on utilise la broche physique D5 (GPIO5), mais on peut en choisir une autre cs = digitalio.DigitalInOut(board.D5) #Création d’une instance du MCP3008 relié via SPI mcp = MCP.MCP3008(spi, cs) #Définir une entrée analogique sur le canal CH0 (où est branchée la sonde d’humidité Gravity) # Si tu veux ajouter d'autres sondes : tu peux aussi définir CH1, CH2, etc. canal_humidite_1 = AnalogIn(mcp, MCP.P0) # Capteur 1 branché sur CH0 # canal_humidite_2 = AnalogIn(mcp, MCP.P1) # Capteur 2 (à décommenter si besoin) # canal_humidite_3 = AnalogIn(mcp, MCP.P2) # Capteur 3... #Boucle infinie pour lire les valeurs du capteur toutes les 2 secondes while True: # Lecture de la valeur brute (entre 0 et 65535) pour le capteur 1 valeur = canal_humidite_1.value # Lecture de la tension en volts (entre 0.0 et 3.3V) tension = canal_humidite_1.voltage # Affichage dans le terminal print(f"Sonde 1 → Valeur brute : {valeur} | Tension : {tension:.2f} V") # Si plusieurs sondes sont branchées sur d'autres canaux, tu peux aussi les lire : # valeur2 = canal_humidite_2.value # tension2 = canal_humidite_2.voltage # print(f"Sonde 2 → Valeur brute : {valeur2} | Tension : {tension2:.2f} V") # Temporisation de 5 secondes avant la prochaine lecture time.sleep(5)