Kit complet de contrôle de piscine – Raspberry Pi 2 + Arduino, cartes relais, capteurs de température et accessoires
Composants et fournitures
| Composant | Quantité |
|---|---|
| Raspberry Pi 2 Model B | 1 |
| Carte microSD PNY 16 Go Turbo MicroSDXC CL10 | 1 |
| SparkFun Arduino Pro Mini 328 - 5V/16MHz | 1 |
| Carte relais statique 4 canaux 5V SainSmart | 1 |
| Module relais 5V Tolako pour Arduino | 1 |
| Capteurs de température étanches DS18B20 | 1 |
| Résistances 4,7 kΩ 1/4 W 5% (lot de 10) | 1 |
| Dongle USB WiFi pour Raspberry Pi | 1 |
| Rallonge USB mâle/femelle 30 cm | 1 |
| Colliers de serrage American Valve CL40PK6 n°40 (lot de 6) | 1 |
| Époxy marine J-B Weld 8272 MarineWeld - 56 g | 1 |
| Rondelle de siège | 2 |
| Alimentation secteur micro USB | 1 |
Outils et machines nécessaires
- Imprimante 3D Printrbot Simple (pour boîtier et supports de capteurs)
- Adaptateur série FTDI USB vers TTL pour Arduino Mini Pro (pour téléverser le sketch)
Applications et services en ligne
- Microsoft Windows 10 IoT Core
- Microsoft Visual Studio 2015
- Microsoft IIS
- Arduino IDE
- Bibliothèque OneWire
- Bibliothèque Dallas Temperature
- Logiciel domotique open source openHAB
À propos du projet
Contrôleur de piscine automatisé
Deux fois en trois mois, la minuterie de ma pompe de piscine a lâché. Cela m'a inspiré ce projet. Le remplacement de ces minuteries m'a coûté plus de 120 $, pour un contrôle très limité et un taux de défaillance élevé. J'ai aussi subi la panne du capteur de température de mon chauffe-eau solaire, ce qui a ajouté 30 $ à la facture.

Je savais que je pouvais créer un contrôleur de piscine automatisé rentable, offrant bien plus de contrôle sur le fonctionnement de la pompe. Je voulais pouvoir décider du démarrage de la pompe selon plusieurs variables (pas seulement l'heure et le jour), surveiller l'état de divers éléments de la piscine, et tout piloter à distance depuis n'importe quel appareil.
Le projet utilise un Raspberry Pi sous Windows 10 IoT Core, des relais, un Arduino Pro Mini, des capteurs de température, du câblage et des pièces imprimées en 3D. Le coût total est bien inférieur à celui des deux minuteries et du capteur solaire précédents.
Contrôle de la pompe de piscine (composants AC)


J'ai commencé par piloter des relais statiques depuis le Raspberry Pi sous Windows 10 IoT Core. Ces relais permettent de commander les composants en courant alternatif (AC) comme la pompe de piscine. Ils contrôlent les relais AC 30 A existants qu'utilisait l'ancienne minuterie. Après avoir conçu et testé le circuit pour la pompe, j'ai ajouté le contrôle d'autres équipements AC : cascade, éclairage de la piscine et du jardin. Ainsi, plus besoin d'ouvrir physiquement le coffret de commande pour activer la cascade, les lumières ou régler la minuterie.

Boîtier du contrôleur de piscine
Mon fils a conçu le boîtier et l'a imprimé en 3D, assurant un maintien sûr du Raspberry Pi et des relais statiques.




Capteurs de température

L'un des objectifs était de piloter la pompe selon d'autres variables que l'heure et le jour : température extérieure, température de l'eau du chauffe-solaire et de la piscine. Par exemple, par temps très froid (proche du gel), si l'eau de la piscine risque de geler, il faut faire tourner les pompes pour éviter d'endommager les canalisations. Ce système permet de le faire même en mon absence. J'ai donc intégré des capteurs de température, lus par un Arduino Pro Mini qui transmet les données au Raspberry Pi via I2C.
Capteur de température de l'air extérieur
Le premier capteur installé mesure la température de l'air. Mon fils a conçu et imprimé son support en 3D. L'ABS est préférable au PLA car plus résistant aux intempéries et à la chaleur (température de transition vitreuse plus élevée). Imprimez avec au moins 75 % de remplissage. Le capteur est connecté selon le schéma.


Capteurs de température de l'eau
J'ai ensuite ajouté les capteurs pour l'eau de la piscine et du chauffe-solaire. Cela permet d'afficher les températures et de les utiliser comme variables de contrôle. Le support a été imprimé en 3D (ABS, remplissage ≥ 75 %).

Construction et installation du capteur de température d'eau
Après impression du support, j'ai utilisé un foret à fraiser pour créer un chanfrein de 45° autour du trou du capteur, augmentant la surface d'adhérence de l'époxy JB Weld. La coupe rugueuse du foret améliore l'accroche.

Insérez le capteur jusqu'à ce qu'il dépasse d'environ 19 mm sous le support. Ajoutez la rondelle de siège pour le maintenir.

Remplissez le haut du support avec l'époxy JB Weld et laissez sécher 24 heures.

Note importante : Assurez-vous que toutes les pompes sont arrêtées avant d'installer les capteurs d'eau !
Après avoir coupé les pompes, ouvrez les vannes pour dépressuriser la zone d'installation (cela facilite le montage et vous garde au sec). Percez un trou de 8 mm (5/16") dans la tuyauterie de la piscine. Insérez le capteur et serrez avec deux colliers. Ne serrez pas trop fort, cela écraserait le support. Refermez les vannes, remettez les pompes en marche et vérifiez l'étanchéité.




Contrôle de la vanne du chauffe-eau solaire

Une fois les capteurs en place, j'ai conçu et installé le contrôle de la vanne du chauffe-solaire. Celui-ci fonctionne en courant continu (DC), contrairement aux autres équipements en AC. Il a donc fallu utiliser un relais DC. Le principe est similaire, mais les relais diffèrent. Vérifiez que vos relais correspondent au type de tension de l'appareil commandé.
Ce contrôle permet de diriger l'eau de la piscine vers les panneaux solaires sur le toit. Je ne veux cette déviation que lorsque la température extérieure dépasse 15 °C (60 °F). Une fois l'eau déviée, il faut s'assurer que l'eau de retour est au moins 1 °C (2 °F) plus chaude que l'eau de la piscine, sinon c'est un gaspillage d'énergie. Le câblage est détaillé dans le schéma « Composants DC du contrôleur de piscine ».
Développement de l'application
Après l'installation de Windows 10 IoT Core sur le Raspberry Pi, j'ai découvert son serveur web intégré pour la gestion. Je me suis demandé s'il s'agissait d'une version allégée d'IIS, ce qui m'aurait permis d'écrire des services REST dessus. Après de nombreuses recherches, cela ne semblait pas faisable à ce moment.
J'ai donc adopté une autre approche : j'ai étudié l'exemple « Blinky Web Server » et un article du blog Druss. J'ai développé une application d'arrière-plan (Background Application) Windows 10 IoT Core sans interface graphique (headless), agissant comme un serveur HTTP simple répondant aux requêtes GET et POST.
En quelques jours, j'avais un prototype fonctionnel, ce qui m'a donné confiance. Après tests approfondis dans le débogueur de Visual Studio 2015, je pensais pouvoir déployer facilement.
Déploiement de l'application
C'est là que j'ai rencontré des difficultés, que je partage pour vous les éviter. Pensant pouvoir simplement passer du mode Debug à Release pour déployer, j'ai essayé : l'application se déployait et démarrait en mode Debug, mais impossible de la lancer depuis l'AppX Manager (erreur générique « Application failed to initialize »).
La solution : supprimer le déploiement actuel et installer l'application directement depuis l'AppX Manager. Cela m'a fait perdre beaucoup de temps.
Même si l'application tournait parfaitement en mode Debug, elle plantait après la première requête HTTP. Après de longs dépannages, je n'ai toujours pas identifié la cause.
Sous pression pour finir, j'ai repris l'architecture de l'exemple « Blinky Web Server ». Dans mon implémentation initiale, je n'avais pas d'application écran (Headed) car le serveur web pilotait les GPIO et lisait l'I2C. J'ai donc fait démarrer le serveur web par l'application écran, celui-ci renvoyant des messages à l'application écran pour afficher les requêtes HTTP reçues. Cette approche est solide et utilise exactement le même code.
Interface utilisateur
Enfin, j'ai créé une interface de contrôle en HTML fonctionnant sur pratiquement n'importe quel appareil. Elle permet de piloter la pompe, la cascade, les lumières, et de surveiller les capteurs depuis n'importe où.

Plus tard, j'ai utilisé openHAB et créé une sitemap offrant une interface supplémentaire.

J'espère que vous avez apprécié la lecture de ce projet autant que j'ai aimé le créer. Merci.
Code
- Sketch Arduino pour capteurs de température via I2C
- PoolWebServer - BackgroundTask.cs
- PoolWebServer - Devices.cs
- PoolWebServer - Sensors.cs
- PoolWebService - MainPage.xaml.cs
- PoolWebService - App.xaml.cs
- Sitemap openHAB
- Items openHAB
Sketch Arduino (I2C) : lit les capteurs DS18B20 et envoie les données sur demande via I2C.
PoolWebServer - BackgroundTask.cs : définit le serveur HTTP répondant aux requêtes GET/POST.
PoolWebServer - Devices.cs : classe définissant tous les dispositifs et leurs broches GPIO.
PoolWebServer - Sensors.cs : classe gérant les capteurs de température et l'interface I2C.
PoolWebService - MainPage.xaml.cs : page principale démarrant le serveur web.
PoolWebService - App.xaml.cs : point d'entrée de l'application.
Sitemap openHAB : exemple de configuration pour l'interface utilisateur.
Items openHAB : définition des éléments (interrupteurs, valeurs numériques) liés aux endpoints HTTP.
Dépôt GitHub complet : https://github.com/mmackes/Windows-10-IoT-PoolController
Pièces personnalisées et boîtiers
- Support pour capteur DS18B20 étanche (température air)
- Support pour capteur DS18B20 étanche sur tuyauterie standard de piscine
- Boîtier pour Raspberry Pi et relais (deux versions)
Schémas



Processus de fabrication
- Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
- Construction d'une station météo extérieure avec Raspberry Pi 2 et ADS‑WS1
- Surveillance précise de la température dans un placard serveur avec Raspberry Pi
- Construire un contrôleur domotique 433 MHz avec Sensorflare et Raspberry Pi
- Suivi avancé de balle de ping-pong sur Raspberry Pi avec OpenCV
- Construire une télécommande universelle Raspberry Pi professionnelle avec LIRC
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Conversion RF vers DC avec Raspberry Pi : Construction et dépannage d'un détecteur d'enveloppe
- Cycle Chaser : Transformer votre vélo en spectacle lumineux nocturne avec Raspberry Pi