ESP8266 : RELAIS WIFI 4 CANAUX avec le module GCE
| |||
---|---|---|---|
300px | |||
Nom | Relais WIFI 4 CH | ||
Famille | Objets connectés | ||
Wiki créé le | 11/06/2018 | ||
Wiki mis à jour le | 11/06/2018 | ||
Auteur | fgtoul |
Prérequis
Avant de pouvoir programmer le module NodeMCU, vous devez avoir installé l'environnement de développement spécifique à l'ESP8266.
Je vous invite à lire ce tutoriel : ESP8266 : Installation de l'environnement
Présentation
Difficulté de mise en oeuvre : ★★☆☆☆
Le montage que nous allons réaliser est basé sur le module relais de GCE.
Il permet de piloter 4 relais à distance (wifi) avec l'ESP8266.
Comme pour les montages précédents, nous utiliserons le module NodeMCU dans sa version LoLin, pour une programmation simplifiée par le port USB.
Le matériel nécessaire
- 1 module à 4 relais 5V vendu ici par GCE,
- 1 alimentation modulaire 5V
- 1 module NodeMCU V3 (LoLin) Lua WIFI basé sur ESP8266 ESP-12E
- Voici les caractéristiques électriques du module Relais GCE
- 4 relais de puissance supportant 250V/10A
- Alimentation 5Vdc 380mA Max (95mA / relais)
- Très grande plage d'entrée de 0 à 24Vdc
- 4 Leds pour visualiser les commutations
- 1 Contact inverseur NO et NF par Relais
- Supporte les niveaux logiques 3.3V et 5V (0.9mA sous 5v)
- Niveaux d'entrée 0 à 1.6Vdc (0 logique)
- Niveaux d'entrée de 1.8 à 24 Dvc (1 Logique)
Remarque :
Vous pouvez remplacer le module 4 Relais 5V par le module 4 Relais 12V.
Dans ce cas l'alimentation 5V sera à remplacer par une alimentation 12V Vous pouvez bien sûr utiliser une batterie comme source d'alimentation en fonction des besoins.
Schéma
- Le module NodeMCU est alimenté directement par la broche Vin. Celle-ci est régulée et admet une tension de 20Vcc maximum.
- Le module relais est alimenté par les broches PWR (+ -), il est équipé de 4 entrées logiques (Triggers). Les broches
S
sont connectées aux dorties digitalesD0
D1
D2
D3
du NodeMCU.
- Il suffira de piloter ces sorties via le programme afin d'activer ou désactiver les relais, indépendemment l'un de l'autre.
Les fonctionalités
Grâce à sa connectivité Wifi intégrée, le module NodeMCU se connecte à un réseau wifi, via lequel il pourra communiquer avec le reste de l'installation domotique. A la fois client et serveur, notre module recevra des consignes sous la forme de requêtes Http et pourra répondre par une page HTML.
- client Wifi. Le module se connecte automatiquement au réseau. Il est possible de lui appliquer une adresse IP statique.
- informations (adresse IP locale) et retours d'état via le port série (USB) lorsqu'il est connecté à un PC.
- Serveur Http activé au démarrage. Le client connecté au serveur recevra une réponse à chacune de ses requêtes, sous forme de page web.
- la Led embarquée peut retourner des informations sur le statut des communications :
- clignotement lent (5 fois) pour signaler une connexion correcte au réseau Wifi,
- clignotement simple (1 fois) pour signaler la réception d'une requête correcte,
- clignotement rapide (3 fois) pour signaler la réception d'une requête erronée.
En D5
, si la Led nommée LED_Link est présente, elle clignotera à la place de la Led embarquée lors de la connexion au Wifi ou de la réception des requêtes.
L'environnement de programmation : Easycoding
La programmation du module NodeMCU se fait soit en script LUA, soit en langage C++ via Arduino IDE.
Pour cette réalisation, nous écrirons un programme en langage C++ (vous n'allez pas vous en rendre compte ...)
Afin de ne pas effrayer les débutants, nous utiliserons un générateur de code nommé Easycoding, qui permet une écriture simplifiée et graphique du code.
Easycoding a été développé avec Google Blockly
(bibliothèque logicielle javascript, Open Source, créée par Google en 2012).
Cet outil permettra aux débutants de configurer l'application, sans avoir à se préoccuper du langage.
Les lecteurs plus férus de programmation, pourront intervenir dans le code C++, après l'avoir injecté dans Arduino IDE.
Easycoding.tn
Pour accéder à l'interface de développement, rendez-vous sur le site Easycoding.tn
Dans le sous-menu TUNIOT FOR ESP8266, cliquez sur le drapeau de votre choix, afin d'accéder à l'interface dans votre langue préférée.
L'outil prend un peu de temps pour s'ouvrir, mais devient très performant par la suite. Ne vous impatientez pas.
Premiers pas
Easycoding présente une interface comportant 5 zones
1 : Menu permettant la sélection du mode
Blocs
: mode permettant la saisie du programme par glisser/déposer des blocs.CODE
: mode permettant la consultation du code C++ généré en temps réel. Lecture seule.XML
: mode permettant la consultation du code XML généré automatiquement.
2 : Menu principal de gestion du projet
- copie du code C++ dans le presse-papier
- accès à des tutoraux vidéos (en français)
- vidage de la surface de travail et du code
- Lancer le programme (bascule dans Arduino IDE pour compilation et téléversement)
- chargement de modèles de code.
- sauvegarde du projet au format EasyCoding (XML)
- chargement d'un projet au format EasyCoding (XML)
3 : Menu d'accès aux blocs de programmation, positionnables par Glisser/Déposer
4 : Zone de travail.
5 : Menu d'affichage.
- Recentrer
- Zoomer +
- Zoomer -
- Corbeille (suppression de blocs par glisser/déposer)
Chargement du projet
- Téléchargez et décompressez ce fichier : ESP8266_Relais.zip
- Validez par OK pour charger le fichier.
Programmation
Le programme se décompose en deux parties :
- Setup : Le code n'est exécuté qu'une fois au démarrage du module.
- Configuration du réseau
- Définition des variables
- Connexion au réseau Wifi
- Démarrage du serveur Http
- Boucle Principale : Le code de cette boucle est répété jusqu'à extinction du module
- attente d'une connexion sur le serveur Web embarqué
- interprêtation de la requête reçue et pilotage du Relais (ON ou OFF)
- réponses sur port série et http
- envoi d'une commande API vers IPX800 pour le retour d'état du Relais.