Commande de volets roulants connectée

Bonjour à toutes et à tous,

Voici les caractéristiques de la commande de volets roulants que j'ai récemment terminée :

  • volets roulants à commande filaire (ne commande pas les systèmes radio),
  • commande d'origine préservée et prioritaire sur la commande électronique,
  • matériel suffisamment petit pour être placé derrière le placoplatre, dans la laine de verre d'isolation, donc totalement invisible,
  • commande à distance, par 1/4 de course
  • signalisation de la position du volet à distance, par 1/4 de course
  • programmation horaire (4 programmes disponibles),
  • se commande avec un navigateur standard (PC, téléphone portable, tablette) ; pas d'application cliente spécifique,
  • intégration à un réseau local Wifi,
  • paramétrage de la connexion Wifi à la compilation ou dynamique (ouvre un point d'accès en cas d'échec de connexion au réseau Wifi),
  • adaptation et réglage fin du volet (temps de parcours) à la compilation ou dynamique (mode administrateur protégé par un mot de passe),
  • niveau de sécurité basique, suffisant pour un réseau local ; pour une commande externe par Internet, utiliser un VPN,
  • processeur ESP12 (ESP8266), qui se programme comme un Arduino, avec l'IDE Arduino,
  • carte d'interface assurant l'isolation galvanique complète entre les parties secteur et basse tension (relais et optocoupleurs),
  • composants standards, disponibles aisément, valeurs non critiques,
  • platines simple face, réalisation amateur,
  • prix de revient de l'ordre de 15€.

Un petit dessin valant mieux qu'un grand discours, je joins les "copies d'écran", c-à-d le code html des différentes pages générées par l'application. Pour visualiser, il suffit d'ouvrir le fichier avec un navigateur.
Je poste également quelques photos, ainsi que le schéma de raccordement aux volets.

Le logiciel se compose du .ino et d'un ensemble de .h qui contiennent le code des différents modules. Ce n'est pas complètement orthodoxe, mais je n'ai pas investi dans la subtilité du "make" et des bibliothèques compilées. J'ai privilégié la robustesse, d'où les machines à états qui permettent au système de se "récupérer" en cas de coupure du Wifi.

Pour le compiler, il faut d'abord rajouter l'ESP8266 à l'IDE Arduino. Toutes les explications nécessaires sont disponibles sur le net.

La réalisation utilise une mini carte spécifique, mais il est possible d'utiliser toute carte 8266. Personnellement, je fais le développement sur un NodeMCU 1.0, qui est pratique et bon marché.

Je posterai la description du matériel dans une suite de ce post.

Voilà, j'espère que ce post sera utile et donnera des idées. Je répondrai à toutes les demandes (raisonnables :confused:) concernant le fonctionnement.

Bien entendu, aucune garantie d'aucune sorte et bla bla bla GNU usuel.

Bonne réalisation et amitiés à toutes et à tous,

MicroQuettas

Raccordements.zip (111 KB)

Copies écran pBRC03l.zip (3.08 KB)

pBRC03l.zip (89.9 KB)

Bonjour à toutes et à tous,

Voici comme promis le matériel, en deux parties :

  • la carte ESP12,
  • la carte d'interface.

Minicarte ESP12

Carte simple face, tous les composants sont côté cuivre.
Les composants CMS les plus petits sont en format 0805, c-à-d encore soudables sans grande difficulté (voir les différentes méthodes sur le net, la mienne sur demande...).
En plus des CMS, il y a 2 condensateurs chimiques (100µF ou plus, 10V). La valeur est peu critique, mais l'encombrement l'est : il faut des RM 2,5 (espacement entre les pattes), diamètre 6mm et longueur 11mm.
Les raccordements se font avec des pinouilles femelles (barettes de pinouilles sécables).
Pour plus de sécurité, intercaler un ruban adhésif (transparent ordinaire) sous l'ESP12, au cas où le vernis sur sa face inférieure ne suffirait pas à isoler des pistes.
Concernant les résistances de tirage (pull-up) prévues sur la carte :

  • ne pas câbler R9 (IO13) ni R8 (IO12),
  • câbler R7 (IO14).

Concernant la diode LED U$3 sur IO16, elle n'est pas indispensable (s'allume quand la commande D_Down est activée). Par contre, un tirage vers le 3V3 est indispensable. Deux solutions:

  • diode LED et résistance R7 = 1k ou,
  • pas de diode (court-circuiter les plots) et résistance R7 = 10k.

Pour programmer la carte, if faut un adaptateur USB Série qui dispose des sorties RX, TX, DTR (Flash) et RTS (Reset) et qui fonctionne en 3V3 (sinon adieu l'ESP12). J'utilise un FOCA2 de chez ITEAD et le petit câble dont le schéma est joint au package.

Carte d'interface

Une partie de la carte est reliée au secteur. L'isolation est totale entre les deux parties (optocoupleurs et relais), mais la prudence reste de mise...

Carte simple face, les composants CMS côté cuivre et les autre côté composants.
Deux straps côté composants et une liaison par fil isolé côté cuivre.

Les composants sont non critiques, sauf les condensateurs de 220nF qui doivent être isolés à 400V, secteur oblige.

Pour tester le concept sans la carte d'interface, un petit simulateur est bien pratique, voir schéma joint.

Enfin, les lecteurs attentifs remarqueront que les photos montrent des cartes légèrement différentes : c'est normal car je n'ai pu réapprovisionner les relais que j'avais utilisés sur les premières cartes, d'où le changement. Les nouvelles sont un peu plus petites, ce qui n'est que mieux.

Voilà,vous savez (presque) tout !
Bonne réalisation

MicroQuettas

E12C1.zip (286 KB)

Platine de commande.zip (276 KB)

Salut
Merci pour le partage.
Je réfléchis justement à piloter mes volets roulants.

Je me pose une question.
Mon interrupteur a 3 positions, "haut", "bas, et "stop".
Quand j'appuie sur le bouton "bas", le volet descend, et le capteur de fin de course du moteur l'arrête.
Mais l'interrupteur reste en position "bas".

Donc à 7 heures, je baisse le volet manuellement.
Donc l'interrupteur reste en position "bas".
A 8 heures, le programme commande la position "haut" pour monter le volet, puis repasse en position "stop", le temps de l'ouverture du volet.
Mais l'interrupteur est en position "bas".
Donc le volet redescend ?

Et aussi :
quel courant max peut passer sur une piste de circuit imprimé ?
Parce qu'un moteur, ça doit tirer un peu ?

Merci.

David.

Bonjour David,

Merci pour les questions qui montrent votre intérêt pour le projet.

Concernant la commande manuelle

L'interface dispose de deux détecteurs de tension (isolés par optocoupleurs) qui détectent lorsque le moteur est commandé, à la montée et à la descente. Cela sert à :

  • connaître la position du volet, qu'il soit commandé manuellement ou électroniquement,
  • désactiver la commande électronique (immédiate ou par programme) lorsqu'une commande manuelle est en cours.

Dans le scénario que vous décrivez, si vous commandez le volet à la montée et que vous laissez le bouton de commande manuelle sur "montée", la commande électronique est désactivée et le programme ne s'exécutera pas.
Autrement dit, la commande électronique ne fonctionne que si le bouton manuel est sur "stop".
S'il ne l'est pas, le serveur signale à l'utilisateur qu'une commande manuelle est en cours et que la commande électronique est désactivée. Je n'ai pas copié l'écran correspondant pour ne pas alourdir le post.

Lorsqu'une commande électronique est en cours, les relais coupent l'alimentation du bouton de commande manuel. Il n'y a donc pas de risque d'envoyer simultanément deux ordres contradictoires (montée et descente) lesquels feraient "pomper" un volet à contacts de fin de course mécaniques, ou placeraient un volet à commande électronique en mode "apprentissage".

Concernant la largeur des pistes de circuit imprimé

C'est un compromis entre la taille du montage, la séparation entre pistes (tension secteur oblige) et le courant à passer.

Concernant le courant à passer, d'après le site d'un fabricant français bien connu (Somfy), les moteurs les plus puissants consomment 1,2 A.

Sur le blog de Nononux Outils - Le blog de Nononux il y a un outil simple de dimensionnement des pistes.

J'ai utilisé une piste de 0,05'', soit 1,27 mm. La longueur totale des pistes est d'environ 44 mm, arrondi à 50 mm.
Pour une piste de 1,27 mm, l'outil Nononux donne un courant max de :

  • 2,84 A pour une élévation de température de 10 deg C,
  • 1,4 A pour une élévation de température de 2 deg C.

Au total on a une résistance ohmique de 20 milliOhms, soit une dissipation totale de 38 mW et une élévation de température < 2 deg C.

J'en déduis qu'il n'y a pas de souci de ce côté, résultat pleinement confirmé par l'expérience (5 commandes en service depuis plusieurs mois).

De plus, la durée de forte consommation est limitée à la course effective du volet, soit moins de 30s, même si la commande manuelle reste activée (la commande des relais est limitée à la course demandée).

Concernant le cas d'aller retours successifs (par ex. enfants jouant avec la commande), c'est le moteur qui va avoir très chaud et très rapidement. Le fabricant nommé plus haut y a pensé et a incorporé une protection thermique qui se déclenche quand le moteur atteint 140 deg C (!), température atteinte au bout de 4 minutes de fonctionnement ininterrompu.

Voila, j'espère que cela vous donnera envie de vous lancer,

A+

MicroQuettas

J'avais pas remarqué le retour des interrupteurs sur UP et DOWN.
Joli circuit !

Salut
Je continue à étudier ton circuit.
Je ne sais pas si je vais le réaliser, mais j'ai envie le comprendre.

Maintenant que j'ai compris le fonctionnement, j'essaie de comprendre comment tu as choisi tes composants.
Pour l'instant le 4n33, et son courant en entrée.
J'ai calculé 73 mA, ce qui semble dépasser les valeurs du datasheet.

Mes connaissances en électricité/électronique remonte à 20 ans, du temps de mon bac electrotech.
Et j'ai quasiment tout perdu (à part U=RI, quand même...)

Merci.
David.

Bonjour David,

Merci pour votre intérêt pour ce petit montage. Je l'utilise depuis déjà quelques années, sans aucun problème, mais on peut toujours l'améliorer.

Concernant le courant IF dans l'optocoupleur, le montage est prévu pour que le réglage d'intensité soit réalisé principalement par la réactance du condensateur. La raison : cela ne chauffe pas puisque c'est du réactif. ERDF n'aime pas, mais vu l'intensité en jeu (des mA), cela n'a aucune importance.

La réactance de la capacité se calcule :
X = 1/(2 * pi * f * C) (f = fréquence, C = capacité).

Ici, cela donne :
X = 14,5 kOhm.

On a aussi les trois résistances de 1 kOhm en série qui donnent un terme résistif de
R = 3kOhm.

On peut vérifier que c'est la réactance qui dimensionne le courant en calculant le module de l'impédance :
|Z| = sqrt( R^2 + X^2 ), soit ici |Z| = 14,8 kOhm à comparer avec les 14,5 kOhm de réactance pure.

Si l'on néglige les chutes de tension dans la diode de l'optocoupleur et dans les diodes de redressement (quelques Volts par rapport au secteur), on calcule l'intensité IF dans la diode avec le bon vieux U=RI :
IF= 230 / 14,8E+3 = 15,6 mA.

En fait, j'ai utilisé des CNY17 pour les optocoupleurs (même brochage que le 4N33 etc). On peut mettre n'importe lequel, si le brochage est identique.
Ils admettent tous un courant IF maximum de 60 mA.
Avec 15mA, on est loin de la limite.

Je reviens sur les résistances. Si elles ne participent pas beaucoup au réglage de l'intensité, elles ont un rôle important:

  • collectivement elles limitent le courant si d'aventure le circuit s'établissait pile sur la crête du secteur. Le condensateur, déchargé, se comporterait alors comme une résistance nulle. Les résistances limitent ce courant à 163mA, ce qui est relativement important, mais la durée est très brève (1,3 ms).
    Pendant ce temps, l'optocoupleur ne risque rien. En effet, la capacité chimique de filtrage est aussi déchargée et présente aussi une résistance nulle qui court-circuite la diode de l'optocoupleur. Cette dernière ne prend aucun courant tant que la capa chimique n'est pas chargée, ce qui prend quelques périodes.

  • Les résistances R5, respectivement R6 participent également au filtrage de la tension appliquée à l'optocoupleur. C'est très important pour éviter qu'il ne clignote à 100 Hz, ce que le logiciel n'apprécierait pas forcément. Ici on devrait avoir 15V aux bornes de la capa chimique.

La valeur de 220nF et le courant IF qui en résulte sont généreux. Cela permet de rajouter sans problème une LED de signalisation sur le côté isolé de l'optocoupleur (voir la carte E12C).
Avec un CTR (current transfer ratio) de l'optocoupleur choisi pessimistiquement à 50% du courant IF, on a encore 7,5 mA de disponible, ce qui permet de mettre une LED réglée à 3mA.

J'ai utilisé le montage à de nombreuses reprises dans ces conditions sans aucun problème. Ceci dit, je ne me suis pas attardé à faire des mesures sur le côté relié au secteur... A l'occasion, il faudra que je le fasse.

Si on ne met pas de LED de contrôle, on peut probablement remplacer la capa de 220nF par une 100nF. On divise alors de courant IF par 2. Cela devrait encore marcher s'il n'y a pas de LED de contrôle, mais je n'ai pas essayé.
Par contre, il faut garder les 400V pour l'isolation du condensateur.

Voila, j'espère avoir répondu.

A+

MicroQuettas

Merci beaucoup d'avoir pris le temps de répondre avec autant de détails.
J'ai vraiment de grosses lacunes en électronique....

Ne vous excusez pas, on apprend tous les jours et c'est valable pour tout le monde.

Bonne soirée

MicroQuettas