Pages: [1] 2   Go Down
Author Topic: AUTOMATE ARDUINO ET PROGRAMMATION "GESTION D'UN SECHOIR"  (Read 2122 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à la communauté !!

Voilà mon projet :

Je dois gérer trois séchoirs équipés de matériels commandés par relais (3*4 ventilateurs,3 extracteurs, 3 chauffages, et 3 capteurs de temp/humidité)
Le tout est piloté par une carte à 16 relais (sainsmart) et un arduino mega + 3 capteurs DHT22
Une interface PC en C# sur visual studio finalisera le projet...

J'ai du mal à construire l'architecture du prog et je me demande s'il ne me faudrait pas plutôt trois ou quatres arduino..(1 maitre trois esclaves)

En effet, je dois pouvoir piloter les 3 séchoirs indépendamment, soit :
- enclencher chaque relais à la demande
- ou lancer un cycle de fonctionnement "automatique" sur chacun des trois séchoirs
Commander chaque relais, ok, mais lorsque je lance un cycle "automatique" sur un séchoir (mesures/commande relais), je ne vois pas comment je pourrais interagir avec les deux autres séchoirs en stand by, lancer éventuellement un cycle sur les 2 restant ou piloter les relais individuellement (mode manuel) car le programme bouclerait sur une fonction acquisition de mesure/pilotage relais et ne pourrait sortir de cette boucle que lorsque le cycle de séchage serait terminé...

Quelqu'un pourrait il m'éclairer de ses lumières ?

Merci à tous ::-)))
Logged

GZE

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3560
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
je me demande s'il ne me faudrait pas plutôt trois ou quatres arduino

La gestion de 3 séchoirs n'exige pas des temps de réponse très rapide et peut parfaitement être géré par un seul arduino.

Quote
Commander chaque relais, ok, mais lorsque je lance un cycle "automatique" sur un séchoir (mesures/commande relais), je ne vois pas comment je pourrais interagir avec les deux autres séchoirs en stand by, lancer éventuellement un cycle sur les 2 restant ou piloter les relais individuellement (mode manuel) car le programme bouclerait sur une fonction acquisition de mesure/pilotage relais et ne pourrait sortir de cette boucle que lorsque le cycle de séchage serait terminé...

Mets toi à la place de ton arduino. Qu'est-ce que tu ferais si tu devais le faire à la main.
Début du processus
  regarder les paramètres du 1er équipement:
    - il est en stand by je passe
    - il est actif:
         - acquérir les paramètres (température, humidité, ...
         - agir en conséquence (allumer/couper le chauffage, la ventilation, ....)
  regarder les paramètres du 2ème équipement:
    - il est en stand by je passe
    - il est actif:
         - acquérir les paramètres (température, humidité, ...
         - agir en conséquence (allumer/couper le chauffage, la ventilation, ....)
  regarder les paramètres du 3ème équipement:
    - il est en stand by je passe
    - il est actif:
         - acquérir les paramètres (température, humidité, ...
         - agir en conséquence (allumer/couper le chauffage, la ventilation, ....)
retour au début


la paire "début de cycle / retour au début" c'est la fonction loop() de l'arduino
Il faut donc traiter chacun à son tour mais ne pas rester bloqué dans une fonction. Si tu dois gérer des temporisations, il ne faut pas utiliser delay() qui est bloquant mais gérer le temps avec des variables et la fonction millis() et à chaque itération de la boucle vérifier si le "délais" est écoulé.
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5088
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Je dois gérer trois séchoirs équipés de matériels commandés par relais (3*4 ventilateurs,3 extracteurs, 3 chauffages, et 3 capteurs de temp/humidité)
Le tout est piloté par une carte à 16 relais (sainsmart) et un arduino mega + 3 capteurs DHT22
Une interface PC en C# sur visual studio finalisera le projet...

J'ai du mal à construire l'architecture du prog et je me demande s'il ne me faudrait pas plutôt trois ou quatres arduino..(1 maitre trois esclaves)

...
bonjour
le choix de l'architecture depend aussi de contraintes comme :
- la disponibilité des sechoirs = est ce critique si plus rien ne fonctionne à cause de l'arduino HS ?
- où ce fera la prise de decision en fonction des capteurs ? sur l'arduino ou sur le PC en C# ?
l'arduino ne faisant qu'integrer les mesures, les transmettre au PC et receptionner les ordres ?

si c'est pour une utilisation pro, j'aurais d'instinct tendance à modulariser donc plusieurs arduino, mais ça se discute
un peu plus d'info sur le dimensionnement du projet serait pas mal : le probleme n'est pas exactement le meme si les sechoirs ont un volume de qq litres ou metres cubes, l'eloignement des sechoirs, et autres ....


« Last Edit: September 09, 2013, 04:48:25 am by Artouste » Logged

Nice (06)
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
si c'est pour une utilisation pro, j'aurais d'instinct tendance à modulariser donc plusieurs arduino, mais ça se discute

Je suis du même avis qu'Artouste pour ce point, l'utilisation de plusieurs Arduino indépendants est plus onéreuse mais moins risquée quant aux éventuelles mise en défaut de chaque appareil en cas de problème. Vaut mieux un seul appareil en panne que tous ...

Parallèlement ça me semble plus simple à mettre en oeuvre, moins de cablage, programmes plus léger mais après achat de composants annexes en triple etc ...  (avis vu d'en bas depuis les premiers barreaux de l'échelle d'utilisateurs de l'Arduino  smiley-mr-green).

Je suis également curieux d'en savoir plus sur ce projet smiley-wink.

Bon aprem.

Nico.
Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Re !

Merci de tes infos fdufnews  smiley !!
Je vais plancher à nouveau sur mon organigramme...



bonjour
le choix de l'architecture depend aussi de contraintes comme :
- la disponibilité des sechoirs = est ce critique si plus rien ne fonctionne à cause de l'arduino HS ?
- où ce fera la prise de decision en fonction des capteurs ? sur l'arduino ou sur le PC en C# ?
l'arduino ne faisant qu'integrer les mesures, les transmettre au PC et receptionner les ordres ?

si c'est pour une utilisation pro, j'aurais d'instinct tendance à modulariser donc plusieurs arduino, mais ça se discute
un peu plus d'info sur le dimensionnement du projet serait pas mal : le probleme n'est pas exactement le meme si les sechoirs ont un volume de qq litres ou metres cubes, l'eloignement des sechoirs, et autres ....


Pour info, la dimension des séchoirs rectangulairse est de 30m3 environ et il sont côte à côte...La gestion complète serait faite par Mr Arduino, alors que Mr PC ne serait qu'une interface "boutons", Graph, et saisie des valeurs de séchage...
En ce qui concerne une éventuelle panne du système, j'avais pensé à relier mon automate à mes différents éléments (ventilos, extracteur...) par un connecteur à broche, et construire un module basique avec des sélecteurs équipé de la même broche.
Ce module me permettrait de commander manuellement mes séchoirs (on/off) sans automatiser les cycles, le temps du depannage... et/ou alors, avoir un arduino de Spare

Merci pour vos remarques !
Logged

GZE

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Bonjour à tous,

D'après ce que j'ai compris il y a 6 valeurs analogiques en entrées Température et Humidité venant de 3 points différents. Selon ces valeurs on actionne des ventilos, extracteurs ou chauffage via 9 relais. Un simple UNO suffit. Tournant à 16Mhz une conversion analogique s'effectuant en 100 microsecondes donc largement le temps de gérer 1000 séchoirs durant le temps d'un loop()...

Pas de boucles while() !   3 boucles if() suffisent :

Code:
if ( temp1 > TEMP_MAXI ) {
ventilo1=true;
extract1=true;
chauffage1=false;
}
else if ( temp1 < TEMP_MINI ) {
ventilo1=false;
extract1=false;
chauffage1=true;
}
else {
ventilo1=false;
extract1=false;
chauffage1=false;
}






Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5088
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



Pour info, la dimension des séchoirs rectangulairse est de 30m3 environ et il sont côte à côte...La gestion complète serait faite par Mr Arduino, alors que Mr PC ne serait qu'une interface "boutons", Graph, et saisie des valeurs de séchage...
En ce qui concerne une éventuelle panne du système, j'avais pensé à relier mon automate à mes différents éléments (ventilos, extracteur...) par un connecteur à broche, et construire un module basique avec des sélecteurs équipé de la même broche.
Ce module me permettrait de commander manuellement mes séchoirs (on/off) sans automatiser les cycles, le temps du depannage... et/ou alors, avoir un arduino de Spare

Merci pour vos remarques !
ok donc arduino en autonome pour les decisions, mais injection de "scenario" (valeurs de seuils et autres) a partir d'un pc ?
Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tout a fait artouste
Logged

GZE

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5088
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tout a fait artouste
bonjour
ok
Alors ton vrai premier gros probleme/soucis est de bien reflechir à l'enregistrement des scenarios
l'idée premiere est d'utiliser l'eeprom de l'arduino pour stocker ces scenarios

une bonne attitude de reflexion serai déjà que tu pose sur papier un/des scenarios que tu pense le plus complexe.
ça permettra d'en tirer les impératifs
Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut !

Voilà un premier jet ...

J'ai posté deux fichiers images :
- La fonction loop() de l'arduino
- La fonction Consigne1() gérant mon sechoir n°1
J'ai un probleme sur la consigne et sur le scénario a utiliser. Dans mon organigramme le programme boucle sur chaque mesure d'humidité en attendant que la valeur lue nous fasse sortir de celle ci pour enchaîner.
Je n’arrive pas a utiliser la notion de temps pour éviter d'être bloquer dans ces boucles.
Ce que je dois faire:
- Je suis en quel mode (Auto ou manuel)
- Je suis en mode Auto, je regarde où j'en suis au niveau du cycle et j'adapte les consignes
- Je reviens dans ma Loop() pour regarder les autres séchoirs..

Merci pour vos infos



* Diagramme LOOP Sechoir Arduino.jpg (25.46 KB, 412x910 - viewed 42 times.)

* Diagramme CONSIGNE Sechoir Arduino.jpg (25.66 KB, 384x840 - viewed 41 times.)
Logged

GZE

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5088
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut !

Voilà un premier jet ...

J'ai posté deux fichiers images :
- La fonction loop() de l'arduino
- La fonction Consigne1() gérant mon sechoir n°1
J'ai un probleme sur la consigne et sur le scénario a utiliser. Dans mon organigramme le programme boucle sur chaque mesure d'humidité en attendant que la valeur lue nous fasse sortir de celle ci pour enchaîner.
Je n’arrive pas a utiliser la notion de temps pour éviter d'être bloquer dans ces boucles.
Ce que je dois faire:
- Je suis en quel mode (Auto ou manuel)
- Je suis en mode Auto, je regarde où j'en suis au niveau du cycle et j'adapte les consignes
- Je reviens dans ma Loop() pour regarder les autres séchoirs..

Merci pour vos infos



documente toi sur le principe des machines à états
ici tu n'est pas tributaire du temps mais des mesures
déjà il faut penser à faire de la moyenne filtrée et ne pas se precipiter
Ce sont des processus à evolution lente
ça ne sert pas à grand chose  à faire du changement  d'etat moteur à l'echelle de la ms
le principe est de faire de l'acquisition de capteurs et sortir une moyenne "filtrée"
et d'en tirer les etats à suivre toutes les secondes ou +
Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai regardé les machines à état et leur diagrammes.
J'essaye de tracer le diagramme de mon projet mais j'ai beaucoup trop d'états...
Par contre, artouste, qu'entend tu par moyenne filtrée ?
Merci
Logged

GZE

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3560
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
J'essaye de tracer le diagramme de mon projet mais j'ai beaucoup trop d'états...
Tôt ou tard, il faudra le coder. Quelque soit le moyen utilisé machine à état ou gros sac de if then .. else ... Donc il faudra bien que tu décrives tes états et leurs transitions (sinon tu vas en oublier). Autant le faire bien tout de suite.
Le fait de l'écrire va peut être d'ailleurs te faire entrevoir qu'il y a des simplifications possibles ou des attendus peu clairs.
« Last Edit: September 12, 2013, 10:33:09 am by fdufnews » Logged

France
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je suis entrain d'essayer d'appliquer la logique d'une machine à état sur mon automate.
Je visualise d'abord les états dans lesquelles mes séchoirs peuvent se trouver, avant d'aller plus en détail dans les "sous" états de chaque mode (manuel, stand by ou automatique).
Vais-je dans la bonne direction ? j'ai commencé par lister toutes les positions que peuvent prendre les séchoirs (27 en tout)
J'ai posté un fichier tableur nommé "Etats"

* Etats.xlsx (9.05 KB - downloaded 20 times.)
« Last Edit: September 15, 2013, 10:36:06 am by Gatizne » Logged

GZE

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3560
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Les 3 séchoirs sont indépendants ?
Logged

Pages: [1] 2   Go Up
Jump to: