Projet d'automatisation de renouvellement d'eau pour aquarium

Bonsoir à tous,

j'ai pour projet d'automatiser les renouvellements d'eau de mon aquarium.
Je souhaiterai dans un premier lancer le programme via bouton poussoir et par la suite si c'est stable, l'automatiser avec un module RTC.
Le bac (aquarium) est percé au fond pour y faire passer une crépine, elle me sert d'arriver d'eau et de vidange.

Programme :
Si bouton poussoir 2 est activé, ouvrir l'électrovanne de vidange, dés que "la valeur basse" est détecté fermer l'électrovanne de vidange et ouvrir l'électrovanne d'arriver d'eau,
dés que "la valeur haute" est atteinte fermer l'électrovanne d'arriver d'eau.

Liste de composant (module, alimentation, carte ...):

-Carte arduino uno
-Alimentation arduino
-Carte 4 relais
-Alimentation 12v
-Flotteur
-Capteur ultrason HC-SR04
-Bouton poussoir
-Porte filtre
-Filtre charbon

Ca fait pas mal de temps que je me renseigne sur le sujet, j'ai regardé pas mal de post ici et ailleurs. j'ai quelques bases en python et j'ai fais quelques TP basiques en C++ avec arduino.
Je poste ce projet ici pour dans un premier temps voir si je suis dans la bonne direction niveau hardware et je pense devoir être aiguiller pour le code.

Vos avis et suggestions sont les bienvenues, au plaisir de vous lire.

Oui ça va dans le bon sens.

Je doublerai la détection de niveau par exemple avec des détecteurs de type flotteurs qui vont couper le courant automatiquement si trop plein ou trop vide

Je rajouterai des mécanismes physique de protection: un tuyau qui va directement dans la vidange en cas de trop plein (remplissage qui plante) et pour le changement d’eau, idéalement le code même s’il plante ne devrait pas pouvoir vider tout l’aquarium (laisser un peu d’eau pour ne pas tuer les poissons si d’aventure votre code n’est pas bon ou défaut hardware).

2 Likes

Je pose aussi la question de la détection de niveau par ultrasons, qui convient bien aux humains, mais pas forcément aux animaux... Une détection par flotteur ou par pressostat permet d'avoir un remplissage permanent, désactivé seulement en cas de vidange.

Avec une détection par flotteur ou pressostat permettrait plus difficilement la détection du niveau bas qui pourrait être réalisée par une mesure du temps (on vide pendant 5 minutes par exemple)

Merci pour vos réponses.
Effectivement bonne idée pour la protection par flotteur, je n'y ai pas pensé, je vais m'en procurer un, après je ne sais pas quel module utiliser pour couper le courant, le but serait de bypasser le soft et de sectionner directement en hardware?
Pour ce qui est de ne pas vider l'aquarium complètement en cas de beug ou autre, la crépine se trouve à 20/30 cm du fond ce qui permet de ne pas pouvoir vider l'aquarium intégralement et de laisser de l'eau.
Effectivement peut être pas adapté aux animaux, mais le capteur serait en marche seulement pendant le programme de changement d'eau donc 30 min par semaine et peut être un check de 1 min tous les 2 jours pour contrôler le niveau et le réajuster si besoin.
Un délai pourrait convenir également pour le niveau bas, le seul hic c'est que si pour X raison la crépine est partiellement obstrué, la vidange ne serait pas suffisante, c'est un des seul inconvénients que j'y vois.

Il n’y a que 8 impulsions à 40kHz qui sont émises pour mesurer une distance, soit pendant 0,2 ms - je n’y connais pas grand chose dans ce domaine mais je me dis que c’est quand même très très court pour créer un souci…

Il ne s'agit pas forcément de couper le courant, mais de mettre le courant pour le remplissage si le niveau est trop bas et si on n'est pas en train de vidanger.

Prévoir peut être un piezo pour avertir en cas de problème (vidange ou remplissage trop long par exemple)

Salut @fishton.
Jetez un oeil à ces flotteurs. LIEN, LIEN.
Vous voudrez peut-être repenser votre façon de faire les choses.
Salutations.

Voici une bonne sécurité anti-débordement :

Il faut simplement avoir un peu de place derrière le bac, ou sur le côté. Le bac d'évacuation est en plexiglas.

C'est le principe que j'avais utilisé il y a longtemps pour un bac de 300L.
Le remplissage était permanent, au goutte à goutte. 1 goutte toutes les 4 secondes = 150L/mois.
Aucune électronique.

Si l'on veut pouvoir vider le tiers du bac, il faut que le bac d'évacuation soit plus profond.

Oui ca peut être une solution de repérer le niveau haut avec le flotteur et pourquoi pas le coupler avec le capteur ultra son.

Je viens de commander le flotteur horizontal celui du deuxième lien, merci !

J'y avais pensé, ca pourrait être une solution, mais vu que le bac est complètement fermé et je n'ai pas de place derrière, j'ai abandonné l'idée du débordement et je suis plus partisan du renouvellement d'un coup toute les semaine ou tous les 15 jours.

Merci pour vos réponses ! J'édite le premier message du post au fur et a mesure de l'avancement.

Je pense donc que le compteur à ultrasons n'est plus nécessaire.

Pour la valeur basse ca peut être bien non? En plus ca fait une sécurité (redondance) pour la valeur haute si un des 2 capteurs lâche.
Couper l'électrovanne d'arrivée d'eau si le flotteur détecte le niveau haut ou si le capteur ultra son détecte le niveau haut.

En tout cas, je ne recommande pas le HC-SR04 dans une atmosphère humide. Il vaudrait mieux partir sur un modèle étanche car même si le capteur n'est pas dans l'eau la condensation et les éclaboussures seront un vrai problème.

Effectivement, je vais regarder pour un capteur étanche. Merci pour ton retour.

Attention : https://forum.arduino.cc/t/capteur-jsn-sr04t/938424
Je ne suis pas le seul à avoir des problèmes avec ce capteur. Deuxièmement, distance minimale de mesure = 20cm.

Dans un premier temps, je pense déjà essayer avec la sonde HC-SR04 classique en protégeant le circuit imprimé et les connectiques par de la colle (pistolet à colle) et / ou de la gaine thermo. A voir si ca tient dans le temps avec les conditions d'hygrométries élevées et laisser les 2 capteurs tel quel.
Sinon il existe également ce modèle de sonde: lien

lien
Si je prends le modèle de sonde ci dessus, il faut la prendre en PWM pulse with ou UART serial port pour être compatible avec la carte Arduino ?

Les deux, mais la description est insuffisante.
PWM : quelle relation entre la rapport cyclique et la distance.
UART : quelle vitesse ? quel protocole ?

Description un peu plus explicite
Mais suffisante ?