Gradateur de lumière DONOFF iot

Placé sur

Le micrologiciel

De quoi as-tu besoin
Pour compiler et transférer le firmware DONOFF vers un ESP-01 vous aurez besoin de :
  • L'IDE Arduino
  • L'extension de cœur ESP8266 (2.4.2 ou 2.5.0)
  • Installation de l'outil 'ESP8266 Sketch Upload Tool'
  • Le correctif PUYA (pour le noyau ESP8266 version 2.4.2)

De nombreuses cartes ESP-01 que vous pouvez acheter maintenant ont une puce flash qui pose des problèmes de lecture du contenu de la mémoire flash (elles ont une puce Flash de la marque PUYA). Pour résoudre les problèmes, il existe un correctif temporaire pour la version 2.4.2 (regarde ici) disponible (ce correctif est probablement inclus dans la version 2.5.0 de l'extension ESP8266). Pour la version 2.4.2 (et antérieure) il est impératif que vous appliquiez ce correctif dans la chaîne d'outils.

WebSockets – une brève introduction

Le World Wide Web a été créé avec l'idée qu'un client (un navigateur, par exemple) fait une requête à un serveur et que le serveur honore cette requête en envoyant une page Web (modèle requête-réponse). L'inconvénient de cette méthode est que le serveur ne peut envoyer quelque chose à un client que si le client le demande spécifiquement. Mais que se passe-t-il si un serveur dispose de nouvelles informations qu'il souhaite envoyer au client ? Pour faire face à ce problème, plusieurs stratégies ont été développées qui permettent au serveur de « pousser » les données vers le client. L'une des stratégies les plus populaires (en dehors d'AJAX) était le long sondage. Le serveur et le client maintiennent la connexion HTTP ouverte jusqu'à ce que le serveur ait des données à transmettre au client.

Le problème avec toutes ces solutions est qu'elles impliquent la surcharge du protocole HTTP. Chaque "requête HTTP" envoie une montagne d'en-têtes et de cookies au serveur. Et cela devient rapidement une grande montagne de données qui doivent être envoyées sur la ligne, ce qui entraîne à son tour des retards (latence). Si vous voulez construire quelque chose comme un système en temps REAL basé sur un navigateur, vous voulez aussi peu de "décalage" que possible pour que tout fonctionne correctement.

Ce dont le www a besoin, c'est d'une connexion "persistante", "à faible délai" qui prend en charge les transactions initiées par le client et/ou le serveur ! Et c'est exactement ce que propose WebSockets et le firmware DONOFF utilise largement cette fonctionnalité.

Comment fonctionnent WebSocket

WebSockets maintient une connexion entre le client et le serveur qui peut être utilisée par les deux parties pour s'envoyer des messages à tout moment.
Le client établit la connexion WebSocket via un processus appelé "prise de contact WebSocket". Le processus démarre lorsque le client envoie une requête HTTP normale au serveur. Cette requête contient un soi-disant « en-tête de mise à niveau » par lequel le serveur sait que le client souhaite établir une connexion WebSocket.
Si le serveur prend en charge le protocole WebSocket, il accepte la mise à niveau et la confirme au client en renvoyant un en-tête de mise à niveau.
Maintenant que la poignée de main a été convenue, la connexion HTTP utilisée jusque-là est remplacée par une connexion WebSocket sur la même connexion TCP/IP sous-jacente. Désormais, les deux parties (client et serveur) peuvent s'échanger des données. Les données sont envoyées via le WebSocket sous forme de message via un ou plusieurs paquets contenant les données envoyées (la charge utile).

Comment fonctionne le firmware DONOFF

Avant d'approfondir le fonctionnement du firmware DONOFF, j'explique d'abord quelques concepts. Qu'est-ce que je veux dire par :
  • Maître - c'est le DONOFF qui contrôle son propre périphérique local et tous les DONOFF esclaves
  • Esclave - il s'agit d'un DONOFF qui ne contrôle que son propre périphérique local
  • Serveur - il s'agit du serveur Web sur un DONOFF (soit un maître, soit un esclave)
  • Client - c'est le navigateur qui se connecte à un serveur Web DONOFF. C'est l'interface entre le matériel et l'utilisateur
  • local-Device - il s'agit du périphérique physique que chaque DONOFF (maître ou esclave) dessert

Une fois qu'un DONOFF est connecté au secteur, il démarre un serveur Web. Si le serveur Web a une URL comme :

"http://nomhôte.local/"

du client, le serveur enverra la page index.html au client.
Ce fichier index.html contient, en plus du code html, également du code Javascript. Le code Javascript garantit qu'une connexion WebSocket est établie avec le serveur Web.

Une fois cette connexion établie, le client envoie le message « getDevInfo » au serveur auquel il répond par un message contenant le nom d'hôte de ce DONOFF, de quel type de DONOFF il s'agit (Maître ou Esclave) et quel firmware tourne sur le DONOFF.
Le client envoie alors un message demandant la version la plus récente du DOM ("updateDOM"). Le serveur construit maintenant un DOM contenant son périphérique local (si c'est un maître, de tous les autres DONOFF qu'il connaît) et le renvoie au client.

À partir de là, toutes les communications entre le client et le serveur sont pilotées par les événements. Si l'utilisateur déplace un curseur sur l'écran, le client le remarquera et enverra une nouvelle valeur de curseur au serveur qui, à son tour, ajustera l'intensité de son périphérique local. Lorsque l'utilisateur clique sur le bouton Marche/Arrêt, le client enverra le nouveau statut au serveur, qui prendra alors les mesures nécessaires pour répondre à la demande de l'utilisateur.

Cependant, il y a autre chose qui se déclenche lorsque l'état d'un appareil change :
  • Si le DONOFF est un esclave, il enverra une requête HTTP au maître DONOFF avec le nouveau statut de son périphérique local. Le Maître traitera ces informations et le serveur (Maître) enverra ce nouveau statut à son client. Ainsi, si vous déplacez le curseur sur l'esclave, la nouvelle position du curseur sera également visible sur le client connecté au maître.
  • Si le DONOFF est un maître et qu'il ne s'agit pas d'un changement de son appareil local, le maître enverra une requête HTTP à l'esclave DONOFF avec le nouveau statut de l'appareil esclave, qui à son tour changera son appareil local. et le serveur (Esclave) enverra le nouveau statut à son client qui mettra alors à jour le navigateur. En bref, chaque modification sur le client maître sera également visible sur le client esclave.

Si le maître reçoit une requête HTTP d'un esclave qu'il ne connaît pas encore, il inclura les nouvelles données de l'esclave dans sa liste d'appareils et construira un nouveau DOM. Il enverra ensuite un DOM mis à jour (contenant le nouveau périphérique) à son client. Le nouvel appareil sera alors visible dans le navigateur.
Ces informations sont envoyées dans une requête HTTP :
Adresse IP // identification unique de cette étiquette DONOFF // comme indiqué sur l'écran Type // s'agit-il d'un D)immer ou d'un S)switch minState // quelle est la valeur PWM la plus basse pouvant être définie maxState // quelle est la plus élevée Valeur PWM qui peut être définie State // quelle est la valeur PWM actuelle OnOff // la lampe est-elle allumée ou éteinte heartbeat // quand ce DONOFF a-t-il été vu pour la dernière fois ?

Périodiquement, chaque esclave envoie une requête HTTP au maître pour lui faire savoir qu'il est toujours en ligne. Chaque fois que le maître reçoit une requête HTTP, il réinitialise le rythme cardiaque de l'esclave. Si la valeur du heartbeat dépasse une certaine limite, le maître conclura que l'esclave n'est plus en ligne et supprimera les données de cet esclave de sa liste d'appareils, construira un nouveau DOM et l'enverra à son client.

Système de noms de domaine multidiffusion

Le micrologiciel DONOFF utilise largement les fonctionnalités du système de noms de domaine multidiffusion (mDNS). Dans les petits réseaux informatiques (locaux), le protocole mDNS traduit les noms d'hôtes en adresses IP. Il s'agit d'un service dit de configuration zéro. Grâce à ce protocole, il est possible d'accéder à un serveur ou autre appareil en utilisant son nom mDNS (hostname) au lieu de son adresse IP. En d'autres termes, si vous tapez "DONOFF.local" comme URL dans votre navigateur, mDNS recherchera l'adresse IP de l'appareil DONOFF et présentera la page Web du DONOFF Master (ou Slave).
Le micrologiciel DONOFF sur l'esclave l'utilise pour trouver l'adresse IP du maître DONOFF et suivre les modifications de l'adresse IP. DONOFF n'utilise pas d'adresses IP fixes, donc l'adresse IP du maître DONOFF peut changer de temps à autre. Bien que mDNS "fonctionne" dans la plupart des réseaux, il existe des routeurs WiFi (plus anciens) et des extensions WiFi qui bloquent les paquets mDNS. Si vous ne pouvez pas accéder au DONOFF par son nom d'hôte (.local), vous devrez probablement mettre à niveau votre routeur et/ou votre ou vos prolongateurs ou utiliser uniquement des adresses IP.

DONOFF HTML et CSS

Je ne suis pas un héros en matière de conception et de mise en page de pages Web. C'est la raison pour laquelle l'interface DONOFF est assez simple. Je n'ai utilisé que CSS que je comprends et je n'ai utilisé aucune bibliothèque sophistiquée comme bootstrap. Étant donné que le html et le css utilisés sont si simples, vous pouvez personnaliser l'interface à votre guise (et s'il vous plaît envoyez-moi des captures d'écran de ce que vous avez fait) !
Page actuelle 9. Le micrologiciel 1. Introduction 2. Objectifs du projet 3. L'électronique 4. Secteur AC à DC 5. Circuit de commande MOSFET 6. circuit optocoupleur 7. Microprocesseur ESP8266 8. Alimentation cc 3v3 9. Le micrologiciel 10. Télécharger le micrologiciel 11. Premier démarrage 12. serveur telnet 13. construire DONOFF Posté par Site Internet Willem Aandewiel (1955) a une formation en électronique et en techniques numériques. Cependant, la majeure partie de sa vie professionnelle, il a travaillé dans l'automatisation où il a travaillé dans à peu près toutes les disciplines, du programmeur au chef de projet et au chef de projet. Willem a été l'un des premiers Néerlandais à posséder un micro-ordinateur (KIM-1, 1976) à une époque où le PC n'avait pas encore été inventé. Aujourd'hui, il s'occupe principalement de la conception et de la production de petits circuits électroniques à microprocesseurs. Sa «mission dans la vie» est de rendre les gens enthousiastes à l'idée de fabriquer leurs propres circuits électroniques, micro-ordinateurs et programmes.

Commentaires

Webwinkelkeur Kiyoh Trustpilot Opencircuit