Lire la gravité du capteur capacitif d’humidité du sol DFROBOT sur le Raspberry Pi

Dans le cadre de la mesure de l’humidité du sol sur un Raspberry Pi, il existe des capteurs résistifs et capacitifs, qui présentent chacun des avantages et des inconvénients. L’innovante machine à couler Raspberry Pi / DFROBOT Gravity ou capteur « Giess-o-Mat » fournit une mesure capacitive précise et permanente, qui peut notamment être très intéressante dans notre serre Raspberry Pi.

Ce tutoriel traite de la structure de la machine à couler Raspberry Pi ainsi que de la lecture de la fréquence, à l’aide de laquelle l’humidité relative du sol peut être calculée.

Comme plusieurs utilisateurs me l’ont demandé et qu’il n’y a pas beaucoup de matériel sur le sujet (en ce qui concerne le Raspberry Pi), j’espère que ce tutoriel rendra son utilisation un peu plus facile.

 

Pièces détachées nécessaires

Pour cela, j’ai pris les pièces ou composants matériels suivants :

Je recommande de prendre tout de suite la version enrobée de la carte, sinon, il faudra de toute façon la sceller à la main. Les composants fournis de la carte/capteur (listés ci-dessous) sont au format SMD et ne conviennent donc pas vraiment aux débutants. Avec un peu d’habileté, la taille ne devrait pas être un problème.

Le diviseur de fréquence peut également être remplacé par une résistance. Dans ce cas, la résistance 100kΩ en position R3 (voir ci-dessous) est remplacée par une résistance plus grande : Si la fréquence est divisée par deux, on prend une résistance deux fois plus grande, etc. Il est bien sûr possible de combiner plusieurs résistances.

 

Avantages par rapport aux capteurs d’humidité résistifs

Resistive earth moisture sensor

Les capteurs d’humidité à terre résistive ne durent souvent pas longtemps.

Dans un précédent tutoriel, nous avons connecté et lu un capteur d’humidité du sol à très bas prix sur le Raspberry Pi. Cependant, cette conception présente un problème qui survient avec le temps : la corrosion. Après une utilisation prolongée avec la même polarité, les capteurs se décomposent souvent partiellement. Cela n’est pas bon pour le comportement de mesure ni pour les valeurs du sol.

Ce danger n’existe pas avec les capteurs capacitifs. Dans ce cas, cependant, aucun signal analogique n’est émis, qui peut être lu avec un ADC MCP3008, mais une fréquence qui varie en hauteur – en fonction de l’humidité de la terre (plus elle est humide, plus elle est basse).

Le Raspberry Pi, c’est pourquoi nous utilisons un diviseur de fréquence qui la divise par un certain dividende, ou simplement une plus grande résistance. L’inconvénient d’un diviseur de fréquence est son prix, car une simple résistance ne coûte presque rien.

 

Montage de la machine de moulage Raspberry Pi

Le Giess-o-Mat n’est généralement pas livré monté, c’est pourquoi les composants SMD individuels n’ont pas encore été soudés sur la carte. Comme ils sont très petits, un regard sur l’étiquette aide. J’ai également essayé de documenter chaque étape avec des photos, afin que rien ne se passe mal.

Le capteur de gravité DFROBOT est plus facile à manipuler : Il n’y a pas de soudure à faire, vous pouvez donc ignorer cette étape.

La fiche d’aide suivante se trouve dans le sac des composants :

Description Type Étiquettes Fonction
T1 BC847B 1Ft od. 1FW Transistor
C1 10μF 10V Condensateur
IC1 74HC14D HC14 IC
D1 BZX84B5V6 T12 or Z3 Diode Zener 5v6
R1 1k 102 od. 1001 Résistance 1k
R2 100R 101 od. 1000 Résistance 100R
R3 100k 104 od. 1003 Résistance 100k

Commençons par le circuit intégré. Il est important que le côté avec la marque « up » montre où la petite encoche ronde est visible sur le PCB.

Le condensateur (C1) n’a pas d’étiquette et il importe peu de savoir quel côté est soudé à quel endroit :

Avec les résistances (R1, R2, R3) vous devez faire attention car l’inscription SMD ne correspond pas à la taille réelle. Sur cette page, vous pouvez simplement entrer la valeur imagée de la résistance SMD et obtenir le calcul de la taille réelle.

Si vous n’avez pas de diviseur de fréquence, vous pouvez également utiliser une résistance plus grande à la place de R3 (comme décrit ci-dessus).

 

Ensuite, il manque le seul transistor (T1) et la diode Zener (D1), qui ont la même forme. Ici encore, aide l’étiquette du dessus :

 

Monter le diviseur de fréquence (facultatif).

De la même manière que la machine de moulage, nous construisons également le diviseur de fréquence si nous en avons un.

D’abord la table :

Description Type Étiquettes Fonction
T1 BC847B 1Ft, 1F-, 1FW Transistor
C1 10μF 10V Condensateur
IC1 74HC4040 HC4040 IC
D1 BAS40 43t, 43-, 43p, 43W Diode Schottky
R1, R2 2k2 222, 2201 Résistance 2k2

Encore une fois, nous commençons par le circuit intégré, le condensateur et les résistances. La taille de R1 et R2 est identique.

frequency divider

Il manque toujours le transistor (T1) et la diode (D1). Faites à nouveau attention à l’étiquette, car le modèle est identique :

frequency divider 2

 

Enfin, les deux contacts de  » : 16″ sont soudés ensemble, ce qui donne une fréquence 16 fois plus basse.

En outre, j’ai soudé les deux cartes ensemble et soudé au diviseur de fréquence quelques contacts pour le câble jumper.

Raspberry Pi Giessomat

 

 

Un script pour lire la fréquence

Connectez d’abord V + et 3.3V au Raspberry Pi, GND à GND et OUT par exemple à GPIO21.

Pour lire la fréquence sur le Raspberry Pi, il y a la bibliothèque PiGPIO, qui apporte des bibliothèques pour C (++), Python, etc. Elle est déjà préinstallée sur les versions ordinaires de Raspbian (pas Lite), sinon on peut l’installer après :

sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio

 

Ensuite, nous créons un nouveau fichier C, qui est là pour lire la fréquence :

sudo nano freq_count_1.c

Ce fichier a le contenu suivant (exemple d’ici). Enregistrez avec CTRL + O et renvoyez CTRL + X au terminal.

Ensuite, nous compilons les fichiers :

gcc -Wall -pthread -o freq_count_1 freq_count_1.c -lpigpio -lrt

Maintenant le programme peut déjà être appelé. Il faut seulement spécifier la broche GPIO correspondante, à laquelle « OUT » est connecté (par exemple 21) :

sudo ./freq_count_1 21

Ensuite, le numéro du GPIO suivi de la fréquence (en Hz) s’affiche. À titre de test, vous pouvez mettre le capteur dans un verre d’eau et observer la diminution de la fréquence.

Dans un projet comme la serre Raspberry Pi, il est maintenant important de trouver la valeur optimale. Cependant, cela dépend du sol, de l’irrigation et des plantes et ne peut donc pas être répondu clairement. Pour moi, l’humidité totale (verre d’eau) a donné une fréquence d’environ 1000Hz, avec une sécheresse totale (aucun matériau conducteur) environ 10kHz (avec un diviseur de fréquence de 16).

Si vous utilisez un script Python, vous pouvez également étendre/raccourcir le programme C supérieur et l’intégrer dans votre script Python.

 

Autres informations sur Giess-o-Mat

Des informations supplémentaires sur la machine de moulage sont disponibles e.a. sur les pages suivantes, dont la plupart sont à utiliser avec Arduino et/ou ESP8266 et moins avec le Raspberry Pi. Néanmoins, je pense que cela peut valoir la peine de lire des liens pour les personnes intéressées :

Si vous connaissez une autre bonne source, vous pouvez la poster en commentaire afin que je puisse élargir la liste.

Leave a Comment

Your email address will not be published.