Go Down

Topic: Surveiller un aquarium récifal et envoyer des SMS d'alerte: arduino mega + GSM (Read 4880 times) previous topic - next topic

reivaxy

Hello à tous,

L'an dernier, j'ai eu la désagréable surprise de trouver, lors de mon retour de vacances, le courant coupé dans mon appartement...
Des prises programmables m'ont permis de constater que la coupure avait eu lieu environ 23 heures avant mon retour.
La cause de la coupure est un court circuit provoqué par de l'eau salée s'échappant de mon petit bac à boutures par capillarité :( et qui est tombé sur une prise... bref.

Dans mon petit récifal, mes crevettes sont mortes, mes poissons aussi, et beaucoup de mes coraux. Résultat de 23 heures sans brassage, sans éclairage, sans chauffage.

Le pire est que je travaillais depuis quelques mois sur un projet perso d'un système de surveillance du niveau d'eau, éclairage, température, et coupure de courant (Hé oui, la nuit, pas d'éclairage qui s'arrête pour indiquer une coupure de courant), avec alerte par SMS.

Je ne l'avais pas terminé à temps...

Vous me direz, encore faut-il quelqu'un à proximité qui puisse intervenir. A chacun de résoudre ce problème ;)

Cette année... C'est fait ! Et... ça marche !

C'est mon premier projet arduino, et je n'avais pas fait de C depuis environ 16 ans...

J'ai tout mis là : https://github.com/reivaxy/aquaMonitor en open-source pour les bricoleurs.
Hors boitier et support je pense qu'il y en a pour moins de 80€ (arduino, module GSM, écran, capteurs... inclus !).
Il vous faudra un fer à souder :)

Désolé j'ai cédé à l'anglais qui est assez dominant dans le monde de l'open source (et puis ça fait bien sur un CV). Et puis surtout, l'afficheur ne connait pas les caractères accentués, et bien qu'on pourrait les programmer, ils seraient très moches.
Tous les messages sont cependant regroupés dans un fichier séparé, il est donc facile de tout traduire, mais sans accents c'est pas terrible.
Si vous avez besoin d'explications, n'hésitez pas à poser des questions.

Comme je dispose d'une imprimante 3D, j'ai réalisé le boitier et le support des capteurs, mais il est bien évidemment possible d'utiliser un boitier du commerce, et d'autres types de supports.

Le point un peu délicat est le circuit imprimé. Soit vous avez de quoi en faire un vous même (en double face trous métallisés) soit vous le faites faire comme moi (je ne peux pas métalliser les trous).

Pourquoi SMS plutôt qu'internet ? En cas de coupure secteur, une simple pile suffit à permettre l'envoi d'un SMS, là où il faudrait un onduleur pour une box, et encore, si d'autres équipements en amont ne sont pas touchés...

Voilà un résumé des fonctions de l'engin:

La base est un arduino Mega (moins de 10€ sur ebay), car le UNO n'a pas assez de mémoire pour le programme et les variables (surtout les messages...).
Un transfo l'alimente en 12V, et une pile en 9V (cas de coupure secteur).
Il est équipé en plus d'une horloge temps réel (RTC) qui maintient à jour la date et l'heure, pour la reconnaissance des horaires d'extinction et d'allumage des rampes.
Il dispose d'une carte SIM (gratuite ou 2€ chez Free), et donc d'un numéro mobile.
Il connait un numéro de portable dit "principal", auquel il envoie des SMS d'alertes, et duquel il peut recevoir des commandes de configuration.
Il gère une liste de numéros secondaires auxquels il peut aussi envoyer les alertes (et qui peuvent aussi configurer certains paramètres).
On peut s'inscrire ou se désinscrire à cette liste en lui envoyant un SMS. Ainsi, la ou les personnes susceptibles d'intervenir en votre absence peuvent recevoir les alertes en même temps que vous.

Il affiche sur un écran le niveau de lumière courante, la température dans le bac, le niveau d'eau (haut/bas), et la présence de l'alimentation secteur.

Voici les événements qui déclenchent l'envoi d'un SMS d'alerte (et son affichage à l'écran) à tous les numéros inscrits:
Si le niveau d'eau devient "bas",
Si la température est au dessous d'un seuil minimum ou au dessus d'un seuil maximum,
Si le niveau d'éclairage est supérieur à un seuil maxi pendant les horaires d'extinction (Vous avez forcé l'éclairage et ne l'avez pas remis, par exemple),
Si le niveau d'éclairage est inférieur à un seul mini pendant les horaires d'alumage,
S'il y a une coupure secteur.

Un intervalle minimal entre deux alertes peut se régler pour chaque numéro mobile inscrit (pour éviter de recevoir un SMS par minute lors d'un problème).

Les paramètres température min et max, éclairage min et max, horaire d'extinctions, d'allumage, calibration du capteur de température, date et heure courante, sont tous paramétrés en envoyant des SMS au système.

On peut à tout moment interroger le système par envoi d'un SMS pour recevoir:
- les valeurs de tous les paramètres de réglage,
- l'état du bac: éclairage, température, niveau d'eau, présence du secteur.


Voici l'appareil:



Les capteurs installés:



Une capture d'écran de SMS échangés:




Je continue de travailler dessus, j'ai encore quelques idées d'améliorations et d'évolutions, notamment une liaison wifi ou bluetooth entre modules permettant d'équiper plusieurs aquariums mais en utilisant une seule ligne téléphonique.

Je dois également ajouter les indications pour trouver les différents composants (achetés pour la plupart sur ebay, en chine, pour quelques euros).
Le plus cher est la carte GSM qui coûte un peu moins de 30€, puis le circuit imprimé intermédiaire.

Voilà, c'est très sympa à réaliser, encore plus à faire marcher, si vous vous lancez dans l'aventure, racontez moi !

reivaxy

Deux dispositifs sont en fonctionnement 24h/24 depuis environ 6 mois, ça marche très bien.

J'ai corrigé un problème déclenché par un SMS de spam ... merci la pub...

Depuis j'ai pu réaliser le prototype avec Wifi, qui se connecte au réseau wifi de la maison pour envoyer les mesures d'éclairage et de température sur un site web, sur lequel il est alors possible de les consulter sous forme graphique.
La base de donnée est prévue pour enregistrer les données de plusieurs aquariums de plusieurs utilisateurs, il y aura donc un système d'authentification, et de clé d'API.
Le site web que j'ai créé est encore très sommaire :) :
http://www.reeftankalert.com/chart.php

Le module Wifi ESP8266 (qui est vraiment un truc génial qui coute 2 ou 3€) crée également un réseau wifi local sur lequel il expose une webApp permettant de voir les mesures et de configurer tous les paramètres:




al1fch

Bonjour

Très belle réalisation !!
La coopération  Arduino Mega - ESP8266 est intéressante.
Merci pour le partage !!

Deux remarques et une question :
-le choix de l'anglais pour la description du projet , tout en élargissant l'audience, va refroidir quelques francophones désirant réaliser le système
-un schéma (dit de principe) apporterait des informations permettant de mieux comprendre les relations entre sous-ensembles . Un plan de câblage Fritzing ne suffit pas. (il montre avec plus ou moins de netteté '"ou mettre les fils".)
-la pile 9V permet-elle réellement au module GSM d'envoyer à coup sûr son SMS d'alerte ?  (pics de courant dans le module GSM)

reivaxy

Merci :)

Pour l'anglais, hé bien je dirais que c'est l'occasion de s'y mettre :)
Mais plus sérieusement, je suis sur des forums aquariophiles en langue anglaise, alors bon...
Certains forums français sont pas mal mais contrairement aux anglo-saxons, les gens sont plus prompts à la critique stérile (ça existe déjà, ... Etc) qu'à s'intéresser.
Oui c'est vrai il manque pas mal de choses comme le schéma, la nomenclature. Même le frtizing n'est pas à jour et le pcb non plus, pour ce qui est du wifi.
Cela dit il y a finalement assez peu de composants.
Faut vraiment que je m'y remette.

al1fch

je lis ça et là que les modules GSM présentent des pics de courant allant jusqu'à 2A (aucune praatique perso à ce jour, je me limite aux pics de courant des modules Wifi !!)). la  pile 9V assure-t-elle  réellement au point que tu mises sur elle pour la sécurité de l'aquarium ?

reivaxy

Ah oui pardon j'ai oublié de répondre à ce point. Oui en effet ça tire bien.

J'ai fait pas mal d'essais, ça marche. On voit une légère baisse d'intensité lumineuse sur l'afficheur.

Il y a 6 semaines j'ai dû changer une photo résistance que je n'avais pas encore enrobée de résine époxy, et qui a été endommagée par une goutte d'eau salée, j'ai donc commencé par débrancher le boitier, et j'ai reçu le sms de Power down, alors que ça faisait bien 5 mois qu'il était en fonctionnement.
La pile n'est quasiment jamais sollicitée, j'habite à Paris où les coupures sont rarissimes.

Mais si ça devait arriver, la pile ne durerait vraiment pas longtemps, c'est certain, mais assez pour envoyer un sms.
Par contre il faudrait que je pense à faire le test de temps en temps, je n'ai pas de surveillance du niveau de la pile. Ce pourrait être une amélioration.

reivaxy

Tiens je viens de le tester sur mon boitier (l'autre est chez un ami), ça a marché et même sans baisse de luminosité de l'afficheur (il est de couleur rouge, l'autre sur lequel je voyais une baisse est bleu, et ça se tient, la tension d''alim des leds bleues de retro éclairage est plus élevée que celle des rouges)

al1fch

Mon interrogation découle de la résistance interne élevée des piles 9V (pile, au sens initial  du mot, de 6 petits éléments d'1,5V). La Duracell Plus 9V chute très vite avec un courant de décharge de 250mA (doc jointe)

Elle a donc , dans sa dégringolade, le temps d'envoyer le SMS avant d'atteindre la tension mini nécessire au module.


reivaxy

Et j'ai répondu à ton interrogation, ça marche :)
Je pense que le pic est très bref.

al1fch

Merci, c'est bon à savoir !!  ;)

D'après le  Frtizing la carte GSM serait le shield GSM Arduino (chip Quectel)
En regardant la photo et le schéma de cette carte  je vois un excellent condensateur de 2200µF (pavé orange) sur l'alimentation Vbat du module GSM, d'autres condensateurs sont en parallèle.
La pile 9V n'est pas toute seule quand il faut faire face aux brèves demandes intenses de courant !!

Un module GSM  économique SIM800L (ou avoisinant) aurait peut être quelques difficultés à envoyer le SMS.....

reivaxy

Pour le fritzing j'ai pris ce qu'il y avait de dispo dans la librairie, ce n'est pas un schéma de référence.

J'ai utilisé le module GSM le moins cher que j'ai trouvé à l'époque, à savoir SIM900 :
http://www.ebay.com/itm/SIM900-Quad-band-GSM-GPRS-Shield-for-Arduino-UNO-MEGA-Leonardo/321418410538

Depuis j'ai vu moins cher mais je suis resté fidèle à celui-ci sachant qu'il marche assez bien.


reivaxy

La doc mentionne bien des pointes à 2A.

En plus dans mon montage la pile est connectée via une diode afin de ne pas envoyer de courant vers la pile lors qu'il vient de l'adaptateur secteur, donc il y a déjà 0.6V de chute de tension.

Je ne connais pas le fonctionnement des cartes GSM mais est-il envisageable qu'elle adapte la puissance en fonction du besoin ? Si elle est proche d'une antenne et reçoit un signal fort, peut être qu'elle émet un signal moins puissant que si elle est plus éloignée ?
En plein Paris, elle n'a peut être pas trop à forcer...

Nicolascere

Bonjour, je suis ce topic avec attention !

Il est tout simplement passionnant. J'aimerais réaliser le même type de système avec envoi de sms quand le niveau d'eau et trop haut.

-quel capteur me conseiller-vous pour une précision sans faille ?

reivaxy

Bonjour,

Les capteurs de niveau que j'utilise fonctionnent sans faille depuis plus de trois ans.

Ils sont de ce type : https://www.ebay.com/itm/Electric-High-New-Quality-Tank-Float-Switch-Liquid-Sensor-Water-Level-Pool/142241113490

Ils sont "tout ou rien", c'est un ILS (interrupteur à lame souple) déclenché par un aimant dans le flotteur. ça ne permet pas de connaitre le niveau exact mais seulement si c'est au dessous au en dessous d'un seuil, fixé par la position du capteur.

Je les utilise pour détecter une baisse de niveau mais il peuvent parfaitement être utilisé pour détecter une hausse, il suffit de les mettre soit plus haut, soit là tête en base, selon que l'on veut que le contact soit ouvert ou fermé au repos.

Il faut parfois les nettoyer car des algues peuvent gêner leur fonctionnement.

Wabbina

Bonjour,
je suis très intéressé par le projet que je trouve très passionnant. Je souhaiterais réaliser ce projet. Quel est le type de module GSM me conseillerez-vous de prendre?
Merci d'avance



Go Up