Multiprise électronique

CHAUSSON ÉLECTRONIQUE

Ou pilote 5 Prises 220V via WIFI

Me voilà avec un nouveau projet et cette fois ce n'est pas encore une autre montre plus ou moins digitale. Il y a quelque temps ravanando sur YouTube à la recherche de nouvelles à proposer, J'ai trouvé le projet fini et fini d'une multiprise contrôlée via Bluetooth. Je me suis alors demandé si je pouvais le reproduire en quelque sorte en l'adaptant à mes besoins. J'ai commencé à étudier ce que j'avais vu à condition de n'utiliser que des composants déjà en possession et donc au prix que je ne dis pas ridicule mais presque.

A partir de la base j'ai cannibalisé une pantoufle a 6 endroits avec des commutateurs simples qui avaient un problème avec les commutateurs. Ils ne sont pas exactement les meilleurs et après un certain temps, ils tombent en panne. La multiprise en question est celle de la photo ci-dessous:

 

Chaque interrupteur a un voyant lumineux composé d'une petite ampoule de pois (rappelez-vous ceux qui étaient autrefois utilisés pour éclairer l'arbre de Noël ?) avec une résistance aux chutes. Mais ils sont fragiles et à force de les manœuvrer tôt ou tard ils se cassent.

Continuons donc avec le projet: la base est là. Remettez ensuite le tournevis et ouvrez la pantoufle. Nous déconnectons tous les interrupteurs et les retirons du boîtier. Chaque interrupteur peut être facilement démonté en ne laissant qu'un boîtier rectangulaire vide utilisable et suffisamment grand.

Allons-nous en: Chacun d'eux est connecté en parallèle à une branche de la tension d'entrée tandis que l'autre branche est connectée à un interrupteur connecté à l'autre branche de la tension. Alors isolons 5 des six dirigeants de sorte que vous avez 5 fils simples (un pour chaque prise). Parce que cinq et tu n'es pas ?.
Pourquoi ai-je laissé la première prise connectée à 220 afin de l'utiliser hors contexte.

Mais plus que les mots valent des faits et sur la photo ci-dessous vous pouvez voir ce que c'est devenu:

Nous pouvons voir: chaque boîtier d'interrupteur était rempli d'une LED rouge haute luminosité et incorporé (avec sa résistance aux chutes) dans une coulée de cire (celui des bougies pour être clair). Bien que sur cette photo, ils ne soient pas visibles sur le côté gauche de la pantoufle, ils ont été pratiqués 2 des trous: un pour passer le fil de tension unique de chaque prise et le fil "maître" pour fermer chaque contact individuel. Le deuxième trou pour passer les fils de chaque LED et le fil de terre commun pour toutes les LED. Notez le trou qui abritait le commutateur de la première prise. Sur la photo, vous pouvez voir que les deuxième et sixième pincements sont sous tension 220 et le voyant LED correspondant est allumé. Cette photo fait référence aux premiers tests fonctionnels avant la production du matériel réel.

ÉTUDE DE PROJET:

Comme je l'ai dit, l'ensemble du projet doit coûter très peu tant que vous n'utilisez que des composants que vous avez déjà ou au plus n'achetez que les composants nécessaires.

Première idée: utiliser une page WEB pour contrôler individuellement chacune des prises on et / ou off.

Deuxième idée: utiliser un appareil BlueTooth pour faire de même.

Quel est le plus simple ? : cela dépend du degré d'expérience que chacun de nous, amateurs, amateur ou professionnel, a par rapport à la programmation des deux systèmes. Personnellement, je suis un amateur sans prétention et je pense que j'en ai assez dans les deux systèmes. Donc, pour chaque mode, nous voyons des complications et des facilités:

Idée WEB: C'est peut-être le plus compliqué car il nécessite des ressources et une connaissance d'un certain niveau. Les ressources peuvent être: Carte Arduino et bouclier Ethernet mais les expériences faites par moi-même il y a quelques années ne m'ont pas satisfait et le bouclier lui-même NON gère le WIFI. Donc il a été jeté. Si nous voulons faire quelque chose de plus «moderne» et utiliser le WIFI (tellement aujourd'hui est à la mode !) les formulaires peuvent être utilisés ESP_8266 que dans une taille de 25 mm pour 12,5 ils collectent un microprocesseur programmable complet via Arduino et spécifiquement pour établir des connexions WIFI en utilisant SERVEUR WEB et autres systèmes.

Quelle est la complication de ce choix ?: Une bonne expérience de programmation "C", personnalisation de l'environnement Arduino pour gérer ce module, connaissance des pages HTML et leur programmation. Tout cela n'est peut-être pas à la portée de tous. Personnellement j'ai fait un peu’ d'expérience à la fois ces derniers temps et dans les temps éloignés au moins en ce qui concerne les pages HTML. Mais je crois que même si vous n'êtes pas un "expert" il y a beaucoup de matériel ON_LINE qui vous aide à programmer ces modules ESP en fournissant des exemples plus ou moins complexes.
Le seul inconvénient de nombreuses fois est la langue: de nombreux sites sont anglophones.

Idea BlueTooth: C'est peut-être le plus simple: le module BlueTooth ne se connecte pas en WIFI mais précisément via le protocole Bluetooth disponible sur toutes les tablettes et mobiles. Il peut être utilisé en le connectant en mode série à un micro arduino, ou utilisez une application (ou programmez-le pour ceux qui sont capables) produit à cet effet. Dans ce cas, il peut être utilisé en mode série avec la bibliothèque Arduino "Serial_Software". Le croquis doit être programmé afin de recevoir les caractères de série que l'application envoie via le port série. Il existe plusieurs applications qui gèrent ce module de manière série. La seule complication est donc la programmation du croquis.

Après avoir analysé les deux idées, j'ai décidé d'utiliser les modules ESP_8266 pour plusieurs raisons. Il y a quelque temps, j'avais bien acheté 5 du modèle ESP_01 avoir des expériences. Je n'en avais utilisé qu'une pour produire une horloge numérique ON_LINE ou prendre du temps sur Internet en la visualisant sur un écran LCD (date et heure complètes). Pourquoi alors les laisser vieillir dans le tiroir ?.

L'utilisation de ce micro implique une série de "complications" et "ajustements" dans l'environnement Arduino IDE. Il n'est pas difficile de suivre les instructions trouvées sur le WEB pour mettre à jour l'IDE à la fois en termes de "cartes" à gérer et en termes de "bibliothèques" utilisables. En fait, les "onglets" et les "bibliothèques" sont nombreux, mais vous devez d'abord insérer la définition suivante dans les paramètres de l'IDE Arduino:

URL supplémentaires pour le gestionnaire de cartes: http // arduino.esp8266.com / stable / package_esp8266com_index,json

Ensuite, s'il ne s'exécute pas automatiquement, dans le menu «outils», sélectionnez «Gestion des cartes» et laissez l'IDE rechercher les «cartes» à ajouter. Vous devrez ensuite choisir dans la liste proposée comme indiqué: (dans mon idée sont déjà installés).

Si tout se passe bien dans la sélection des cartes à utiliser, vous trouverez une liste des cartes ESP utilisables: dans ce cas, sélectionnez simplement l'item "Module ESP8266 générique".

ESP8266_01 présente (malgré sa taille) ben 8 épingle:

• VCC (3,3V obligatoire !) e GND.
• Deux broches définies GPIO_0 et GPIO_2. Ce sont des broches qui peuvent être vues comme ENTRÉE / SORTIE de signaux logiques (Bit «0» Bit «1») toujours par rapport au niveau 3V. .
• RST pour remettre le micro à la masse pour le remettre autrement à la logique "1".
• Il pin EN (activer) qui active le micro s'il est réglé sur logique "1".
• Deux broches TX / RX qui peuvent être utilisées pour recevoir et transmettre des données série en se souvenant que le niveau du signal est basé sur l'alimentation 3V. TX et TX sont également définis comme GPIO_1 et GPIO_3 car ils pourraient être utilisés comme broches d'E / S mais avec précaution.

La complication sur l'utilisation de ce micro réside dans la programmation si un système adéquat n'est pas utilisé. La broche GPIO_0 est également appelée GPIO_0FLASH car si elle est placée au sol elle permet d'écrire le croquis dans la mémoire flash du micro.

Ce n'est pas aussi facile qu'il y paraît: il y a une séquence spécifique d'opérations à effectuer pour amener ledit micro dans la condition d'accepter le téléchargement: éteins-le, ramener GPIO_0 à la terre puis le rallumer ou toujours réinitialiser avec GPIO_0 à la terre. Mais ce n'était pas facile. J'avais la prévoyance (sans le savoir) acheter un module "débogueur" avec lequel je l'ai résolu sans le savoir (en premier) juste ce problème de chargement.

Voici les deux modules: A gauche un module ESP_01 et à droite le module Debugger. C'est très utile: il est vu comme un port série (AVEC), a un bouton pour réinitialiser le micro et le connecteur mâle est la copie exacte du 8 micro pin et donc parfaitement utilisable. Pas de problème pour charger l'esquisse car elle effectue automatiquement l'opération décrite dans paragraphe précédent. Après le chargement, vous pouvez tester l'esquisse sans la retirer de l'adaptateur. J'ai trouvé ce module sur Futura_Shop à environ 6 euro. Méfiez-vous des autres adaptateurs car ils n'ont pas ces fonctionnalités.

Une autre complication dans l'utilisation de ce micro est dans l'alimentation: il veut juste 3,3 V et nécessite un système d'alimentation qui fournit 3V avec au moins 1A de courant.
Et ça ne s'arrête pas là: les niveaux GPIO_0, GPIO_2 sont également au niveau 3V. Maintenant, s'ils doivent être utilisés pour interfacer d'autres appareils fonctionnant au niveau 5V, un convertisseur de niveau est nécessaire (ou des diviseurs de tension que je ne recommande pas) comme interface entre les broches du micro et les broches d'autres appareils. Presque tous les appareils avec le protocole I2C nécessitent les bons niveaux de 5 V aux broches SDA / SCL. Incidemment dans ma montre internet avec LCD I2C j'ai utilisé ces convertisseurs entre GPIO_0 et GPIO_2 du micro.

Voici à quoi ils ressemblent: A gauche l'alimentation avec sortie 3V et à droite le module convertisseur de niveau avec 4 filières. Ces convertisseurs ont une entrée 5V et 3V appelée HV et LV.
Les sorties sont bidirectionnelles: ce qui entre dans 5V sort 3 et vice versa.

(Images copiées depuis le site EBMSTORE.it)

NOTE IMPORTANTE que j'ai presque oublié: quand ils quittent l'usine (chinois) tous les ESP sont équipés d'un logiciel pour gérer les commandes "AT" pour comprendre celles qui étaient utilisées autrefois sur les anciens modems téléphoniques. Avec ces commandes, vous pouvez vérifier, entre autres, également la connexion WIFI à votre routeur et vérifiez également combien sont à portée de la puce, même s'ils sont limités. Pour essayer ces commandes, même sans avoir besoin de croquis spécifiques, une connexion série est requise (débit en bauds 115200) en utilisant le moniteur série Arduino ou le Windows Hyper Terminal. Vous avez alors besoin d'un convertisseur RS232 / USB pour vous connecter à un port USB sur le PC. Ci-dessous l'une des connexions possibles. Dans le convertisseur RS232 FTDI, le cavalier doit être déplacé de 5V à 3V pour rendre les signaux compatibles.

MISE EN GARDE: la première fois qu'un croquis est chargé sur l'ESP, ce logiciel «AT» est perdu et une application spéciale «FLASH» doit être téléchargée depuis le Web pour le recharger.

Le projet commence à prendre forme: nous avons le micro, la bonne alimentation et l'adaptateur de niveau logique. Maintenant, nous devons étudier comment allumer / éteindre individuellement 5 prendre un 220 de la pantoufle. J'ai testé deux systèmes:

1. Pilotage d'un triac via photo coupleur avec signal logique "1". J'avais déjà expérimenté ces appareils avec différents circuits mais ils se sont toujours révélés peu fiables et ne conviennent pas aux lampes à économie d'énergie. C'est l'un des circuits.

2. Pilotage d'un relais avec photocoupleur ou via transistor également piloté par un signal logique "1". Les deux schémas suivants ne présentent pas de problèmes spécifiques à l'exception de celui avec photo coupleur fonctionnant uniquement avec des relais 12V.

Le choix s'est porté sur l'interface relais 5V aussi parce que j'avais presque disponible 10 relais de circuits imprimés à double échange pouvant également être utilisés pour commuter des tensions 220V. Ces relais sont assez anciens et je ne me souviens pas où je les ai cannibalisés. C'est le modèle:

J'ai fait un prototype j'ai testé la fonctionnalité puis j'ai décidé de préparer toute l'interface pour gérer cinq de ces relais en utilisant l'interface avec des transistors.

Il ne reste qu'un dernier problème: les relais sont 5, micro ESP a suis 2 broches utilisables sans problèmes. Un dispositif est donc nécessaire pour augmenter ces broches. Dans ce cas également, mon expérience passée avec des appareils de type PCF8574 comme celui de la figure m'aide:

 

Cet appareil s'interface avec le protocole I2C adressable sur 7 adresses différentes (voir les cavaliers sur la figure). Il peut être inséré en cascade avec d'autres appareils similaires ou d'autres écrans LCD de type I2C sauf pour l'adresse correcte. Le seul problème avec ces appareils est la taille et l'insérer dans un PCB peut causer des problèmes. Il serait préférable d'utiliser la puce unique car elle ne nécessite pas de circuits particuliers: 5V pour l'alimentation même s'il prend en charge 3V, quelques résistances pull_up aux broches SDA / SCL, quelques ponts pour attribuer l'adresse et rien d'autre.
la 8 épingle (plus un INT défini comme une interruption) ils peuvent être en entrée uniquement ou en sortie uniquement ou mixtes. La lecture ou l'écriture sur ces broches se fait simplement avec la bibliothèque WIRE (Wire.write o Wire.read).

Mais il y a des problèmes: pas pour les broches définies à l'entrée, mais pour ceux définis dans la sortie, il est nécessaire de bien vérifier comment ils doivent être utilisés. Le courant maximum (fiche technique vedi i) il est même trop peu pour piloter une seule LED. Plusieurs forums ON_LINE montrent comment les LED ou les appareils qui, de par leur nature, absorbent des courants supérieurs à ceux fournis par l'appareil doivent être connectés.

Cette figure est l'un des exemples de travail pour l'allumage de 8 LED: leur connexion peut être vue: Anodo a VCC, cathode avec R vers les broches. En effectuant des tests appropriés, j'ai pu constater l'excellente luminosité d'une LED verte classique. Il est cependant important de savoir que lorsque le système est allumé, toutes les broches de la puce sont réglées sur la logique "1": donc alors que pour le schéma précédent il n'y a pas d'anomalies (les LED ne s'allument que si la broche correspondante est mise à la terre), dans mon cas cela peut poser problème car tous les relais sont déclenchés avec le signal logique "1". Il est cependant surmontable car dans le croquis la première opération à faire serait de ramener toutes les broches à "0" logique. mère, il y a toujours un "mais", il y a un temps qui, pour autant qu'il soit en millièmes, doit être gardé à l'esprit: le micro démarre après quelques secondes et cela pourrait poser des problèmes.
N'oublions pas que la tension 220V passera par les relais.

Compte tenu de ces prémisses, pour éviter les surprises, j'essaye de faire quelques tests avec des câbles volants et des croquis minimaux, Je connecte le PCF à arduino (Protocole WIRE) et une broche à l'entrée du prototype d'allumage de relais (Déclenchement avec "1" logique). parfait: s'allume et s'éteint mais s'il est répété même à des intervalles de quelques secondes, il NE FONCTIONNE PAS !, se révélant peu fiable.

Je pense donc que le manque de disponibilité actuelle est la cause de ce manque de fiabilité: après quelques tours ON_LINE, je décide de changer la méthode de déclenchement: au lieu de porter un "1" logique, la broche le ramène à la terre. Mais cela implique une modification du circuit de déclenchement pour lequel, ne pas avoir à tout changer, J'interpose un circuit inversé entre les broches PCF et les entrées. À première vue, un 74Ls04 pourrait convenir, cependant j'ai préféré utiliser un ULN2003A qui est un "SEVEN DARLIGTON ARRAY" qui fournit un courant de 500ma. Sept entrées et autant de sorties, cependant, tous "Open_Collector" donc un R from est nécessaire 4,7 ohm (ou plus) en pull_up vers 5V pour chaque broche. Il agit également comme un inverseur par lequel une entrée à "1" est inversée à une sortie à "0" et vice versa. Excellent pour ce dont j'ai besoin: Je devrai simplement changer la méthode d'allumage dans le croquis: de «1» à «0» pour chaque relais. Et je n'aurai pas à m'inquiéter si les broches de la puce passent toutes à "1". Sur la figure, la disposition des broches.

DÉMARRAGE DU PROJET:

Je crois, à ce stade, d'avoir tout à disposition pour commencer à produire des PCB et implémenter quelques esquisses avec ESP_01. Faisons la "liste de courses" pour savoir si nous avons réellement tout ce dont nous avons besoin et c'est:

• Modèle N.1 ESP8266 01
• Convertisseur de niveau N.1 5V / 3V
• Alimentation N.1 3V (Entrée da 5 un 9V max)
• N. 1 PCF8574
• N. 1 ULN2003A
• N. 5 Modèle Relais Finder 30.22
• N. 5 transistor BC547
• N. 5 diodes 1N4007
• N. 5 LED AL. (n'importe quelle couleur)
• N. 10 valeurs de résistances selon le schéma
• Divers connecteurs et prises pour l'assemblage.
• Bouton Micro Reset
• LED (n'importe quelle couleur) en tant qu'espion système ON_LINE

N'ayant pas d'instrumentation plus ou moins professionnelle et même pas d'environnement adapté je dois me contenter de ne produire que de petits PCB. Par conséquent, ce projet se compose de deux PCB: PCB PRINCIPAL pour loger le cœur du système et PCB RELAIS pour loger les relais.

PCB MAIN:

Je n'ai pas dessiné de circuit à partir duquel dériver ce PCB mais il a été dessiné à main levée en essayant d'éviter les cavaliers et de mieux compacter les composants.

Tu peux voir: les connecteurs en haut à gauche pour alimenter la même carte et d'autres; le connecteur à quatre broches pour l'insertion du PCF8574. En bas à gauche dans le rectangle rouge se trouve l'alimentation 3V. Au milieu le convertisseur de niveau à droite le connecteur femelle pour l'insertion de l'ESP_01. Le rectangle en forme de L jaune inversé sert de guide pour couper la partie excédentaire du PCB. Voici la photo du PCB produit. La découpe a été utilisée pour insérer la carte PCF.

 

 

PCB RELAIS:

Ce pcb est le plus complexe et pour la conception je suis parti d'un autre prototype de pcb produit pour le test en apportant les corrections nécessaires et en faisant un copier / coller en pratique.
Le schéma de câblage est celui des figures précédentes. En haut de la carte, nous pouvons voir i 6 connecteurs liés à: 5 pour le 5 prises et le sixième pour la deuxième branche de la tension à 220. En bas à gauche les broches d'alimentation 5V qui seront connectées au PCB principal. Au centre je 5 broche d'entrée pour signaux de déclenchement de relais. Les diodes après chaque entrée sont 1n4148.

Ici sur la photo à quoi ressemble la carte relais complétée.

Vous ne le croirez pas mais après toute la production de PCB (conception et production) Je me rends compte que j'ai oublié d'insérer un composant fondamental: le pilote d'interface entre les sorties du PCF8574 et les entrées du PCB de relais. Je n'ai certainement pas pu faire exploser ce qui a été fait et j'ai dû me contenter de faire un pcb supplémentaire pour loger le driver à interposer. Et j'ai produit ce qui suit:

Les résistances de PULL_UP sont de 4,7 K.

À la fin de cette photo, le projet terminé:

Au milieu entre le PCB_Main et le PCB_Relais la carte de conducteur. Les trois connecteurs blancs à droite de la carte relais sont utilisés pour connecter les câbles de tension du 5 Il a pris. Le sixième l'autre câble de tension du 220. Même si vous ne remarquez pas bien en bas à droite, il y a le bouton rouge qui réinitialise le micro ESP et à côté une LED qui s'allume lorsque tout le système est ON_LINE comme je l'expliquerai dans le chapitre logiciel.

Ayez pitié de la construction du stand: comme bricolage, ils sont un véritable glissement de terrain: les dimensions du conteneur sont de 10×20 cm !! en plexiglas.

Sur la photo suivante le projet complet et fonctionnel.

Malheureusement, la barrette d'alimentation ne peut rien accueillir compte tenu de la taille des appareils.

LE LOGICIEL DE GESTION:

Et nous voici à la partie la plus intéressante et fondamentale de l'ensemble du projet. Comme je l'ai dit au début, le choix s'est porté sur l'utilisation d'une interface WEB via une page HTML qui peut être gérée via WIFI depuis n'importe quel PC, Tablette, ou téléphone portable. Je déclare que la réalisation des croquis ne sont pas tous de la farine de mon sac, mais grâce au WEB j'ai pu télécharger divers exemples de gestion d'un WEB_SERVER pour allumer et éteindre les LED et à partir de ces exemples j'ai commencé à implémenter les croquis en les complétant avec la gestion du PCF8574. Un peu’ d'expérience dans l'implémentation de pages HTML je l'avais fait il y a des années mais cela faisait longtemps que je devais me rafraîchir la mémoire.

Les croquis créés produisent la page HTML suivante:

Sur la première ligne, l'état des relais pour indiquer lesquels sont "ON" et lesquels "OFF". Dans la deuxième et la rangée 5 boutons pour mettre "ON" chaque relais, dans la troisième rangée d'autres 5 boutons pour désactiver chaque relais. Chaque fois que le bouton relatif est enfoncé, la première ligne est mise à jour en conséquence. Enfin dans le 4 les boutons de la rangée deux «ALL_ON» et «ALL_OFF» activent ou désactivent tous les relais en une seule fois.

Voici la page HTML d'un autre croquis: Incidemment, la conception des boutons a été réalisée avec le logiciel WYSIWYG qui produit visuellement des pages HTML.

La procédure est similaire mais avec une diversité: La première ligne met toujours en évidence l'état des relais. Les boutons ci-dessous ont une double fonction: quand ils sont «rouges» cela signifie que le relais relatif est éteint. Chaque pression sur le bouton relatif devient bleu et le libellé passe de ON à OFF et ainsi pour tous les autres, ainsi que le bouton "ALL_ON" qui devient bleu "ALL_OFF". Et la première ligne met toujours en évidence l'état des relais.

STRUCTURE ET LOGIQUE DES CROQUIS:

J'ai implémenté deux croquis appelés Ciabatta_Web et Ciabatta_Web3. La logique de programmation est sensiblement la même, seule la méthode de gestion du PCF8574 change en ce qui concerne l'allumage / extinction des relais et l'écriture des lignes qui composent la page web.

Pour gérer les pages HTML ON_LINE avec la prise en charge d'ESP_01 et d'autres modèles, il existe différentes méthodes pour une approche correcte: Je ne m'attarderai pas ici sur qui et combien ils sont car chacun a ses caractéristiques spécifiques et une méthode de gestion différente. Je ne décrirai que celui utilisé dans les deux croquis.

Pour accéder à un système WIFI_Server, vous avez besoin:

La librairie "ESP8266WiFi». Cet a_tantum doit avoir été chargé lors de la mise à jour de l'IDE Arduino pour les cartes ESP.

La définition des paramètres pour accéder à votre routeur domestique: «ssid"Quel est le nom attribué au routeur, et votre mot de passe. Deux définitions simples comme celles-ci: Les noms peuvent être de votre choix.

const char * ssid = "nome del router";
const char * pwd = "mot de passe attribué"

Enfin, l'attribution du port au WiFiServer avec cette définition:
Serveur WiFiServer (80); (le serveur "écoute" à la porte 80)

Bien sûr, la définition de la bibliothèque est également nécessaire CÂBLE qui permet de gérer le PCF8574.

Dans les deux esquisses, la possibilité de débogage a été insérée en insérant le Serial.print classique.() dans des points plus ou moins critiques de l'esquisse via l'Arduino ou le moniteur série (que je recommande) l’Hyper Terminal de Windows. Malheureusement sur Windows 10 cette application n'est pas fournie, il est donc nécessaire de la rechercher sur le Web et de télécharger la version gratuite.

Le port série avec baud a est alors activé 115200 pour ESP (il ne semble pas fonctionner à des vitesses inférieures) mais une procédure est également insérée selon laquelle si vous n'appuyez sur aucune touche 3 secondes l'écriture sur le moniteur série des signaux de débogage correctement programmés est inhibée. Mais c'est mon choix personnel. Après tout, il n'y a pas d'autres méthodes de débogage interactives, c'est la meilleure solution pour éviter d'être dans l'obscurité lorsque l'esquisse pour une raison quelconque ne répond pas.

NOTE: pour déboguer le moniteur il faut que l'ESP soit connecté à un convertisseur série de type FTDI232 ou au module "débogueur" que j'ai précédemment décrit afin d'attribuer un port COM.

Nous procédons ensuite à l'initialisation du Wifi avec la commande: WiFi.start(ssid, pwd) et vérifier à travers une boucle "while" que le WiFi.status être d'accord: ou tester le paramètre WL_CONNECTED jusqu'à ce que ça va. Étant donné que la réponse du routeur peut être plus longue que la normale, il est judicieux d'insérer un minuteur de quelques secondes pour éviter une boucle infinie. Le routeur peut ne pas répondre si les paramètres sont incorrects ou pour d'autres raisons.

Réaliser le WiFI.start(ssid, pwd) par défaut lorsque le routeur répond et que la connexion est établie, une adresse IP sous la forme classique est attribuée à l'ESP 192.168.1.XXX où XXX est l'adresse réelle attribuée. Il devient donc nécessaire de savoir quelle adresse a été attribuée (DHCP activé sur le routeur) à ESP pour pouvoir se connecter et lancer la page HTML à partir du navigateur. Cette adresse ne changera jamais lorsqu'elle est associée à l'adresse MAC de l'ESP.

Mais comment savoir quelle adresse a été attribuée ?: Le système de débogage sur le moniteur série est très pratique: après la connexion est ok, l'adresse attribuée avec la phrase est envoyée via le Serial.print classique: Serial.print(WiFi.localIP()).

Il existe un autre système pour remédier à cet éventuel inconvénient: attribuer une adresse statique avec les définitions suivantes:

IPAddress ip (192.168.1.XXX) pour définir l'adresse souhaitée dans le paramètre XXX.
Passerelle IPAddress (192.168.1.1) adresse de passerelle du routeur
Sous-réseau IPAddress (255.255.255.0) masque d'adresse.

Donc, après le WiFi.begin, ajoutez la phrase WiFi.config(ip,passerelle,sous-réseau). Pour y accéder, entrez simplement l'adresse attribuée pour vous connecter pour accéder. Les noms sont à votre goût.

À la fin de ces opérations, vous réussissez avec la phrase "server.begin()”Démarre le serveur prêt à écouter les requêtes provenant du navigateur.

À ce stade et seulement ce point à travers le PCF8574 (qui a déjà été initialisé) un octet est envoyé avec la configuration 0111 111: ou le peu 7 sur lequel une LED est connectée, elle s'allume mais tous les relais multiprises restent éteints. L'allumage de cette LED vérifie que toutes les opérations effectuées sont correctes et que le système "serveur" est en ligne. Ce système led est un choix personnel.

Dans la "configuration", il n'y a rien d'autre à ajouter, sauf pour les opérations de réglage d'autres appareils que dans le cas du projet, il y a.

Dans la "boucle" la part du lion vient de la gestion du "client" ou du système qui doit interagir avec le serveur et recevoir les commandes envoyées depuis la page WEB. La première chose est de demander au "client" de vérifier si le serveur est disponible: une boucle après la phrase " Client WiFiClient = server.available()"Vous permet de vérifier quand le serveur est disponible. S'il répond positivement, on vérifie avec une boucle que le client est disponible . Si tout se passe bien, nous pouvons procéder à la lecture lorsqu'il est envoyé depuis le navigateur, le stocker dans une chaîne, et par conséquent envoyer au client les instructions qui composent la page HTML. L'instruction client.print ou client.println fonctionne comme Serial.print et les phrases HTML sont donc définies entre crochets. La chaîne que nous avons stockée contient ce qui a été défini dans les paramètres, c'est-à-dire quel bouton a été enfoncé. Une routine spéciale analyse cette chaîne et prépare celle qui doit être affichée sur la page WEB pour indiquer quel relais est ON ou OFF.

Mais plus que des mots, des faits sont nécessaires: voici ce qui est émis (déboguer l'esquisse active) depuis quand nous nous connectons au navigateur:

Sortie du port série pour la vérification de la connexion:

Multiprise WEB 3
Connexion à TPLINK_8968 >>>>> CONNEXION DU ROUTEUR
…………. >>>>>> ATTENTE DE CONNEXION
WiFi connecté. adresse IP: 192.168.1.113 >>>>>>> SERVEUR CONNECTÉ IP ASSOCIÉ

LA CONNEXION À L'ADRESSE SE FAIT À PARTIR DU NAVIGATEUR 192.168.1.113 ET LA PAGE HTML PROGRAMMÉE EST ÉMISE

Nouvelle cliente
AVOIR / HTTP / 1.1
Hôte: 192.168.1.113
Agent utilisateur: Mozilla / 5.0 (Windows NT 10.0; Win64; x64; RV:78.0) Gecko / 20100101 Firefox / 78.0
J'accepte: texte / html,application / xhtml + xml,application / xml;q = 0,9, image / webp,*/*;q = 0,8
Accept-Language: ça ça,il;q = 0,8, en-US;q = 0,5, dans;q = 0,3
Accepter-encodage: gzip, dégonfler
Lien: rester en vie
Demandes de mise à niveau non sécurisées: 1

Client déconnecté. >>>>>>> DÉCONNEXION DU CLIENT DU CROQUIS
>>>>>>>> AUCUNE OPÉRATION REQUISE

D'ICI POUR TOUTE OPÉRATION RÉALISÉE DANS LA PAGE DU NAVIGATEUR, LES PHRASES SUIVANTES SONT ÉMISES LORSQUE VOUS APPUYEZ SUR UN BOUTON

Hôte: 192.168.1.113
Agent utilisateur: Mozilla / 5.0 (Windows NT 10.0; Win64; x64; RV:78.0) Gecko / 20100101 Firefox / 78.0
J'accepte: texte / html,application / xhtml + xml,application / xml;q = 0,9, image / webp,*/*;q = 0,8
Accept-Language: ça ça,il;q = 0,8, en-US;q = 0,5, dans;q = 0,3
Accepter-encodage: gzip, dégonfler
Lien: rester en vie
Referer: http://192.168.1.113/6/SUR >>>>>>>> VOICI CE QUE LE NAVIGATEUR ENVOYE APRÈS APPUYER SUR UN BOUTON: DANS CE CAS, LE SIXIÈME BOUTON

Demandes de mise à niveau non sécurisées: 1

Client déconnecté.

CONCLUSIONS:

Je déclare que tout ce qui a été créé et réalisé est uniquement et exclusivement produit par moi-même. Il peut certainement être amélioré et pensé de manière différente et plus professionnelle. Les choix de circuits peuvent également être sujets à changement et une approche différente pourrait certainement donner de meilleurs résultats. Mais je ne suis pas un professionnel et mon expérience en électronique est limitée.

Je remercie cependant l'attention.

Gvsoft juillet 2020.

 

2 réponses
  1. Picmicro675
    Picmicro675 dit :

    Travail d'un bel engagement. Pour un certain cas, il me semble que Just4Fun a fait un coupon tout comme la partie ESP-01 e PCF8574.
    Enfin, plus qu'une pantoufle, ce sera une botte, puisque les composants sont devenus d'un certain volume et qu'il n'est pas possible de les monter à la place des interrupteurs.
    Cependant toujours une explication intéressante de ces modules qui dans mes tests ont donné quelques maux de tête.

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire