Accueil » Raspberry » Guides Raspberry pi » Suivre le niveau d’une cuve de récupération d’eau sur Jeedom avec un Raspberry Pi
Guides Raspberry pi

Suivre le niveau d’une cuve de récupération d’eau sur Jeedom avec un Raspberry Pi

guide-jeedom-cuve-eau-raspberry-pi-domotique-hc-sr04

L’objectif du jour est de mesurer et disposer de la quantité d’eau contenue dans une cuve de récupération d’eau pluviale. Pour cela, nous mettrons en oeuvre plusieurs notions sur le Raspberry Pi, mais également sur le système domotique Jeedom. De quoi accroître vos connaissances des deux systèmes qui, il faut bien l’avouer font un couple parfait. Pour ce nouveau guide, je vais m’appuyer sur un premier guide autour du Raspberry Pi et de la mesure des distances que nous avions publiée sur le blog il y a deux ans.

[irp posts=”10072″ name=”Comment mettre en place un capteur de distance HC-SR04 sur Raspberry Pi”]

Côté matériel, je vais mettre à profit une ancienne version du Raspberry Pi. Amplement suffisante pour cette tâche, sachez toutefois que ce guide peut aussi parfaitement s’appliquer à une autre version du RPi.

Pour la mesure de distance qui sera la donnée principale de ce guide, nous nous appuierons sur l’excellent et économique module HC-SR04.

Enfin, pour mettre en musique le tout, nous aurons également besoin de deux résistances et quelques câbles.

Les composants nécessaires

Dernière mise à jour du tarif le  2024-03-19 at 01:22

Et pour l’alimentation du Raspberry Pi, n’ayant pas d’électricité près du récupérateur et n’ayant pas envie de tirer une nouvelle ligne. J’ai opté pour une autre option bien pratique, l’alimentation PoE. Oui, un petit module qui permet de conduire à la fois la donnée et l’alimentation du Rapspberry sur un seul et même câble réseau.

DSLRKIT Active PoE Splitter Power Over Ethernet 48V to 5V 2.4A Micro USB Plug for Raspberry Pi...
  • this POE Splitter is suitable for household IP camera with Micro USB Plug 5V power Port

Dernière mise à jour du tarif le  2024-03-19 at 01:22

L’outillage nécessaire

No products found.

Retour sur les GPIO du Raspberry Pi

Les GPIO sont les broches qui se trouvent sur le bord du Raspberry Pi. Ces broches permettent de connecter des composants électroniques qui seront ensuite capables d’être lues ou actionnées depuis un programme piloté par le Rpi.

Je vous invite à lire notre article sur un excellent ouvrage qui traite des GPIO et leur potentiel.

[irp posts=”10543″ name=”Mouvement, lumière et son avec Arduino et Raspberry Pi”]

Voici le brochage générique des Raspberry Pi.

raspberry-pi-pinout-gpio-schema

 

Et voici le brochage qui concerne plus spécifiquement notre projet. Vous avez peut-être remarqué que j’ai mis à profit de mon projet, un vieux Raspberry Pi dans sa version B. Cette version était une des premières du mini-ordinateur et ne possédait donc pas autant de PIN que la dernière génération. Toutefois, cela n’a pas une grande importance puisque nous utiliserons des broches de la première partie, qui sont à la fois sur les anciennes et les nouvelles versions.

raspberry-pi-pinout-cuve-recuperateur-eau-hc-sr04

Le nommage des PIN ne change pas, elles sont simplement plus nombreuses sur les dernières versions du Rpi (Partie rouge de droite en plus).

Pour le repérage, comme vous pouvez le remarquer, nous viendrions utiliser 4 PIN. Deux pour l’alimentation 5V et GND et deux autres pour  collecter les données du capteur.

Le schéma de câblage

Pour le branchement des différents composants, rien de compliqué. il n’y a qu’à suivre ce petit schéma simple. Pour info, la résistance de 470 Ohms peut être remplacée par deux résistances de valeur équivalentes. Pour ma part, j’ai utilisé une résistance de 330 Ohms et une autre de 150Ohms. Soit 480Ohms mais rien de grave, ça fonctionne correctement quand même.

schema-hc-sr04-mesure-distance-jeedom-eau-domotique

Le script Python

Les présentations sont faites avec le branchement des GPIO, voyons à présent la partie script. Comme dans l’article sur l’utilisation du HC-SR04, nous utiliserons le même script de base. Un script de Matt Hawkins bien pratique. Nous apporterons simplement quelques petites modifications à ce script pour envoyer les données à Jeedom.

Avant toute chose, nous allons nous assurer de disposer de tout le nécessaire pour l’environnement python du Raspberry Pi.

1 commençons par mettre à jour les depots :
apt-get update
2 Ensuite, il faut ajouter pip
apt-get install python-pip
3 maintenant, installons la bibliothèque requests
python -m pip install requests

Requests, va permettre à Python de faire des appels HTTP pour communiquer avec Jeedom et son API. C’est comme cela que nous mettrons à jour la valeur dans Jeedom.

4

À présent, téléchargeons le script ultrasonic de la même façon que dans le premier guide à l’aide de la commande suivante

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/ultrasonic_2.py

Du côté de jeedom

Du côté du système domotique Jeedom, nous avons juste à créer un device virtuel que le Raspberry Pi viendra alimenter avec sa valeur mesurée. Créez alors simplement un virtuel et notez son code de commande.

jeedom-device-virtuel-niveau-eau

Création de la requête de mise à jour

Vous l’avez compris, nous utiliserons la bibliothèque python Requests pour envoyer les données de mesure à Jeedom. Nous devons donc pour cela construire la requête avant de l’ajouter dans le script.

changez alors les valeurs APIKEYDEJEEDOM et IDDUVIRTUAL par vos valeurs

payload = {'plugin': 'virtual', 'apikey': 'APIKEYDEJEEDOM' , 'type': 'virtual' , 'id': 'IDDUVIRTUAL' , 'value': distance}

Enfin, maintenant que nous disposons des paramètres à passer dans l’URL, construisons l’URL principale. Là encore remplacez simplement ADRESSEJEEDOM par l’adresse de votre Jeedom.

r = requests.post("https://ADRESSEJEEDOM/core/api/jeeApi.php", params=payload)

Mise à jour du script

À présent, il convient d’éditer le script python pour y intégrer nos paramètres d’appel à Jeedom.

1 Pour cela, ajoutez la ligne suivante en début dans script dans la partie import des bibliothèques :
import requests

import-script-python-requests

2 Puis ajoutez les lignes précédemment construites avec vos données dans la boucle en fin de script

Modifiez le sleep de la boucle pour disposer d’une rotation du script 1 fois par heure soit 3600 secondes

boucle-script-python-raspberrypi-jeedom

3 Il ne reste plus qu’à sauvegarder le tout et tester. Pour ce test, lancez manuellement le script avec la commande suivante :
python ultrasonic_2.py

L’automatisation du script

Maintenant que nous avons testé le bon fonctionnement du script, il convient de l’automatiser au démarrage du Rapsberry Pi. Sur ce point plusieurs méthodes existent, je ne me suis pas cassé la tête, j’ai simplement choisi d’éditer le fichier de démarrage. Pour cela utilisez la commande suivante :

sudo nano /etc/rc.local

Une fois dans le fichier rc.local ajoutez-lui la ligne suivante :

python ultrasonic_2.py

rclocal-demarrage-script-raspberrypi

Notez qu’il est possible d’avoir une erreur d’exécution, car la bibliothèque requests n’est pas forcément disponible sous l’environnement sudo. Pour corriger cela, exécutez simplement cette commande :

sudo pip install requests

C’est terminé ! À présent à chaque démarrage du raspberry pi, le script va s’exécuter automatiquement et mettre à jour le niveau de la cuve dans un virtual Jeedom toutes les heures.

La formule de conversion distance / volume pour Jeedom

Pour terminer, la formule de calcul pour convertir la distance en litre et disposez du véritable volume d’eau de la cuve.

pour une cuve de 500L mesurant 98cm de haut, les données sont les suivantes :

  • 0 cm = cuve pleine
  • 98 cm = cuve vide
  • contenance total = 500 L

l’équation à saisir dans Jeedom est donc ((98-#value#)x500)/98

info-virtuel-jeedom-cuve-eau-calcul-formule-math

Enfin, vous pouvez encore allez plus loin en manipulant les différentes données générées avec différents compteurs.

widget-jeedom-cuve-eau-raspberrypi-hc-sr04

Ou encore avec une vue en relation avec la quantité de pluie tombée.

vue-jeedom-eco-eau-cuve-raspberrypi-courbes

Conclusion

Voilà, nous venons de voir comment j’ai entrepris ce projet. Pour moi c’était une cuve de récupération d’eau, mais le principe est parfaitement applicable à une cuve de fioul, un réceptacle de granules de bois ou encore un puit. De la même façon, ce guide est réalisé sur Jeedom mais peut aussi être transposé à une autre box domotique comme Eedomus par exemple.

Pour aller plus loin, vous pouvez également imprimer un modèle 3D pour y loger le détecteur et le coller dans la cuve. Voici le modèle 3D que j’ai utilisé chez moi et que vous avez vu ce week-end sur mes réseaux sociaux.

Besoin d’un Raspberry Pi pour réaliser ce guide?

Dernière mise à jour du tarif le  2024-03-19 at 01:52

Domo-blog a fait le choix de ne pas polluer votre lecture avec de la publicité. Vous trouverez cependant des liens affiliés vers les produits recommandés dans le contenu. Cela ne perturbe en rien votre experience de lecture et permet de financer le blog.
Vous pouvez également soutenir le blog en m'offrant un café sur Ko-Fi.


discord

Restez connecté aux nouveautés domotiques, inscrivez-vous à notre newsletter

A propos de cet auteur

Aurélien Brunet

Chef de projet informatique, anciennement informaticien spécialisé dans l'IT industrielle, le réseau et les bases de données. Un peu geek à mes heures perdues, je me suis mis à la domotique en 2012 pour sécuriser mon domicile.
Depuis, je teste, j’installe, je code, j’améliore mon installation et surtout, je partage avec vous mon expertise via ce blog et mon podcast Domotique Chronique pour améliorer votre quotidien dans la maison connectée !

2 Comments

Cliquez ici pour poster un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

construction et domotique
promos domotique
Choix box domotique
promos domotique

Les composants nécessaires

resistance - SODIAL(R) 1% de Precision 1/4W 30... Acheter sur Amazon Neuftech 3x Module ultrasons HC-SR04 Capteur de... Acheter sur

L’outillage nécessaire

No products found.

Retour sur les GPIO du Raspberry Pi

Les GPIO sont les broches qui se trouvent sur le bord du Raspberry Pi. Ces broches permettent de connecter des

Le schéma de câblage

Pour le branchement des différents composants, rien de compliqué. il n’y a qu’à suivre ce petit schéma simple. Pour info,

Le script Python

Les présentations sont faites avec le branchement des GPIO, voyons à présent la partie script. Comme dans l’article sur l’utilisation

Du côté de jeedom

Du côté du système domotique Jeedom, nous avons juste à créer un device virtuel que le Raspberry Pi viendra alimenter

Création de la requête de mise à jour

Vous l’avez compris, nous utiliserons la bibliothèque python Requests pour envoyer les données de mesure à Jeedom. Nous devons donc

Mise à jour du script

À présent, il convient d’éditer le script python pour y intégrer nos paramètres d’appel à Jeedom.

L’automatisation du script

Maintenant que nous avons testé le bon fonctionnement du script, il convient de l’automatiser au démarrage du Rapsberry Pi. Sur

La formule de conversion distance / volume pour Jeedom

Pour terminer, la formule de calcul pour convertir la distance en litre et disposez du véritable volume d’eau de la

Conclusion

Voilà, nous venons de voir comment j’ai entrepris ce projet. Pour moi c’était une cuve de récupération d’eau, mais le

Besoin d’un Raspberry Pi pour réaliser ce guide?

Raspberry Pi 3 Modèle B+, Carte-mère 59,90 EUR Acheter sur Amazon

  • Les composants nécessaires
  • L’outillage nécessaire
  • Retour sur les GPIO du Raspberry Pi
  • Le schéma de câblage
  • Le script Python
  • Du côté de jeedom
  • Création de la requête de mise à jour
  • Mise à jour du script
  • L’automatisation du script
  • La formule de conversion distance / volume pour Jeedom
  • Conclusion
  • Besoin d’un Raspberry Pi pour réaliser ce guide?