NESTOR
Le projet permet de télécommander et d'afficher l'état d'ouverture ou de fermeture d'un portail électrique à partir d'un
smartphone. (Android)
Au départ, le projet a été développé avec ARDUINO-CLOUD, mais il ne s'est pas avéré très fiable au niveau des
connexions, je me suis donc retourné vers une solution propriétaire avec toujours l'IDE ARDUINO pour le ESP8266 et le langage B4X pour
le smartphone (B4A pour Android).
Le module ESP8266 attend des ordres envoyés par le smartphone à travers le wifi de
la box (protocole TCP),ordres permettant la commande du relais d'ouverture,de connaitre l'état de la position du portail grace
à un contact ILS (type alarme) et pour le fun la gestion d'un capteur DHT11 pour l'affichage de la température et l'humidité.
Le nom NESTOR étant bien enttendu un clin d'oeil au NESTOR de Tintin.
- 1 x ESP8266 D1 mini CH340 USB
- 1 x Relais 5v interface arduino
- 1 x Contact ILS d'ouverture de
porte type alarme (récupération)
- 1 x Capteur température DHT22 (au départ DHT11)
- 1 x alimentation 5V / 500mA(type chargeur USB)
- 1 x plaque pastille à trous pour monter le tout.
- 1 x Boitier électrique FIBOX (ou
tout autre boitier plastique - Wifi)
ATTENTION: Ce système ne peut focntionner qu'avec une adresse IP fixe sur votre box.
MATERIELS
Comment ça marche ?
L'application
B4A (version Android) , va se connecter directement au module wifi
ESP82266 sur un port IP
et un SOCKET pré-défini à travers la box
(voir redirection des ports dans une box) pour un dialogue série ASCII permettant de
récupérer l'état du capteur de contact ILS ou de commander le relais de commande de l'automate d'ouverture du portail et de l'afficher
sur le smartphone.(et accéssoirement d'afficher la température et l'humidité).
Il y a d'abord un process de connexion en mode
TCP avec le module ESP8266, puis l'envoi de commandes pour récupérer l'état du système (position du portail, température, humidité)
et les afficher à l'écran.
En fonction des touches sélectionnées sur le smartphone et de l'état du portail, une commande est
envoyée au 8266 pour actionner le relais.
L'affichage est différent suivant l'état du portail (avec même une photo du portail
en position) et le logiciel gère aussi les deconnexions réseau (obligatoire en TCP)
LOGICIELS
PHOTOS
ECRANS
L'électronique est mis en place dans un boitier plastique (pour laisser passer les ondes wifi), placé en hauteur sur le portail, pour avoir la meilleure liaison possible.
Le module ESP8266 est monté sur un support débrocheable, pour pouvoir être programé avec un PC en l'alimentant via le cordon série, procédure de programmation qui permettra aussi de tester la connexion wifi en local.
L'alimentation utilisée est un modèle type chargeur USB pour prise de courant, dont les fils sont coupés pour souder directement le 5v.
Le composant DHT22 est monté à l'extérieur du coffret pour mesurer la température à l'extérieur du coffret (le mettre à l'abri du soleil si possible) et cablé avec des fils souplesdirectement sur la platine.
Le tout sur une plaque "pastilles" pour faciliter le montage (voir photos).
Pour le contact ILS, on récupère uniquement le contact (capsule en verre) à lame souple d'un ancien détecteur de contact d'alarme. (en coupant les pistes inutiles).
Le logiciel du module ESP8266 (gestion hardware du portail) est écrit avec L'IDE ARDUINO : NESTOR WEB 2.0a
Le logiciel pour le ESP8266, a été développé sous environement ARDUINO (IDE).
Structure classique, avec librairies, paramètres hardware,
paramètres des variables et communication en mode GS-NET.
Une fois configuré, le module attend une connexion sur son socket et la réception
d'une chaine de caractère, quil va interprété et agir en conscéquence, jusqu'a déconnexion (volontoaire ou par time-out).
REMARQUES:
-
Le module est paramètré avec une adresse IP définie, ainsi qu'un numéro de module permettant de l'identifier, sous protocole TCP (socket).
-
En mode TCP, il est important de bien fermer une communication, c'est pour ça qu'un système de time-out que ce soit par fermeture
du programme ou par arret temporel de reception de donnéesà été programmé
- Si le socket est "mal fermé", on ne peut pas se reconnecter
au module.(inconvénient du TCP)
- Le DHT22 est parfois capricieux, avec l'envoi de données "farfelues", dans ce cas le programme envoi
99 si les données sont incohérentes (Au départ j'utilisai un DHT11, remplacé par un DHT22, plus fiable).
- Normalement la commande
TR199999 devrait mettre le relais 1 sur ON en permanence, mais ça bloquerait l'automatisme du portail, d'ou une temporisation de 2
secondes.
Le logiciel pour le smartphone à été déveiloppé avec
B4X en mode Android (B4A).
Le langage B4A est composé de plusieurs
modules, dont un module DESIGNER qui pertmet de placer en whysiwyg (what you see is what you get) les différents boutons ou images.
On
peut donc très facilement créer une petite application.
Le but ici n'est pas d'expliquer comment fonctionne B4X, mais de montrer
ce que l'on peut faire avec ce langage particuliérement performant.
Le fichier zip contient toute l'application (à vous de changer
les adresses IP).
Ne pas oublier que l'on est sur un smartphone, avec avantages et contraintes (multi-applications, sélection
doigt ....).
REMARQUES:
- la photo de NESTOR (un bouton) permet de sortir "proprement" du programme (fermeture socket) même
si l'application ,n'est pas fermée ou en pause.
- Vous pouvez changer les photos de votre portail pour la vignette OUVERT / FERME.
-
J'ai laissé volontairement en bas d'affichage la chaine de caractère reçue par le programme et celle envoyée.
- En fonction de l'état
du portail et du système, des boutons ou images apparaissent ou pas.(d'ou la superposition dans le Designer)
- La gestion des Time-out
est importante, il faut tenir compte des délais de réponse du module ESP8266, des connexions réseau (wifi-4g ...).
- Le bouton REFRESH
permet de rafraichir l'affichage, principalment pour l'affichage de la température et de l'humidité..
- Après une commande de fermeture,
le logiciel pool le module jusuq'a ce que le contact ILS de fermeture soit détecté.
Le logiciel du smartphone est écrit
B4X :
NESTOR 2.3
La version 2.0a (02/2024) intègre un capteur de température DHT22 en remplacement du DHT11, moins fiable.