mercredi 27 juin 2012

Système de commande électrique basé sur un Arduino




Ce tutoriel présente comment réaliser un système de commande électrique basé sur un Arduino et son Shield Ethernet. Ce montage utilise une carte Arduino UNO qui possède 13 E/S numériques mais dans mon exemple je n’en utilise que 8 (extensible jusqu’à10) Les sorties sont appelées LED1 à LED8 dans l’interface utilisateur et elles commandent des relais (250Vac, 16A) pour commuter tout ce qui vous passe par la tête.



Matériel :
-          Carte Arduino UNO (ou Duemilanove)
-          Shield Ethernet (avec Wiznet W5100)
-          Coffret électrique (26 modules)
-          Coffret montage Rail Din (code Farnell 4455903)
-          Support relais (Code Farnell 9913521)
-          Relais (Code Farnell 1629043)
-          Un bout de carte ‘Stripboard’
-          Connecteur bornier à viser et
-          Alimentation Arduino
-          Câble réseau

   Assemblage :




·         Assembler la Carte Arduino avec son Shield Ethernet,
·         Clipser le coffret de montage et les supports relais sur le rail DIN du coffret électrique.
·         Réaliser la petite carte d’interface connectique avec les borniers à vis. (Voir câblage plus bas)
·         Puis l’ajouter sur les cartes Arduino.
·         Glisser l’ensemble des cartes dans leur coffret de montage.
·         Câbler les bobines des relais
·         Câbler les sorties des relais

   Carte d’interface :
noter :
·         Le logiciel utilisé pour modéliser la carte ne procédait pas de connecteurs au pas de 5.08mm dans sa bibliothèque j’ai donc utilisé des modèles de connecteur au pas de 2.54mm ce qui explique qu’il y ait 2 fois plus de bornes à viser sur le modèle que sur la carte réelle (qui en comporte seulement 9)
·         Les câbles ne traversent pas le PCB et sont soudés directement du coté des pistes.
·         A cause d’une petite erreur, la masse se retrouve à extrémité opposée par rapport à l’autre connecteur mais la mettre de l’autre coté serait plus judicieux ! 

  Câblage des bobines des relais :



Câblage des sorties des relais :
Attention pensez à utiliser un dispositif de protection (disjoncteur) adapté aux sorties à commander !!
 Ne multiplier pas le nombre de sortie sur une même ligne, si besoin recommencer le même câblage avec une seconde ligne pour les quatre autres sorties.

Principe de fonctionnement :
La carte Arduino est équipée d’un Shield Ethernet. Ceci lui permet d’être éloigné du PC. Elle sera configurer comme serveur pour répondre à des requêtes http du type http://192.168.1.177/?L=1 pour faire commuter la sortie N°1. Par contre elle a besoin d’une alimentation 5V et d’une connexion à votre réseau pour fonctionner.
Le serveur Web dispose d’une interface utilisateur (certes très basic), mais qui permet de piloter notre carte Arduino à partir d’un simple navigateur Web à condition d’être sur le même réseau interne.
Pour accéder à l’interface on appelle l’adresse du serveur défini dans le code source chargé dans l’Arduino, depuis le navigateur d’un PC ou d’un smartphone, tablette etc…Ensuite on appui sur le bouton correspondant à la sortie que l'on veut faire changer d'état (ON/OFF).

Code source de l’Arduino :
Les paramètres à renseigner dans le code source de l’Arduino sont l’adresse Mac et l’adresse IP.
 Du code mis en commentaire dans le source permet également de recevoir les valeurs des entrées analogiques A0 à A5 si nécessaire.

La seconde étape sera d’interfacer le montage avec Homeseer. Pour cela je me suis basé sur les ‘modules’ qui utilisent le Framework Domotics. Il permet de créer automatiquement les Devices et les events qui remplaceront l’utilisation du navigateur en envoyant le même type de requête au serveur Arduino et d’avoir le retour d’état des sorties.
Le déclenchement des sorties pourra ainsi se faire en fonction de n’importe quels conditions dans Homeseer et être complètement intégré au reste de votre installation.

Télécharger le module Homeseer complet avec le code source pour l'Arduino ici :

Pour plus de renseignement consulter le forum TLD : http://www.touteladomotique.com/forum/viewtopic.php?f=24&t=6833

Les évolutions possibles sont :
Coté matériel: Il reste 2 E/S numériques de libre et toutes les entrées analogiques qui ne sont pas utilisées. Je pense qu’on doit pouvoir basculer facilement certaines broches numériques en entrée avec peu de modification si cela est nécessaire. On peut remplacer les LED et utiliser les sorties pour commander des relais. L’avantage des relais est de pouvoir commander à peu prêt tout ce qui s’alimente par une tension à condition de respecter quelques caractéristiques (tension, courant, isolation etc…) certains relais (type ON/ON) peuvent aussi être câblés en circuit Va et Vient avec un interrupteur traditionnel pour garder une commande physique en cas de problème avec le serveur. Par contre dans ce cas l’état ON/OFF de la sortie de représentera plus l’état de l’appareil à commander mais bien la position de l’interrupteur. (au risque de consommer du courant pour maintenir un circuit ouvert !)

Coté code là aussi je pense qu’il est tout à fait possible de le faire évoluer. Celui de l’Arduino pour avoir une interface web plus sympa, ou pour exploiter certaines broches en entrée, comme les entrées analogiques pour relever des capteurs ou les entrées numérique, voir pourquoi pas utiliser les PWM pour faire de la variation d’éclairage etc… mais également celui du module Homeseer pour pouvoir ajouter aux Devices un bouton qui déclenche l’event associé sans avoir à jongler d’un écran à l’autre.
Je pense aussi que le concept peut surement être adapté à d’autres box domotiques capables d’envoyer des requêtes http

Bref voici une base qui ne demande qu’à évoluer, libre à vous de l’utiliser, et de l’adapter comme bon vous semble. Si jamais vous l’améliorez, merci de partager.

Je n’ai évidement pas écris la totalité de ces codes mais plutôt adapté ce que j’ai trouvé ici ou la sur le web pour arriver à une solution de base qui fonctionne.
En cas de problème vous pouvez toujours me laisser vos questions, j’essayerai d’y répondre volontiers, mais je ne vous garantie pas de savoir répondre à tous.





3 commentaires:

  1. I wonder who would get such amazing and informative facts regarding electronic cables and types.
    ______________
    heating element wires

    RépondreSupprimer
  2. You can view the documentation of electrical standards in your country, standards that are different from France. In France, the standard NF C15-100.
    However, be careful that your home insurance covers any damage, caused by a defect in your installation!

    RépondreSupprimer
  3. Je ne vois pas comment ton montage peux marcher.

    Caractéristique de tes relais :
    Puissance de fonctionnement nominale: 403mW (soit un courant de 80mA provenant de chaque sortie 5V de l'arduino)
    (http://fr.farnell.com/te-connectivity-schrack/rt314005/relay-pcb-spco-5vdc/dp/1629043)

    Caractéristique de la carte arduino UNO :
    Intensité maxi disponible par broche E/S (5V) : 40 mA (ATTENTION : 200mA cumulé pour l'ensemble des broches E/S)
    (http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUno)

    La bobine du relais tire un courant de 80mA mais l'arduino n'en fourni que 40mA. Donc les relais ne peuvent pas être alimentés directement par l'arduino. Il faut passer par un transistor, d'où les cartes relais vendues un peu partout par ex : http://hackspark.fr/fr/8-channel-5v-relay-module-5v-250vac-10a.html
    De plus il faut une diode de roue libre pour que la bobine ne détruise pas les contacts de l'arduino au passage de 1 à 0.
    Voir ici le schéma de câblage d'un relais avec un arduino :
    http://gelendir.github.io/htcpcpd/img/arduinoRelaySchema.jpg

    Ou alors, dis moi par quel miracle ça fonctionne ?!

    RépondreSupprimer