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 ESP32 et le langage B4X pour
le smartphone (B4A pour Android).
Le module MULTI-32 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 Carte MULTI32 avec son relais
- 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 Boitier électrique FIBOX compatible MULTI32.
ATTENTION: Ce système ne peut focntionner qu'avec une adresse IP fixe sur votre box avec l'application B4X, sinon il faut utiliser
un browser type chrome avec le webserver interne du MULTI32
MATERIELS
Comment ça marche ?
L'application
B4A (version Android) , va se connecter directement au module wifi
ESP32 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 ESP32, 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 ESP32 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 basée sur la carte MULTI-32 en version complète (sans l'optocoupleur).
On utilise l'optocoupleur pour l'entrée
de détection PORTE FERMEE (protection parasites).
Le relais sert pour la commande de motorisation (bouton ouverture/fermeture).
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.
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).
Comme d'habitude, prendre les
précautions d'usage pour le câblâge du 230v et les manipulations sous tension.
Le logiciel du module ESP32 (gestion hardware du portail) est écrit avec L'IDE ARDUINO : NESTOR WEB 2.0a
Le logiciel pour le ESP32 , 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 ESP32, 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.