Bonjour à tous,
Suite à la lecture d’un récent post sur la domotisation d’une piscine via Jeedom j’ai tilté que je n’avais jamais fait de schéma de mon installation et écrit un petit truc au cas où mon install tombe, et comme j’avais passé beaucoup de temps à la mettre en place je me suis dit que ça serait bien de le faire. Et quitte à le faire autant que ça serve, d’où ce petit tuto.
Mon objectif était de domotiser ma piscine au chlore afin de pouvoir suivre :
- la température,
- le pH,
- le taux de chlore,
mais également de piloter la pompe et l’éclairage de manière automatique, plutôt que de modifier plusieurs fois par saison mon boitier mécanique de programmation au niveau du coffret piscine (et c’est chiant de clipser les petits ergos de programmation ).
Ça a été mon tout premier projet de domotique et mes premiers pas avec Jeedom ça m’a pris donc beaucoup de temps mais aujourd’hui j’ai quelque chose qui s’auto gère depuis un an et ça marche nickel.
J’ai parcouru beaucoup de forums et tutos sur internet qui présentaient diverses solutions à base d’Arduinos, Fibaro, Sonoff… A l’époque je n’avais qu’un Raspberry qui trainait car acheté pour me lancer dans la domotique mais jamais vraiment démarré, quelques modules en 433Mhz, et je trouvais que le Zwave revenait relativement cher, ne sachant pas trop si j’allais vraiment m’équiper, je lorgnais plutôt vers le Zigbee.
Du coup je voulais rester avec quelque chose de relativement économique, mais versatile dans le cas où je voudrais faire évoluer mon installation.
J’ai donc décider d’ajouter un coffret domotique directement dans le local piscine en parallèle de l’installation existante sur la base d’un Raspberry Pi A+ branché sur une prise CPL.
La pompe est pilotée via une carte relais connectée aux GPIO.
Le pH et l’ORP sont récupérés via les sondes du même nom, connectées sur des cartes adaptateurs 1130 de chez Phidgets, et envoyées vers les GPIO du Rasp via un convertisseur analogique numérique MCP3008.
La température d’eau est acquise via une sonde DS18B20 à visser connectée aux GPIO du Rasp.
Les sondes sont fixées sur la canalisation piscine juste après le préfiltre de pompe via des colliers de prise en charge.
J’ai ajouté un inter 3 positions pour garder la possibilité de shunter la domotique et revenir sur la programmation méca si problème sur l’install, et ça me permet d’activer la pompe quand je suis dans le local piscine et que je n’ai pas mon tél.
La liste des courses :
- 1 Raspberry Pi A+,
- 1 prise CPL pour raccorder en filaire (le local est un peu loin pour du WiFi et c’est plus stable),
- 1 Adaptateur USB 3.0 vers Ethernet - lien
- 1 carte 4 relais - lien
- 1 sonde ORP - lien
- 1 sonde pH - lien
- 2 cartes adaptateurs 1130 pH/ORP - lien
- 1 sonde DS18B20 à visser - lien
- Résistances 1k/2k/4,7k
- Colliers de prise en charge – lien + raccords étanches à visser pour les sondes ORP+pH,
- 1 interrupteur 3 positions - lien
- 1 CAN MCP3008 - lien
- Un boitier étanche électrique,
- De la bigaille diverse (vis/fil, plaque de prototypage…)
Les infos sont centralisées sur un Jeedom fils qui communique via Jeelink vers le Raspberry de la maison.
Côté Jeedom, j’utilise les plugins :
- Jeedom Link,
- Piscine pour l’automatisation,
- Script pour récupérer les données des sondes ORP/pH,
- Virtuel,
- Jeedouino pour les données de la sonde de température + les données du MCP3008 + la carte relais,
- Weather pour la température extérieure (prévu d’ajouter une sonde ext. prochainement).
Le câblage du boitier :
Je n’ai pas mis la partie pompe et inter de sélection, c’est de l’élec simple, et c’est avant le relais.
Sonde température + pompe :
Rien de sorcier, côté Jeedom, j’ai configuré Jeedouino pour récupérer les données de la sonde de température et piloter le relais :
J’ai ensuite des virtuels pour récupérer tout ça sur le dashboard.
ORP + pH :
Là c’est un peu plus touchy.
Le MCP3008 réalise la conversion CAN des sondes ORP et pH et envoie le tout sur le bus SPI du Rasp.
Il faut d’abord préparer le Rasp avec les bibliothèques qui vont bien pour l’utilisation du MCP3008, pour cela un tour sur la doc officielle très bien documentée ici et là, en résumé ça donne, à lancer dans un terminal :
Install de Python3 :
sudo apt-get update
sudo apt-get upgrade
sudo pip3 install --upgrade setuptools
Vérif que le SPI est activé :
ls /dev/spi*
Ça doit renvoyer :
/dev/spidev0.0 /dev/spidev0.1
Si OK, install de la librairie adafruit :
sudo pip3 install adafruit-circuitpython-mcp3xxx
On donne les droits à GPIO et SPI d’accéder au dossier des scripts :
sudo adduser www-data gpio
sudo adduser www-data spi
Il faut ensuite lancer un script Python via le plugin script pour récupérer la tension renvoyée par la sonde :
Je mets le script en PJ. Le script est à adapter selon votre configuration :
- Ligne 13 è le « board.D5 » correspond au GPIO utilisé pour le câblage au Rasp (dans mon cas le GPIO5, cf. schéma précédent)
- Ligne 20 è le « MCP.P0 » correspond au port du MCP 3008 auquel est connecté la sonde (pour moi ORP = P0, pH = P1)
J’ai fait le choix de faire 100 mesures de suite et de faire une moyenne pour fiabiliser la valeur.
On récupère ensuite la tension que l’on convertit en pH ou ORP selon les formules que l’on trouve dans la doc de la carte 1130, dans un virtuel :
pH = 7-(2,5-Tension)/(0,257179+0,000941468xTempérature_d_eau) (+/- étalonnage)
ORP = (2,5-Tension)x1000/1,037 (+/- étalonnage)
La valeur (+/- étalonnage) est à déterminer avec des solutions d’étalonnage pour être le plus précis possible sur vos mesures.
Concernant l’automatisation du temps de filtration en fonction de la température et la gestion de l’hivernage/saison, j’utilise l’excellent plugin Piscine qui fait tout ça très bien. La doc est bien détaillée. On peut également gérer via scénario.
Pour la suite j’ai prévu d’ajouter une sonde de température extérieure et d’ajouter la gestion des éclairages, sur le même principe que la pompe, via la carte relais. Une mesure du niveau d’eau peut également être intéressante, j’avais vu un tuto sur le sujet.
En espérant que ça servira à certains d’entre vous.
Bonne journée,
ORP.txt (669 Octets)