Go Down

Topic: Domogarden: Gestion de piscine et arrosage intégré (Read 52682 times) previous topic - next topic

floard

Bonsoir je voudrais savoir comment on fait pour du PH plus a la place du PH moins ?

Merci d"avance.

tartiflette

#181
Sep 30, 2018, 09:18 pm Last Edit: Sep 30, 2018, 09:19 pm by tartiflette
Bonsoir,
Il faut modifier le code dans la page "permanent", partie injection Ph.

Modifier le code de la façon suivante (signes et seuils):

    ///////////////////// Injection, consigne 7.4 /////////////////
    // si 7.4 > ph => 7.25 (20% injection) Ton=120 Toff=480
    if ((filtrationON == 1) && (ph_value_float >= (seuil_ph - 0.15)) && (ph_value_float < seuil_ph) && (StartInjectionPh == 0)){     
        TonPh = 120;
        ToffPh = 480;
        StartInjectionPh = 1;
        CyclePh = 20;
    }
    // si 7.25 > ph =>7.10 (50% injection )Ton=300 Toff=300
    if ((filtrationON == 1) && (ph_value_float >= (seuil_ph - 0.30)) && (ph_value_float < (seuil_ph - 0.15)) && (StartInjectionPh == 0)){
        TonPh = 300;
        ToffPh = 300;
        StartInjectionPh = 1;
        CyclePh = 50;
    }
    // si 7.10 > ph =>6.95 (75% injection) Ton=450 Toff=150
    if ((filtrationON == 1) && (ph_value_float >= (seuil_ph - 0.45)) && (ph_value_float < (seuil_ph - 0.30)) && (StartInjectionPh == 0)){
        TonPh = 450;
        ToffPh = 150;
        StartInjectionPh = 1;
        CyclePh = 75;
    }
    // si ph < 6.95  (100% injection) Ton=600 Toff=1
    if ((filtrationON == 1) && (ph_value_float < (seuil_ph - 0.45)) && (StartInjectionPh == 0)){
        TonPh = 600;
        ToffPh = 1;
        StartInjectionPh = 1;
        CyclePh = 100;
    }
    // si ph > seuil ph  -> pas d'injection
    if ((ph_value_float >= seuil_ph) && (StartInjectionPh == 0)){
        injection_phON = 0;
        CyclePh = 0;
    }

fafidio

#182
Oct 14, 2018, 08:22 am Last Edit: Oct 14, 2018, 10:26 am by fafidio
Bonjour a tous.
Finalement, après deux ans de travail et de tests, j'ai presque atteint la fin du projet.
Je voudrais encore une fois remercier Tartiflette d'avoir partagé son projet. En raison d'erreurs dans la lecture des sondes, j'ai dû abandonner les cartes Phidjet, optant pour un système moins cher et opto-isolé appelé Edulcowater (acheté sur eBay). L'appareil dispose déjà de l'étalonnage des sondes intégrées. J'ai donc dû modifier le code d'origine pour la lecture en série des sondes et j'ai supprimé toute la partie de l'étalonnage. Aussi, ayant un électrolyseur au sel, j'ai modifié le code pour avoir une modulation de la puissance au lieu du contrôle de la pompe à chlore.
Enfin maintenant j'ai toujours contrôlé et purifié l'eau.
Merci encore au concepteur du projet et à tous ceux qui m'ont aidé à apporter les modifications nécessaires pour arriver à la fin du projet.











TheLapin

Bonjour

Je me lance moi aussi dans l'aventure avec, au programme :
 - régulation temps d'électrolyseur via Redox
 - gestion temps de filtration selon la température + hors gel
 - capteur de pression (nettoyage du filtre)
 - sans doute de l'arrosage dans un second temps

Cependant, je pense qu'il y aura quelques différences par rapport au SUPER projet de Tartiflette :

 - mon électrolyseur doit fonctionner au moin 4h10 pour avoir l'inversion de polarité dans le cycle donc je dois adapter le temps de filtration et le redox en fonction
 - ma pompe est une pompe a vitesse variable donc le capteur de pression/électrolyseur ne doivent pas fonctionner des le démarrage car la pompe est en amorçage donc a fond
 - je vais étudier la possibilité de commander la puissance de l'électrolyseur et la vitesse de la pompe (l'équipement étant sous garantie, je vais différer la chose
- j'ai plein d'autres idées...(d'informaticien !!! : conso, temps de fonctionnement des sondes, de l'électrode, bouton de mode manuel, etc..)

Le code de tartiflette est très propre. bravo

Personnellement j'aurais ajouté des #define pour activer/désactiver chaques fonctions facilement (arrosage, pompe PH, etc...)) et un numéro de version dans la ROM pour effectuer l'init automatiquement et gérer les évolutions futures dans perdre le paramétrage

Pour l'IHM, je ne sais pas si je fait comme vous ou si je code un menu avec un afficheur 16x2 ou 20x4 et quelques boutons.

J'ai quelques question pour vous :
 - dans quel boite avez-vous mis votre Arduino/relais/transfo ? (mon local n'est pas du tout isolé/étanche)
 - quel transfo utilisez-vous (j'ai vu des montages a base de 7805. vous avez des liens ?)
 - comment faite-vous les branchements entre l'Arduino et le reste (soudure, fils de tests, ...)


@fafidio : votre installation est d'une propreté exemplaire


tartiflette

Bravo ! C'est du très bon boulot, et très propre.
Ça fait plaisir :-)

TheLapin

J'ai quelques question pour vous :
 - dans quel boite avez-vous mis votre Arduino/relais/transfo ? (mon local n'est pas du tout isolé/étanche)
 - quel transfo utilisez-vous (j'ai lu des montages a base de 7805. vous avez des liens ?)
 - comment faite-vous les branchements entre l'Arduino et le reste (soudure, fils de tests, Shield...)
 - sur un autre forum, quelqu'un a fait un équivalent . Cependant, il avait déjà une régulation de PH. Du coup, il a mis un 1130 et un T BNC pour lire la même sonde que son regulateur. Vous pensez pas qu'il y a un risque ?
 - quel environnement de Dev utilisez-vous ? (Arduino IDE, Eclipse, Visual Studio, Amtel Studio ?)

un petit Up + quelques autres questions

tartiflette

Bonjour,

Pour le boitier, j'ai utilisé ça:

boitier

Pour le transfo, un simple adaptateur 5V exterieur au boitier.
Il y a deux régulation 5v à base de 7805.
Le problème avec ce système, c'est que les 7805 chauffent breaucoup. Surtout l'été, et ça abime les composants. Mon afficheur LCD est HS, je pense à cause de ça. Je dois trouver une solution pour palier à ce problème. J'ai pensé à une petite alim a découpage, mais j'ai peur des harmoniques parasites.

Pour le câblage, le mieux c'est de tout souder. Le minimum de connecteurs. Pour bien faire, il faudrait un faire un PCB.

L'environnement de develepoment est l'outil est l'IDE arduino.

TheLapin

Pour le transfo, un simple adaptateur 5V exterieur au boitier.
Il y a deux régulation 5v à base de 7805.
Le problème avec ce système, c'est que les 7805 chauffent breaucoup. Surtout l'été, et ça abime les composants.
Le transo 5v n'est pas déjà un transfo à découpage ?
C'est très étrange que les 7805 chauffent avec une entrée en 5v.
Pour les parasites, je vois bien une self pour faire un pont LC dans la régulation.

L'environnement de develepoment est l'outil est l'IDE arduino.
Finalement, je suis parti sur Visual Studio avec Visual Micro qui permet de faire du debug pas a pas. et sur un écran 20x4 avec 4 bouton pour la partie affichage et pilotage (en plus du pilotage directe via app mobile).

Je n'ai pas encore étudié ton code sur le temps de filtration selon la température mais je ne vais pas pouvoir appliquer le même algo car ma sonde de température sera connecté au tuyau de refoulement donc il faut que la filtration soit en marche pour avoir la bonne température.
Du coup, je vais mettre plutôt une heure de départ fixe (le matin à 7h ou 8h selon la saison) et faire varier l'heure de coupure selon la température avec la regle du T°/2).

Je vais aussi appliquer le même algo pour l'hivernage : T°/3 en hiver et départ la nuit à 1h du mat (+un capteur T° de l'air qui met la pompe en marche forcé pour le hors gel)

Dans la série des questions : quelqu'un sait comment fonctionne un électrolyseur au sel au niveau de la cellule ?
je voudrais essayer de récupérer l'info d'inversion de polarité sans perturber la cellule mais je ne sais pas comment faire, ni a quel tension fonctionne celle-ci (un transistor + opto coupleur ?). Si quelqu'un a des infos la dessus, je suis preneur.
L'idée et d'asservir la production de chlore via le redox et de faire fonctionner l'électrolyseur suffisament longtemps pour avoir l'inversion de polarité.

Il me manque encore plein de choses mais je m'éclate a mettre tout ça en place.

tartiflette

Je viens de me rendre compte que j'ai dit une bêtise.
Ce n'est pas une alimentation 5V, mais 9V pour que le 7805 puisse réguler correctement. Peut-être metre un LDO ?

Le filtre LC peut-être une bonne solution



fafidio

Quote
Dans la série des questions : quelqu'un sait comment fonctionne un électrolyseur au sel au niveau de la cellule ?
je voudrais essayer de récupérer l'info d'inversion de polarité sans perturber la cellule mais je ne sais pas comment faire, ni a quel tension fonctionne celle-ci (un transistor + opto coupleur ?). Si quelqu'un a des infos la dessus, je suis preneur.
L'idée et d'asservir la production de chlore via le redox et de faire fonctionner l'électrolyseur suffisament longtemps pour avoir l'inversion de polarité.

Il me manque encore plein de choses mais je m'éclate a mettre tout ça en place.
e m'excuse pour la traduction: il pourrait y avoir des erreurs dues à google.
Mon électrolyseur fonctionne avec un régulateur de puissance et vous pouvez choisir d'inverser la polarité après 2-3 heures ou 4. Il est également doté d'un bouton marche / arrêt pour allumer l'appareil. J'ai donc résolu le problème en connectant les boutons + et - des deux électrolyseurs Arduino et le bouton marche / arrêt à un autre relais. J'ai modifié le code de la tartiflette avec cinq seuils d'oxydoréduction et avec un cycle "pour", je peux savoir dans quel intervalle l'électrolyseur doit intervenir: le code active donc les relais + et - pour donner le bon courant à l'appareil.
En ce qui concerne l'alimentation, j'ai utilisé une switching qui ne pose pas le problème de la surchauffe.

pjlet

Bonsoir

je suis tombé sur cet article par hasard et après avoir commencé à étudié le code , quel boulot ! bravo à tartiflette.

je vais commencé l'automatisation de ma piscine par un système un peu différent du votre car je suis équipé en domotique knx avec un superviseur lifedomus mais le travail accompli va m'aider grandement dans mes réflexion.
je vais utiliser un module knx arcus avec sonde ph & orp .

@ tartiflette : si jamais tu avais un ordinogramme de réalisé je suis preneur, sinon je vais faire du reverse engineering loll


concernant la gestion d'un électrolyseur, je serais preneur de retour d'expérience. je pensais simplement agir en mode On & Off . logiquement l'appareil mémorise le temps de fonctionnement pour qu'il fasse son inversion de polarité convenablement.
Est ce que vous avez des modèles à conseiller ?

merci de votre aide

pierre jean

ParisBrest

#191
Dec 04, 2018, 06:45 pm Last Edit: Dec 05, 2018, 08:59 am by ParisBrest
concernant la gestion d'un électrolyseur, je serais preneur de retour d'expérience. je pensais simplement agir en mode On & Off . logiquement l'appareil mémorise le temps de fonctionnement pour qu'il fasse son inversion de polarité convenablement.
Est ce que vous avez des modèles à conseiller ?

Bonsoir,
J'ai modifié un peu le code de Tartiflette pour commander l'électrolyseur en mode on/off.
Si le Redox est trop faible, une tempo ajustable démarre avant de mettre en route l'électrolyseur pour être certain que la filtration est lancée.
A chaque minute de fonctionnement un compteur s'incrémente jusqu'à atteindre la consigne d'inversion de polarité (par défaut 60 min)
Les bornes + et - passent par 2 relais, et s'inversent au bout de ce temps choisi.
Il y a une sécurité qui éteint l'électrolyseur quelques secondes pendant l'inversion.


TheLapin

Si le Redox est trop faible, une tempo ajustable démarre avant de mettre en route l'électrolyseur pour être certain que la filtration est lancée.
A chaque minute de fonctionnement un compteur s'incrémente jusqu'à atteindre la consigne d'inversion de polarité (par défaut 60 min)
Les bornes + et - passent par 2 relais, et s'inversent au bout de ce temps choisi.
Il y a une sécurité qui éteint l'électrolyseur quelques secondes pendant l'inversion.
Ce que j'ai prévu de faire :
 - pas d'électrolyse si la pompe n'est pas en marche depuis un temps réglable (a chaque démarrage, j'ai 2 minutes d'amorcage a fond)

 - il faut 2 points de consigne : une basse et une haute : si le redox est sous le niveau bas, il démarre l'electrolyseur jusqu'a atteindre le niveau haut (sinon, l'électrolyseur va passer son temps a s'allumer/s'éteindre autour du point de consigne ce qui n'est pas bon.

 - dans ton système, c'est toi qui gère manuellement l'inversion de polarité. Pour ma part, l'électrolyseurs a déjà un mécanisme automatique. Il faut juste que je trouve un moyen d'envoyer l'inversion à l'Arduino (diode + résistance + opto ?). Dans l'idée : des que je suis au point de consigne haut, si le cycle d'inversion n'arrive pas dans les x minutes qui suivent, je peux couper l'electrolyseur. Sinon, je le laisse en marche sns dépasser une valeur max absolue.

 - l'inversion est plutôt de l'ordre de 3-4 h de marche et pas plus de 10 minutes



ParisBrest

#193
Dec 05, 2018, 11:10 am Last Edit: Dec 05, 2018, 02:10 pm by ParisBrest
C'est à peu de choses près, ce que j'ai :
- l'électrolyse fonctionne seulement si la filtration est en route ET si le Redox est trop faible ou si l'électrolyseur est en marche forcée. Si l'électrolyseur doit fonctionner, cela ne se fait qu'après la tempo réglable.
- Il y a 2 points de consigne, un haut et un bas, dans le projet de Tartiflette, qui commandent la pompe à chlore : je n'ai pratiquement pas modifié cette partie
- mon électrolyseur est un Dytech Chlornett qui gère normalement le temps de fonctionnement et l'inversion, selon la température du bassin. Avec l'arduino, l'électrolyseur est en mode manuel.
- l'inversion est réglable mais j'ai choisi une vraie alternance, 2 heures dans un sens, 2 heures dans l'autre, par exemple. Penses-tu que cela pose un problème ?

TheLapin

Je ne suis pas un expert mais il me semble que les électrodes positive et négative ne sont pas faite de la même composition.
Perso : si tu contrôle l'inversion, je mettrais la même chose que ce que fait ton electrolyeur en automatique. (chez Zodiac, c'est 10 minutes d'inversion toutes les 3h il me semble).
J'ai lu quelque part que pendant l'inversion, il n'y avait pas de production de chlore.

Après, ton appareil est déjà relativement automatisé (régule de PH et commande de filtration selon la t°).
(je n'ai pas compris ce que vient faire la t° dans la production de l'électrolyse)


Go Up