variateur extra + gestion placo à base d'arduino


Messages recommandés

Edit :

 

Yop,

 

 

Alors, voilà ma vision du placo automatisé par arduino.

 

Le placo en lui même est très simple : lampe cfl, intra, extra et brassage. L'extraction est régulée par un autotransfo, il y a donc 4 vitesse possibles.

 

Une sonde et une horloge servent au programme à déterminer ce qu'il faut allumer, ou pas.

 

Le tout est pensé comme un appareil complètement indépendant. Donc, pas de monitoring, ni de connexion réseau. Tous les réglages se font par un system de menus affiché sur un petit écran et commandé par 3 boutons.

 

Il y a en tout 66 valeurs éditables, mais la plupart sont redondantes du fait d'une classification par mode correspondant à l'étape de développement de la plante.

 

post-772885-0-44318000-1381243823_thumb.png

 

L’allumage de la lampe est déterminée par le temps réel, par l'heure du début de la journée (virtuelle) et la durée du jour. Les autres paramètres sont donc calés sur ce principe jour/nuit virtuel.

 

La gestion de l'extraction (nuit) et du brassage (jour et nuit) est une succession de periodes ON et OFF dont les durées sont éditables.

 

post-772885-0-21740900-1381243841_thumb.gif

 

L'autotransformateur permet de faire varier la vitesse de l'extraction. J'ai mis 4 vitesses différentes + le OFF. Il est techniquement possible d'aller jusqu'à 13 vitesses en augmentant le nombre de relais.

 

Le programme choisis la vitesse en fonction de la température et de l’hygrométrie renvoyés par la sonde et des paramètres choisis.

 

post-772885-0-57962400-1381243832_thumb.png

 

Note : - Des paramétrés d'hygro spécial nuit sont inclus car ça monte fort.

- Une Hystérésis est simulée : un délais de 5 minutes est appliqué avant de rabaisser la vitesse.

 

L'intraction est dépendante de l'extra. Elle ne s'allume qu'à partir d'une vitesse d'extra choisie.

 

Liste de fournitures pour la réalisation :

 

-Un arduino

-Une horloge rtc 1307

-Une sonde DHT22

-un lcd 1602 avec module i2c

-3 boutons poussoir

-7 relais

-un auto transformateur "brut" avec une plage de sortie de 100 à 190V.

 

 

Le menu :

bouton 1 = bas

bouton 2 = droite

bouton 3 = entrée

 

On navigue donc avec bas et droite, et on active les choix avec entrée.

Les menus "retour" permettent de remonter d'un niveau si on appuis sur droite et de retourner à l'accueil si on appuis sur entrée.

 

 

 

Diagramme et codes code en page 2.

 

 

 

----------------------Message d'origine ---------------------------------------------------------------------

Salut les weedeurs,

 

je me lances à mon tour dans un projet de placo gèré par arduino. L'idée est voisine de l'automate v1 de Windaube.

 

Mon arduino devra piloter un placo de base comprenant :

 

-Une lampe cfl

-le brassage

-l'intraction

-l'extraction

 

les particularités :

 

-L'extraction est régulée un autotransformateur à plusieurs sorties. Je comptes me servir de l'arduino pour gérer plusieurs vitesses d'extractions.

 

-L'intraction ( un 14cm 12v de pc) s'allumera en fonction de la vitesse de l'extra

 

-Le brassage est indépendant et fonctionnera par intermittence.

 

-Les appareils gérées par l'arduino auront un mode jour/nuit.

 

-Tous les paramètres seront modifiables via un menu sur un écran et seront sauvegardés pour pallier à une éventuelle coupure de courant.

 

-Du coup, le système est complètement indépendant.

 

Coté matériel, je cible un boitier de contrôle de la taille d'un (gros) paquet de clops, c'est donc light : un arduino avr328, un écran 16*2 i2c, une horloge "tiny rtc", une sonde dht22, 2 cartes 4 relais, 3 boutons et un interrupteur à bascule.

 

 

C'est coté software qu'il y aura beaucoup de taff (ambition ambition^^)

 

-pour la navigation, je me base sur un menu "cercle" à pointeurs.

 

-Je reprend l'idée de "modes" de windaube.

 

-Tous les paramètres sont sauvegardés en dur. Au démarrage, l'arduino chargera juste ce qu'il faut.

 

-Tout ce qui fonctionne par cycle court, comme le brassage ou l'extra la nuit, dépendra d'un système de timers fonctionnant sur l'horloge interne de l'arduino.

Ça imite ces prises programmables mécaniques avec la roue dentée. Sauf que là, on a que 2 fréquences, jour et nuit. Par contre, on peu jouer sur l'écart, par exemple 10 minutes allumées, 5 minutes éteinte pour l'extraction de nuit, c'est codé sur 8 bits, donc de 0 à 255 minutes.

 

Progression :

 

Shemat circuit : 95%

Circuit final = 5%

 

programmation :

constantes : 95%

variables : 95%

eeprom : 100%

initialisation : 100%

menu principale: 98%

éditeur de modes : 100%

éditeur horaires : 20%

fonctions reset mode : 5% (papier)

fonction timers : 90%

fonction jour/nuit : 100%

fonctions pré-relais : 0%

fonctions relais : 20%

Modifié par Dazzle
Lien à poster
Partager sur d’autres sites

Yop,

 

Alors, le changement de vitesse se fera dès le passage d'un seuil de température ou d'un seuil d'hygro d'hygro.

Le truc est prévu pour 4 vitesses.

 

exemple :

 

vitesse 1 (minimum) par défaut

vitesse 2 temp > 26° ou hygro > 60%

vitesse 2 temp > 29° ou hygro > 70%

vitesse 3 temp > 31° ou hygro > 80%

 

Les seuils sont évidement réglable pour chaque mode, ce sont les mêmes pour la nuit sauf qu'on peut désactiver les vitesses pour le bruit.

 

++

Lien à poster
Partager sur d’autres sites

ok

penses a temporiser tes enclenchement/ déclenchement

genre à 26°C la vtesse 1 s enclenche au bout de 15/30sec , quand la tempé descend : la vitesse 2 reste 1min ON

ça évite les court cycle, les moteurs n aiment pas trop ça

A++

Lien à poster
Partager sur d’autres sites

Salut,

 

Pour les seuils de déclenchement, il te faut une valeur montante et une valeur descendante. De plus, fait gaffe à ce que tu stockes sur l'eeprom, sinon tu vas la flinguer.

 

@++

 

Yop,

 

L'eeprom n'est écrite que lorsque l'on édite un paramètre le reste c'est que de la lecture. Elle a entre 100 000 et 1 000 000 de cycle d'écriture avant de claquer. Donc ça va, c'est pas comme si je m'en servais pour des logs.

 

Par valeur descendante, tu veux dire que l'on descend d'une vitesse que lorsque l'on passe à une valeur inférieur à celle qui a servie au déclenchement de cette vitesse ?

Modifié par Dazzle
Lien à poster
Partager sur d’autres sites

Plop,

 

Par valeur descendante, tu veux dire que l'on descend d'une vitesse que lorsque l'on passe à une valeur inférieur à celle qui a servie au déclenchement de cette vitesse ?

 

Je veux dire que si tu passes de la vitesse 2 à la vitesses 3 à 31°C, il ne faut pas que tu repasses de la vitesse 3 à la vitesse 2 quand la température descend en dessous de 31°C, mais quand elle descend en dessous de 29°C par exemple (de souvenir l’hystérésis est de 2°C sur les GSE).

 

Et il en est de même pour l'HR, sauf que pour l'HR, il conviendrait en plus de faire une médiane sur plusieurs relevés afin de virer les mesures foireuses...

 

Avec 3 vitesses et deux paramètres, ça va être un peu compliqué niveau code et niveau branchement des relais... Avec deux vitesses, qui sont à mon sens amplement suffisante, tu te simplifierais grandement la tache.

 

Pour ce qui est de l'eeprom, si tu ne stocke que la conf, alors ça va, par contre il serait tentant de vouloir aussi y stocker un état en vu d'une reprise après redémarrage... D'où ma remarque.

 

 

Edit : un peu grilled par Deshaut.

 

@++

Modifié par T0uriste
Lien à poster
Partager sur d’autres sites

Ok

 

Mais le coup de la valeur descendante c'est pas parfait non plus.

ca veut dire que la valeur de passage à la vitesse 2 est située au croisement des courbes de températures.

Donc en clair on utilise le sinus pour gratter du temps et abaisser artificiellement la fréquence de changement de vitesses.

Mais on se retrouve toujours avec une temp qui varie à coup de pics, donc c'est une solutions qui sert quand on ne connait ni l'inertie du placo, ni le positionnement de la sonde, ni l'environnement.

 

La solution élégante serrait l'ajout d'une sonde extérieur qui indiquerais au programme si la variation de vitesse est faisable ou si c'est peine perdu et dans ce cas on cale la vitesse constante la plus adaptée.

 

Dans mon cas, la seconde sonde ce serra "un jour", et j'ai pas le courage d'élargir mes tableaux de données et me retaper toutes les fonctions qui les utilisent.

 

Il me reste 2 possibilités :

 

1-J'ajoute 2 "hystérésis" uniques, un temp et un hygro. dans ce cas, je me cogne le recorde de la partie qui choisis la vitesse à activer.

MAIS, vu que les seuils sont complètements personnalisables, qu'ils ont des paliers de 1° et 1% et qu'ils ne sont pas filtrés (un seuil v3 peut être inférieur au seuil v2), je dois refaire l'édition et ajouter une tonne de garde-fou pour empêcher les chevauchements et effets de bords. Et là, je perds grave en précision si le placo n'a que des faibles écarts.

 

2-J'ajoute un timer qui bloque un second changement de vitesse pour x minutes et là c'est fastoche. Je laisse la porte ouverte dans le code, mais je suis sur d'autres fonctions là.

 

Au fait, pour le choix de 4 vitesses, l'explication vient des relais.

A la base, j'ai juste l'usage de deux vitesses donc 2 relais, mais un mode max me serrait bien utile comme mode purge, donc 2 relais de plus.

Du coup, la 4e vitesse est bonus d'un point de vue matériel, elle me coute ni relais, ni port sur l'arduino. Donc, je l'intègre au code car elle n'ajoute pas de problème à la prog, c'est juste de la continuité.

Modifié par Dazzle
Lien à poster
Partager sur d’autres sites

yop,

 

La partie ui est terminée, elle bouffe moins de place que prévue.

Toutes les réglages du placo sont maintenant sur eeprom :

 

adresse (octet) / contenu et valeur

 

0 / si l'eeprom est bien initialisée, renvoie 1

1 / adresse du mode en cours d'utilisation

2 / heure du début du jour dans le placo

3 / minute du début du jour dans le placo

 

50-74 / mode cro

75-99 / mode flo

100-124 / mode fin de flo

125-149 / mode noir

 

150-249 / les 4 modes par défaut

 

Au lancement, l'arduino regarde quel mode est en cours, et charge ses réglages dans un tableau de 20 variables 8bit.

 

adresse / réglage contenu

 

0 / numero du mode (1=cro, 2=flo etc)

1 / adresse sur l'eeprom ou commence les données

 

2/ durée du jour en heures

 

3/ température d'activation d'extra vitesse 2

4/ " " " vitesse 3

5/ " " " vitesse 4

 

6/ Hygro d'activation vitesse 2

7/" " " 3

8 " " " 4

 

9/durée des ON de l'extra pdt la nuit

10/ " " OFF " " "

 

11-12-13 / les vitesses d'extra qui peuvent s'activent pdt la nuit

 

14 - vitesse de l'extra à partir de laquelle l'intra s'active le jour (off,1,2,3,4)

15-" " " " " la nuit " "

 

16-17 Durée ON et OFF du brassage, le jour

18-19 " " " " la nuit

 

Quand on veut éditer un mode, un tableau identique est chargé et on passe en revue les params un par un. A la fin, les données sont réécrites et le mode en cours est refresh.

 

post-772885-0-93042900-1379024381_thumb.jpg

 

Le menu est d'un minimaliste totale, c'est un multi-cercles, même genre que sur certains autoradio. L'avantage c'est qu'on a besoin que de 3 boutons pour le faire tourner : bas, droite et enter. je peux rajouter des éléments pour une maj mais faut une version simple sans le code autour pour pouvoir l’appréhender.

   accueil    [0]						    (f:0,d:1,r:0)
   stats    [1]						    (f:1,d:2,r:1)
   paramètres    [2]					    (f:2,d:0,r:3)
    modes    [3]					    (f:2,d:18,r:4)
	    activer mode    [4]		    (f:3,d:10,r:5)
		    mode cro    [5]		    (f:4,d:6,r:5)
		    mode flo    [6]		    (f:4,d:7,r:6)
		    mode flo+    [7]		    (f:4,d:8,r:7)
		    mode noir    [8]		    (f:4,d:9,r:8)
		    retour	    [9]		    (f:4,d:5,r:9)
	    editer mode	    [10]	    (f:3,d:17,r:11)
		    mode cro    [11]	    (f:10,d:12,r:11)
		    mode flo    [12]	    (f:10,d:13,r:12)
		    mode flo+    [13]	    (f:10,d:14,r:13)
		    mode noir    [14]	    (f:10,d:15,r:14)
		    reset mode    [15]	    (f:10,d:16,r:15)
		    retour	    [16]	    (f:10,d:11,r:16)
	    retour		    [17]	    (f:3,d:4,r:17)
    horaires		    [18]	    (f:2,d:26,r:19)
	    editer jour	    [19]	    (f:18,d:20,r:19)
	    editer durée jour [20]	    (f:18,d:26,r:20)
			    mode cro    [21]    (f:20,d:22,r:21)
			    mode flo    [22]    (f:20,d:23,r:22)
			    mode flo+    [23]    (f:20,d:24,r:23)
			    mode noir    [24]    (f:20,d:25,r:24)
			    retour	    [25]    (f:20,d:21,r:25)
	    retour		    [26]	    (f:18,d:18,r:26)
    retour	    [27]			    (f:2,d:3,r:27)

 

 

Je code les différent modules dans les sketch différents pour vérifier qu'elles fonctionnent bien. Puis je les regroupe petit à petit et j'observe le comportement du total avec les variables affichés sur le port série. Cela donne évidement des surprises à corriger^^

 

Les modules qui gèrent le temps et ceux qui gèrent les relais sont terminés aussi.

 

Il me reste donc cerveau qui dira quoi allumer en comparant le réel (temps et sonde) avec le tableau des modes. C'est la partie chiante parce que je dois tester avec des valeurs fausses, genre une seconde = 1 heure, temp qui fait du yoyo etc...

 

Sinon, pour le pilotage de l'autotransfo, je fais un truc du genre :

 

post-772885-0-78731400-1379024492_thumb.jpg

 

J'ai voulu éviter un risque provenant du software, mais je sais pas si électriquement c'est pas abérant. Un avis éclairé là dessus serrait le bienvenue ;)

 

Voilou, ++

Modifié par Dazzle
Lien à poster
Partager sur d’autres sites

salut

pourquoi tu t embetes a couper le N ?

tu as besoin de 3 relais ( un par vitesse qui passe par le transfo) et le 4eme en direct 220

1 0N=80V

2 ON =150V

3 ON = 190V

4 ON = 220V

Et tu mets des tempo a l'enclenchement plus élevé qu au déclenchement

 

Tu l as trouvé ou ton transfo? Il me plaît bien

Modifié par Deshaut
Lien à poster
Partager sur d’autres sites

Yop,

Ben, je l'ais dis, je veux pas qu'un bug me colle deux vitesses en même temps, sur la notice du transfo il y avait un avertissement là dessus.

En plus les "tempo" c'est des timers basés sur millis(), fonction qu'il faut encadrer car elle plante au bout d'un certain temps.

 

Là le code change pas vraiment, et j'évite 4 fils dans un sucre (je suis pas doué avec les sucres remplis de fils^).

 

L'autotransfo :

le mien 1.5A : https://pflanzburg.de...roducts_id=2556

la version 3.5 avec borne 0v et 230v en plus : https://pflanzburg.de...roducts_id=2557

Lien à poster
Partager sur d’autres sites

ok

donc

3/4 on= 100V

1/2/3 on = 150v

tout off= 190V

2/4 on = 220V

 

le relais 4 te sert de secu, on/off

 

tu devrais investir dans des relais genre finder avec plus de contacte N/O et N/C ( avis perso car ton schema marche) etre sur que tes contactes sont de bonne qualité

A plus

Lien à poster
Partager sur d’autres sites

salut

finder c est une marque de relais , ils ont pleins de contacte no/nc

 

avec ce genre de relais tu pourrait faire un genre de truc comme ça

post-802977-0-18775800-1379146596_thumb.jpg

 

sur ces relais tu peu avoir 5 Ou 6 contacte NO/NC , tu peu meme ajouter une sécu: quand 230v ON tu coupe l alim du transfo

Modifié par Deshaut
Lien à poster
Partager sur d’autres sites

yop,

 

Alors, si je comprends bien un finder c'est 4 relais qui agissent en fonction de la même commande. Et tu les colles à la suite pour sortir une vitesse par finder.

 

J'imagine que l'isolation 230V-5V et bien clean aussi.

 

C'est sûr, ça fait envie ce beau matos bien pro. Mais mon cher Deshaut, vu ton installation électrique, tu as certainement accès a des prix grossiste-ht hors de ma portée :)

Vu la puissance de mon installation, ce serrait un peu too much de claquer autant d'argent pour les relais.

Mais je te rassure, niveau code c'est pareil, juste quelques "LOW" et "HIGH" a changer.

Lien à poster
Partager sur d’autres sites

salut

en faite oui tu as raison j ai acces a beaucoup de matos mais regardes le lien si dessous

https://www.aliexpress.com/item/12-5A-Coil-Power-Relay-JQX-13F-MY2NJ-HH52P-L-8-Pins-DPDT-With-Socket-Base/695201986.html

 

apres c est juste une idée plus " conventionnel" pour faire ton installation électrique

 

sur ebay tu as aussi des lots de relay pas cher

surtout que tu n as pas besoin d avoir les 4 identiques , le premier dois avoir les 10 contacte no nc ( c est le plus cher ) et les 3 autres peuvent etre bas de gamme avec seulement 4 contactes

 

A plus

Lien à poster
Partager sur d’autres sites

yop,

 

ok, je regarderais ça au moment de la fabrication. Là je ne sais même pas dans quoi je vais mettre l'autotransfo.^^

 

avancement :

 

constantes : 100%

variables : 100%

eeprom : 100%

initialisation : 100%

menu principale: 98%

éditeur de modes : 100%

éditeur horaires : 20%

fonctions reset mode : 50%

fonction timers : 100%

fonction jour/nuit : 100%

fonctions pré-relais : 90%

fonctions relais : 90%

 

-retrait des vitesses nuit, remplacement par seuils hygro nuit

 

-L'initialisation de l'eeprom qui était dans un script séparé et maintenant dans le prog et couplé avec les fonctions reset.

Le prog n'écrit sur l'eeprom que si la valeurs est différente.

 

-la partie qui commande les relais est écrite et en test.

 

- la partie qui calcul ce qu'il faut allumer est écrite, l'extra doit attendre au moins 5 min avant d'abaisser sa vitesse.

En revanche, cette partie est basée sur un mélange de millis() et rtc = c'est la grosse mouise à tester en simulant un temps accéléré.

 

To Do :

 

-remanier le menu : ajout d'infos sur le lcd, ajout de l'écran de veille...

-vérifier toutes les variables du menu via le port serie.

-gratter 50 o de ram ...

-écrire un script de test simulant un écoulement du temps et des valeurs de sondes variables via bouton pour vérifier que la fonction vitesse ne bug pas.

-fusionner les scripts.

Lien à poster
Partager sur d’autres sites