Mesurer l’humidité du sol avec le Raspberry Pi

Il existe des capteurs pour le Raspberry Pi qui peuvent mesurer l’humidité, la température et d’autres valeurs. Néanmoins, ces modules sont presque exclusivement adaptés à l’air et non destinés à être utilisés dans la terre.
Pour certains projets, comme un approvisionnement automatique des plantes, l’humidité du sol doit être mesurée, puis, par ex. rempli d’eau.

Dans ce didacticiel, je vais vous montrer comment ignorer la lecture d’humidité (analogique) avec un capteur et la convertir en valeur numérique afin que le Raspberry Pi puisse l’interpréter.

Matériels requis

J’ai utilisé les pièces matérielles suivantes:

Installer

Le MCP3008 IC est un convertisseur analogique-numérique. Étant donné que le Raspberry Pi ne peut pas détecter les signaux intrinsèquement analogiques, vous avez besoin d’un convertisseur comme le MCP3008.

Bien que ce capteur fournisse également une broche numérique qui peut envoyer un signal dès qu’un seuil est dépassé, cependant, il n’est pas exactement déterminable. Le seuil peut être modifié en tournant la roue (s’il a été atteint, le voyant vert sera allumé).

Pour lire la broche analogique, nous la connectons comme suit:

hygrometer_breadboard

mcp3008-e1397762478714

Les connexions au MCP3008 sont les suivantes:

Raspberry PI MCP3008
Broche 1 (3,3 V) Broche 16 (VDD)
Broche 1 (3,3 V) Broche 15 (VREF)
Broche 6 (GND) Broche 14 (AGND)
Broche 23 (SCLK) Broche 13 (CLK)
Broche 21 (MISO) Broche 12 (DOUT)
Broche 19 (MOSI) Broche 11 (DIN)
Broche 24 (CE0) Broche 10 (CS / SHDN)
Broche 6 (GND) Broche 9 (DGND)

Le VCC du capteur est également connecté à 3,3 V (broche 1) du Raspberry Pi, GND et la broche 6 (GND) et A0 vient à CH0 du MCP3008.

Logiciel

Pour pouvoir adresser le MCP3008, SPI doit être activé. Cela fonctionne comme suit:

sudo raspi-config

«8 Options avancées» -> «A6 SPI» -> «Oui».
Confirmez ensuite le redémarrage.

Vous pouvez maintenant installer la bibliothèque spidev si vous ne l’avez pas déjà fait:

sudo apt-get install git python-dev
git clone git://github.com/doceme/py-spidev
cd py-spidev/
sudo python setup.py install

Avec le script suivant, vous pouvez alors adresser le capteur (sudo nano humidity.py):

Une valeur comprise entre 0 et 1023 est sortie. Dans mon test, le capteur a souvent renvoyé un 0, ce qui signifierait une humidité totale (conductivité). Mais puisque seules des valeurs autour de 100-200 apparaissent, si le capteur est complètement immergé dans l’eau, une valeur de 0 est évidemment fausse, donc je filtre cette valeur dans le script. De plus, les valeurs sortent autour de ~ 1000 s’il n’y a rien de conducteur (air) entre les plaques du capteur.

Selon le matériau (terre, eau, sable, etc.) qui se trouve entre les plaques, d’autres valeurs sortent à l’état sec / humide. Par conséquent, il est logique de prendre plusieurs mesures et d’ajuster le seuil analogique pour votre application.

Articles similaires

Bouton retour en haut de la page
Fermer