Prises, Interrupteurs, volets roulants par commande WEB et ou vocale. : Différence entre versions

m (Enregistré en utilisant le bouton "Sauvegarder et continuer" du formulaire)
Ligne 73 : Ligne 73 :
 
|Step_Title=Les interrupteurs et les commandes de volets roulants
 
|Step_Title=Les interrupteurs et les commandes de volets roulants
 
}}
 
}}
{{Tuto Step}}
 
 
{{Tuto Step}}
 
{{Tuto Step}}
 
{{Notes}}
 
{{Notes}}

Version du 6 septembre 2016 à 09:04

Auteur avatarMichelGard | Dernière modification 9/12/2019 par Clementflipo

Commandeweb.png
Utile dans la vie de tous les jours, la domotique. Prises, Interrupteurs, volets roulants par commande WEB et ou vocale.
Difficulté
⧼wf-propertyvalue-difficulty-Moyen⧽
Durée
5 ⧼wf-propertyvalue-durationtype-heure(s)⧽
Catégories
⧼wf-propertyvalue-area-Électronique⧽
Coût
50 EUR (€)
Autres langues :
français
Licence : Attribution - Partage dans les Mêmes Conditions (CC BY-SA)

Introduction

Il permet de commander à distance des fonctions électriques de la maison comme : • Des prises • Des lumières • Des Volets roulants Il est composé de trois parties : • La partie commande basée sur une page web. J’ai aussi fait une commande vocale avec un Raspberry PI (http://rasp-pi.ici.st/raspberry-pi-domotique/) • La partie émission des commandes basée sur un Arduino, carte Ethernet et émetteur 433Mhz.

• La partie réception (prises, interrupteurs et modules réceptions volets roulants).

Matériaux

Raspberry PI Arduino pro mini 1 ou 2 … Carte Ethernet Récepteur émetteur 433Mhz Alimentation 5V Alimentation 220V en 5V

Outils

Ordinateur pour programmation. Fer a souder, fil

Étape 1 - Les prises électriques

Je vais commencer par la fin, la partie réception. Pour l’instant j’ai trois sortes de récepteurs différents (prises, interrupteurs et modules réceptions volets roulants) mais je vais commencer par la commande des prises électriques. (Une petite lampe, un écran, un disque dur externe…) Des prises achetées dans un magasin de bricolage (Monsieur Bricolage) 15€ les trois avec la télécommande. Il faut des prises « simples » pas avec un code tournant donc souvent le meilleurs marchés. J’ai d’abord trouvé le code d’émission en utilisant la librairie RcSwitch. Un Arduino avec un récepteur 433Mhz et le code d’exemple de la librairie « receivedemo_simple » permet d’obtenir le code, le nombre de bit et le protocole bien noter tout cela pour la suite. De ce côté-là pas plus à faire il suffit de brancher la prise avec un accessoire et il sera commandé par notre émetteur avec le bon code. Lien librairie RcSwitch : https://github.com/sui77/rc-switch



Étape 2 - Emetteur 433Mhz et carte Ethernet

Maintenant j’ai des codes il me faut un module pour les transmettre. J’ai d’adord fait des essais simple avec un Arduino et un émetteur 433Mhz et toujours avec la librairie RcSwitch et l’exemple « SendDemo » Si tout va bien vous devez pouvoir allumer et éteindre votre prise électrique à distance mais pour l’instant c’est encore moins portable que la télécommande… Je voulais un émetteur connecté sur mon réseau pour lui envoyer des commandes à distances. J’ai fait le choix d’une carte Ethernet que j’ai connecté sur un arduino ProMini en ajoutant un émetteur 433Mhz pour envoyer les codes suivant les autres reçues. En fait c’est simple la carte Eternet aura une IP sur mon réseau il suffit d’ajouter à la suite de cette IP ce qu’on veut faire du genre LED1 = ON … Lien librairie Ethercard : https://github.com/jcw/ethercard Code Arduino : https://github.com/Michelgard/Arduino_433Mhz/blob/master/ethernet_et_emmeteur.ino Une fois le montage terminé et le code dans l’Arduino un simple navigateur nous permet de faire les essais en tapant dans la barre d’adresse l’P de la carte Ethernet et l’action à faire. Quand on ajoute des accessoires il suffit de reprendre le code pour ajouter le ‘if’ avec le bon code de la prise, de l’interrupteur …




Étape 3 - Les commandes en page WEB

Bon on a bien avancé mais il faut encore taper une adresse dans un navigateur avec un code pas forcément facile à retenir … Mais c’est déjà sympa non ! Là il faut simplement faire quelque page web. J’ai fait le choix d’un hébergement à la maison sur un Raspberry PI. Faible consommation, facile à mettre en route, installation Apache facile et bien documenté sur le net. Et il peut tourner sans problème 24/24 et 7/7 bien sûr pas d’écran et pas de clavier juste une alim et une connexion à la box. Celui que j’utilise pour la domotique et même en direct sur la box j’utilise pas le wifi. Donc pour faire cette page j’utilise plusieurs choses. Bien sur HTML, JavaScript avec AJAX et quelques images de boutons. J’utilise aussi une connexion avec une base de donnée pour garder en mémoire la position des boutons en ON/OFF. L’AJAX permet une mise à jour de la page pour chaque bouton permettant d’utiliser plusieurs pages de modification. Comme cela si je change un bouton sur mon téléphone le même bouton sur ma tablette va changer de position dans les 5 secondes. Chaque boutons est un formulaire HTML (en JavaScript) et il lance une fonction emetteur() qui va envoyer sur le réseau l’adresse IP du module Ethernet avec en argument l’accessoire et le ON ou OFF. Le fopen va être envoyé x fois suivant un argument passer à la fonction, souvent 2 fois pour être sûr de la bonne réception avec une bonne moyenne. Dans mon cas avec deux envoies j’ai un taux de réussite de 99% dans mon appartement. Et bien sûr il y a une mise à jour de la donnée dans la base. La base de données pour la position des boutons : https://github.com/Michelgard/Arduino_433Mhz/blob/master/Table%20position_prise J’ai des boutons simple pour les interrupteurs (j’y reviens plus loin) car c’est le même codes qui fait ON et OFF mais je change quand même la valeur dans la base car j’ai aussi une application qui me retourne la position de chaque appareil sur mon téléphone. function emetteur($led, $on_off, $nb){ global $bdd; $url=”http://xx.xxx.xx.xx:80/?” . $led . “=” . $on_off;

for ($i=0; $iexec($sql); } Les interrupteurs AUTO sous certain boutons sont là pour automatiser l’allumage des lampes en cas d’absence. Dans une base de données j’ai les horaires (allumage et extinction) je lance une tache CRON à chaque heure qui vérifie s’il faut faire quelque chose et si c’est le cas envoie l’ordre au module Ethernet. Code Auto CRON : https://github.com/Michelgard/Arduino_433Mhz/blob/master/auto_cron.php Le code complet de l’interface web est là : https://github.com/Michelgard/Arduino_433Mhz




Étape 4 - Les interrupteurs et les commandes de volets roulants

Étape 5 -

Commentaires

Cochez cette case si vous considérez ce tutoriel terminé