Les cookies assurent le bon fonctionnement de nos services. En utilisant ces derniers, vous acceptez l'utilisation des cookies. En savoir plus

Nouveau !

Atelier Scratch enfant online

S'inscrire

Atelier promotion 1

Nouveau !

Atelier Scratch enfant online

S'inscrire

Atelier promotion 1

DIY Monitoring Aquarium connecté - AquaPi

Partager:

Difficulté:

Bonjour les amis aquariophiles

Si comme moi vous aimez passer de longs moment à admirer votre aquarium, vous savez certainement que c'est au prix de pas mal de contrôles et de surveillance afin de garantir ce merveilleux équilibre entre la qualité de l'eau (eau douce dans mon cas), la vie (poissons, escargots, et crevettes pour moi :-) ), les plantes, l'air, l'éclairage et les conditions de température. 

Dans ce tutoriel un peu long je vais détailler en 4 parties principales (configuration du système, les alimentations, les capteurs, et la carte mère) comment automatiser tous les contrôles à l'aide d'un petit serveur WEB fonctionnant sur un minuscule Raspberry pi ZERO et qui va consommer max 1,3 Watts d'électricité! Vous pourrez ainsi vous connecter depuis votre téléphone mobile à votre serveur pour tout contrôler et administrer totalement le système. Une cinquième partie sera ajoutée plus tard (fabrication d'un boitier imprimé 3D sur mesure, pour le moment je ne suis pas encore équipé d'imprimante 3D)

Le système est modulable, vous pourrez l'adapter selon vos besoins. Dans mon cas je contrôle 2 sondes de températures, 4 éclairages distincts par bandes de leds. Mais vous pouvez aussi ajouter des capteurs de Ph, de niveau d'eau , contrôler des moteurs pour distribuer nourriture et éventuels éléments chimiques pour ajuster la qualité de l'eau (particulièrement critique pour les aquarium d'eau salé avec des coraux). 

Dans mon cas j'ai un simple petit aquarium d'eau douce de 60l.

Matériel :

Budget : 50€

  • 1 Raspberry pi ZERO WH, avec carte SD16Go
  • 1 connecteur Jack Audio 3 fils (mâle + femelle)
  • 1 Led verte 5mm, avec son support
  • 1 Led rouge 5mm, avec son support
  • 1 Convertisseur step down 12V dc LM2596
  • 1 Alimentation 12V dc 24 watts, avec prise jack
  • 1 module 4 relais opto-coupleur
  • 1 Circuit imprimé (à faire fabriquer à partir des fichiers GERBER joints)
  • 1 connecteur coudé à souder 2,54mm: 12 pins
  • 1 connecteur coudé à souder 2,54mm: 4 pins
  • 1 connecteur coudé à souder 2,54mm: 3 pins
  • 1 barrette à souder 2*20 pins femelle pas 2,54mm
  • 1 capteur de température DS18B20 étanche
  • 1 capteur de température DS18B20 au format TO92
  • 1 résistance 4,7 khoms
  • 2 résistances 470 ohms
  • 4 connecteur coudé à souder 2,54mm: 2 pins
  • 5 connecteurs jacks DC (mâle + femelle) avec borniers
  • 6 entretoise M2.5 5mm avec vis
  • 20 câbles Dupont mâle-mâle
  • 20 câbles Dupont femelle-femelle

Fichiers :

Etape 1 : Configuration du système

pour installer le système sans se casser la tête: prévoir une alim Raspberry pi, un câble mini-HDMI vers HDMi (attention la sortie hdmi d'un piZERO c'est du mini-HDMI: les câbles micro-HDMI des pi3 et pi4 ne sont pas compatibles), et très pratique pour brancher clavier, souris + le réseau ethernet: un HUB USB avec prise ethernet + 2 usb: le réseau et le clavier et souris sont ainsi récupérés via le mini-usb unique du piZERO c'est très très pratique pour installer et mettre à jour son piZERO.

  • Dans un premier temps il faut installer Raspbian Lite (pas besoin d'interface graphique) via NOOBS (le plus simple). Tout est bien expliqué sur le site Raspbian. Une fois NOOBS installé sur la SD card choisissez Rasbian Lite à installer au démarrage du piZERO. Le user par défaut est pi, et le password par défaut est raspberry (si le password raspberry ne passe pas essayez rqsberry ...)

  • Exécutez sudo raspi-config pour modifier la langue, le clavier (AZERTY) et le password du user (mettez un password robuste genre 32 caractères car un serveur WEB va tourner 24h/24), modifier le nom du piZERO qui apparaîtra sur le réseau (moi j'ai mis aquapi par exple), et activer SSH ainsi que le WI-FI. La connection SSH va permettre de se brancher sur le piZERO à distance pour les opérations de maintenance sans avoir à rebrancher souris/clavier/écran.

  • Réflexe de sécurité: modifier le port SSH par défaut (22) par une valeur supérieur à 1024. Ça évite les attaques de robots qui viennent snifer le port 22. C'est bien expliqué sur le site de Framboise314.

  • Faire une mise à jour (c'est long!) du Raspberry pi: sudo apt-get update suivi d'un sudo apt-get upgrade.

  • Installer le serveur WEB de monitoring d'aquarium reef-pi développé et fourni par Adafruit: il suffit de suivre les étapes du guide "Reef-pi GUIDE 01: Setup and Démonstration" c'est très très simple je compte sur les doigts d'une main les commandes à taper en ligne ;-) et ça passe tout seul sur le piZERO.

  • Enfin pour finir il faut sécuriser sa carte SD en déportant les écritures de logs dans la RAM en suivant ce guide très simple.


Voilà à la fin de cette étape vous avez configuré votre piZERO et pouvez débrancher tous les câbles sauf l'alimentation du pi. Assurez vous que vous accédez bien à votre pi via un autre ordinateur en SSH, et et que le serveur WEB est bien accessible sur le réseau local depuis un autre ordinateur comme indiqué dans le guide d'Adafruit. Le piZERO peut être éteint via l'interface WEB (onglet Configuration puis Administration: cliquer sur "Arrêt" et ça éteint proprement le piZERO: ne jamais l'éteindre sauvagement en débranchement l'alimentation, la SD card ne survivrait pas longtemps...)

Etape 2 : Les alimentations

Besoin en alimentations


La pompe de filtrage et l'éclairage sont alimentées en 12v dc (via des transfo 220Vac/12Vdc à l'origine). Le Raspberry pi a besoin d'une alimentation 5v dc. Afin de limiter les convertisseurs 220V ac vers une tension continue dc (ils chauffent !) je vais opter comme le suggère Adafruit pour un seul transformateur 220v ac -> 12V dc . Pour alimenter le Raspberry pi, je vais utiliser un convertisseur 12V dc vers 5V dc qui a l'avantage de ne pas du tout chauffer, d'autant moins que le Raspberry pi ZERO va consommer au maximum 250mA en pleine charge (il en sera très loin de la pleine charge), ce qui représente 1,25 Watts! J'ai à peine besoin d'une dizaine de watts en 12V à vrai dire (la pompe et l'éclairage Leds ne consomment pas grand chose). Un bloc d'alim 12V 2A (24Watts) est largement suffisant. A noter que mon aquarium est petit (60l) donc je n'ai pas beaucoup de leds pour l'éclairage (36 leds blanches + 15 leds bleues). Pour un aquarium plus grand il faudra peut-être s'orienter vers une alim 12V 65 Watts.

J'ai opté pour un bon modèle de transformateur BERLS protégé contre les surtensions, les courts-circuits et qui ne provoque pas d'étincelles au branchement et très stable. Il faut se méfier des modèles à bas prix qu'on trouve sur le net de l'autre côté de la planète: ce transfo va être branché 7J/7 h24 je dois lui faire confiance.

Etape 3 : Alimentation du Raspberry pi

Pour relier l'alimentation 12V au LM2596, j'utilise une paire de câbles Dupont Mâles qui seront enfichés sur une breadboard, et dont l'autre embout est relié au bornier d'une fiche Jack DC Femelle. Je récupère ainsi le 12V avec des câbles Dupont Mâles sur la Breadboard. Pour relier ensuite l'alim 5V en sortie du LM2596 je connecte directement le +out au PIN2 (5V) du Raspberry, et le -OUT à la masse (pin 6 du Raspberry) avec des câbles Dupont breadboard.

Avant de relier le Raspberry pi au 5V du LM2596, Il faut juste vérifier 3 fois plutôt qu'une que vous ne vous trompez pas avec la masse et les +12V (IN) et +5V (OUT), bien contrôler avec un voltmètre que la tension de sortie est bien stabilisée à 5V / 5,1V (le Raspberry pi va supporter entre 4,7V et 5,5V à vrai dire, mais au delà il sera cramé direct ...). La tension de sortie du LM2596 se règle avec une petite vis sur laquelle il est conseillé d'y déposer une goutte de verni pour la figer, une fois réglée.

Etape 4 : Commandes 12V pilotées par le Raspberry pi

Concernant les commandes de l'électronique, afin que le Raspberry pi puisse piloter l'allumage et l'extinction des éléments 12V, j'utilise un module de commande équipé de 4 relais, avec optocoupleurs intégrés et commande séparée (ils existent en version 8 relais aussi). On trouve de tels modules parfaitement documentés sur le shop McHobby pour une poignée d'€. En plus ils sont très sympas et abordables dans ce shop: des passionnés avec qui on peu discuter en direct lors de Maker Faire contrairement à Amazon qui n'a pas la moindre idée de ce qu'il vend à tour de bras ;-)

L'énorme avantage d'avoir un circuit de commande séparé de l'alimentation des relais est qu'ils peuvent être commandés en 3.3V directement par les sorties GPIO du Raspberry pi, tandis que les relais seront alimentés avec le 5V du Raspberry pi pour fonctionner. Les modules de relais qui ne séparent pas le circuit de commande de l'alimentation des relais obligent à convertir les sorties 3.3V du GPIO Raspberry pi en 5V à l'aide de circuits Level-Shifter: nul besoin donc si vous choisissez bien ce type de module relais.

Attention il faut impérativement retirer le petit cavalier qui shunte les deux bornes VCC et JD-VCC sur le module de relais, et brancher le 5V du Raspberry pi sur la broche JD-VCC du module de relais. Si vous laissez le cavalier en place: la tension de 5V va être amenée sur les sorties 3.3V GPIO qui vont commander les relais et c'est la mort assurée du Raspberry pi.

Pour commander les relais, il faut relier les 4 entrées IN1, IN2, IN3 et IN4 respectivement aux GPIO12, GPIO6, GPIO5, GPIO25 du Raspberry pi à l'aide de câbles Dupont femelle/femelle. Bien relier la broche GND à la masse, et la broche VCC au 3.3V du Raspberry pi (celle en face du 5V). la broche JD-VCC doit quand à elle être reliée à une sortie 5V du Raspberry pi, ce qui suppose que le cavalier qui shunte VCC et JD-VCC est bien retiré.

Etape 5 : Sorties des relais

Chaque sortie de relais fonctionne alors comme un interrupteur 3 points. Au repos le relais court-circuite le point central avec la droite (voir schéma à l'arrière du relais) , et quand la commande IN est activée par le Raspberry pi, l'interrupteur du relais fait un "clac" caractéristique et bascule alors de l'autre côté, court-circuitant le centre avec la gauche. Pour commander un appareil 12V dc, il suffit alors de brancher le centre d'un relais sur le +12V, et de relier une des deux sorties (droite ou gauche) sur la borne + de l'appareil (le - de l'appareil étant relié à la masse).

  • Si vous reliez la sortie droite du relais vers le +12V de votre appareil: dans ce cas on souhaite que l'appareil soit relié au 12V par défaut, et ce sera le cas même si tout le système tombe en panne (exple le Raspberry pi ne redémarre pas). Je conseille donc de brancher la pompe (12V dc) de cette façon pour garantir qu'elle va fonctionner tout le temps: on utilisera la commande relais uniquement pour l'éteindre (par exemple quand on change les filtres ou qu'on renouvelle l'eau de l'aquarium).

  • Si vous reliez la sortie gauche du relais vers le +12V de votre appareil: dans ce cas on souhaite qu'il ne s'allume que lorsque l'entrée IN correspondante est activée par le Raspberry pi, sinon il est en état Off par défaut. C'est comme ça qu'il faut brancher les éclairages 12V et les moteurs de distribution de nourriture.

!!Attention!! ne vous amusez surtout pas à mettre du 220V directement dans les relais: ils ne sont absolument pas protégés pour manipuler du 220V en toute sécurité, il y aurait un risque énorme d’électrocution.

Etape 6 : Configuration du système reef-pi

  • Il faut d'abord créer les Outlets à relier aux GPIO (menu Configuration->Connecteurs): j'en ai un qui commande une Led (GPIO24), puis les 4 correspondants aux 4 commandes des relais (GPIO12, GPIO6, GPIO5, GPIO25). Je les ais tous configuré en cochant la case "Reverse" sauf la Led: une entrée relais s'active quand elle mise à la masse, sinon par défaut elle est désactivée. Je les ais nommé Led, CH1, CH2, CH3 et CH4.

  • Ensuite il faut créer les équipements (menu Equipement) reliés aux Outlets, je les ais nommé LedPi (quand elle est allumée elle signifie que le serveur WEB est démarré), PompeOFF relié à CH1; LEDS_W relié à CH2 (commande d'une bande de leds blanches 6000k), LEDS_B reliée à CH3 (commande d'une bande de leds bleues), et Nourriture relié à CH4.

  • Pour tester rien de plus simple: vous pouvez activer/désactiver vos équipements dans le menu Equipement: il y a des boutons à glissière et si vous entendez les "clacs" caractéristiques des relais, avec les petites leds témoins qui s'allument: c'est tout bon! Pour mettre en oeuvre une macro qui va activer/désactiver la lumière à des heures précises, suivez le guide d'Adafruit c'est bien expliqué tout à la fin.

Etape 7 : Capteurs de température

Ces capteurs DS18B20 sont très simples à connecter. Ils s'alimentent en 3.3V avec une résistance de 4,7kΩ qui relie la broche signal au 3,3V. La broche signal est reliée à un port libre du Raspberry (GPIO 04). Ces capteurs peuvent tous être connectés en parallèle et partager une seule résistance, un seul port GPIO. La led rouge est quand à elle reliée au GPIO 24 avec une résistance de 470Ω en série.

Pour connecteur le capteur étanche au Raspberry vous pouvez soit passer par des borniers à souder, ou bien connecter les 3 fils du capteurs à une prise jack stéréo mâle 3,5mm tandis que la prise femelle correspondante est branchée au Raspberry pi. L'avantage de passer par un jack stéréo est que l'on peut débrancher facilement le capteur, mais l'inconvénient est qu'il faut impérativement éteindre le Raspberry pi avant de le brancher ou de le débrancher, car une prise jack stéréo provoque des mini court-circuits lorsque l'on enfonce la prise mâle et le Raspberry ne va pas du tout aimer !!! Au mieux il reboote direct, au pire il crame ... donc attention.

Plus d'explication sur le fonctionnement et le raccord de ces capteurs: https://www.papsdroid.fr/post/aquapi-diy-monitoring-aquarium-les-capteurs

Etape 8 : Configuration des capteurs

Une fois que les capteurs sont en place ainsi que la led rouge, on peut configurer reef-pi c'est très simple à faire. On commence par créer un Outlet "RedLed" dans le menu Configuration->Connecteurs. Cet outlet est paramétré sur le GPIO 21

Ensuite il faut créer un équipement "ALERT" qui est relié au connecteur "RedLed" précédemment créé. A ce stade vous pouvez jouer avec le bouton on/off et constater que vous contrôlez bien la led rouge depuis l'interface WEB reef-pi.

Ensuite on ajoute les capteurs dans le menu Température (assurez-vous bien que vous avez coché "Température" dans le menu de configuration. Quand ils sont créés on peut voir l'historique des prises de température que l'on peut afficher sur le tableau de bord général aussi. Dans le cas du capteur de température d'eau: j'ai programmé le "Heater Threshold" à 25°C avec contrôle de l'équipement "ALERT" : si la température descend en dessous de 25°C ma led rouge va s'allumer (poissons en danger de mort). On peut aussi configurer 

Pour plus de détail: https://www.papsdroid.fr/post/aquapi-diy-monitoring-aquarium-les-capteurs

Etape 9 : Fabrication de la carte mère

Pour éviter d'avoir à brancher un nombre considérable de Câbles Dupont sur une Breadbard , vous pouvez faire fabriquer cette petite carte mère sur laquelle il faudra souder des composants et y connecter le RAspberry pi, les modules d'alimentation et de relais ainsi que les capteurs de températures, via les connecteurs prévus à cette effet.

Pour plus d'explications sur le circtuit électronique: https://www.papsdroid.fr/post/aquapi-monitoring-diy-aquarium-cm

Pour fabriquer la carte mère vous pouvez télécharger les fichiers GERBER directement sur ma page Github (ou en PJ dans la liste du matériel de ce tuto), et le confier aux bons soins de n'importe quel fabriquant de circuit imprimé. A titre d'information ça me coûte environ 20€ (frais de ports inclus) de les faire fabriquer en 5 exemplaires (vous pouvez me contacter pour plus de détail).

Tout est indiqué sur la carte pour faire les soudures sans se tromper. Attention à ne pas brancher les Leds à l'envers ... la petite patte doit être soudée vers la masse (GND). La barrette 2*20 pins doit être positionnée sous la carte pour être soudée par dessus.

Pour faire les branchements rien de compliqués si ce n'est la quantité de câbles à connecter sans se tromper: les indications sont très claires sur la carte. Attention à ne pas oublier de relier entre elles toutes les masses entre le Raspberry pi, le module d'alimentation et les relais: vous en oubliez une seule et rien ne fonctionne... Ne pas oublier par exemple de relier les masses des 4 sorties 12V sur les prises jacks reliées aux sorties des relais... Le pins headers doublés aux 4 coins du convertisseurs 12V-5V sont utiles pour ça. J'ai finalement opté pour brancher mon capteur de température étanche sur une prise audio jack stéréo (3 fils): il est impératif d'éteindre le Raspberry pi AVANT de brancher ou débrancher ce câble audio jack, car il créé des micros courts-circuits au branchement entre l'alim 3.3v et la masse que le Raspberry pi ne va pas du tout aimer...

Etape 10 : Eclairage par bandes de Leds 12v

Personnellement j'utilise mes 4 relais 12V pour commander des bandes de LEds 12V. J'ai remplacé mon tube de néons dans le caisson étanche par 2 bandes de leds 1 Blanches 6000K et 1 bleues, j'ai aussi ajouté une bande de leds décorative bleu tout en bas de mon aquarium et une autre bleue dans un décors de voiture au dessus de l'aquarium.

  • Eclairage full Blanc programmé de 16h à 21h pour la vitalité des plantes et prémunir des algues (l'eau de mon aquarium est telmement claire qu'on aurait envie de la boire !!)
  • Eclairage full bleu programmé le soir de 21h à 23h: c'est discret et vraiment de toute beauté quand il fait sombre.
  • Eclairage des leds du bas en bleu de 19h à 20h30

Les relais peuvent aussi être utilisés pour commander la pompe à condition d'avoir une pompe alimentée en 12V DC (je répèté hein: NE PAS BRANCHER DU 220V SUR LES RELAIS), et pour commander un distributeur de nourriture aussi alimenté avec un moteur 12V DC.

Etape 11 : Boitier imprimé 3D

Je rédigerai cette partie plus tard (quand je serai équipé et formé aux impression 3D), en attendant j'ai tout branché et mis les composants dans une petite boite simple ouverte.

Sources :

Les 4 parties du tutoriel étape par étape: https://www.papsdroid.fr/blog/categories/aquapi


Partager:

Recevez une fois par mois les meilleurs tutoriels Déco dans votre boîte mail


Ces tutoriels devraient vous plaire

Arduino Uno - Capteur d'humidité au sol.
Un Tableau de Bord numérique – v2 !
Tracker solaire

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers