Outils pour utilisateurs

Outils du site


jardin_sonde_gravity

Ceci est une ancienne révision du document !


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.

Le protocole SPI

C’est un protocole de communication utilisé pour faire dialoguer un microcontrôleur (comme le Raspberry Pi) avec des composants externes

Le protocole SPI utilise 4 fils :

Nom du fil Fonction Correspondance sur le Raspberry Pi
————— ————————————————————– ———————————-
`MOSI` Master Out Slave In : le Pi envoie les données vers le capteur GPIO10 (Pin 19)
`MISO` Master In Slave Out : le Pi lit les données du capteur GPIO9 (Pin 21)
`SCLK` ou `CLK` Clock : le signal d’horloge synchronise les échanges GPIO11 (Pin 23)
`CS` ou `CE` Chip Select : active le capteur concerné Par exemple GPIO5 (Pin 29)

C’est un bus rapide, synchrone (horloge partagée), plein-duplex (on peut envoyer et recevoir en même temps).

Activer le protocole SPI

Aller dans l'interface d'administration du Raspberry Pi :

sudo raspi-config
  • Aller dans Interfaces
  • Activer SPI
  • Redémarrer

Test de la sonde en mode interractif

#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
from adafruit_mcp3xxx.mcp3008 import MCP3008
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 = 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, MCP3008.P0)  # Capteur 1 branché sur CH0
# canal_humidite_2 = AnalogIn(mcp, MCP3008.P1)  # Capteur 2 (à décommenter si besoin)
# canal_humidite_3 = AnalogIn(mcp, MCP3008.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 2 secondes avant la prochaine lecture
    time.sleep(2)
jardin_sonde_gravity.1753972873.txt.gz · Dernière modification : de admin