Serveur d'impression

WiFi ESP8266 – Bien choisir son serveur d impression

Par Titanfall , le 5 juin 2020 - 16 minutes de lecture

L'aventure ESP8266 a commencé en 2014 et le module a rapidement gagné en popularité. Il existe maintenant de nombreuses cartes basées sur le processeur ESP8266. Leurs caractéristiques diffèrent notamment en termes de nombre de ports d'entrée-sortie ou de taille de la mémoire flash.

Image non disponible
Module ESP-01 basé sur le processeur ESP8266

Ces circuits ont beaucoup évolué depuis et de nombreuses informations peuvent être trouvées sur le web pour la plus grande satisfaction des utilisateurs. Malheureusement, la plupart de ces informations sont désormais obsolètes ou tout simplement fausses.

Il m'a donc fallu un certain temps pour obtenir un premier résultat exploitable! D'autres ont eu plus de chance, mais le bon fonctionnement de ce module a été un vrai défi. À tel point que parfois, je pensais même avoir détruit le module avant de le relancer à force de persévérance dans mes recherches.

J'ai enfin apprivoisé la bête qui s'avère plus facile à utiliser que je ne l'imaginais au départ. Après avoir rassemblé toutes les informations utiles, je vous suggère de les résumer dans ce tutoriel. J'espère que vous commencerez rapidement et obtiendrez les fonctionnalités de base dont vous avez besoin.

Dans ce tutoriel, le module utilisé est un ESP-01, mais l'approche décrite doit être identique à la plupart des modules basés sur le processeur ESP8266 (sinon tous).

Image non disponible

ESP8266 en bref:

  1. Prend en charge les protocoles 802.11 b / g / n;
  2. Se connecte à votre routeur et fonctionne en tant que client ou en tant que point d'accès ou même les deux en même temps!
  3. Peut fonctionner comme un serveur Web avec sa propre adresse IP;
  4. Le module ESP-01 comprend deux broches numériques qui peuvent être configurées en entrée ou en sortie (pour piloter des LED, des relais, etc.). Ces broches peuvent être utilisées pour générer un signal modulé en largeur d'impulsion (PWM). D'autres versions du module ont plus de broches d'entrée-sortie (l'ESP-12 par exemple), mais elles sont toutes programmées de manière similaire;
  5. Possède une entrée analogique (ADC / ALL), mais qui n'est pas câblée sur l'ESP-01;
  6. Peut fonctionner en communiquant avec une carte Arduino ou être programmé pour fonctionner indépendamment;
  7. Possède de nombreux outils et environnements de développement (EDI) pour le programmer;
  8. Et plein d'autres choses…

Dans la démonstration suivante, l'ESP8266 est configuré comme un serveur Web générant une page Web accessible à l'utilisateur par connexion WiFi. Vous pourrez ensuite vous inspirer de cette démonstration pour développer votre propre projet domotique et piloter vos objets connectés.

Si vous souhaitez programmer l'ESP8266 avec votre propre code, ce que nous proposons de faire dans ce tutoriel, vous n'aurez plus besoin du firmware d'origine. Votre code est le firmware. Pour revenir en arrière et flasher une version de firmware mise à jour dans l'ESP8266: Chargement d'un nouveau firmware sur un ESP8266.

Nous utiliserons l'IDE Arduino comme outil de développement, mais vous n'avez pas non plus besoin d'une carte Arduino. L'ESP8266 est lui-même un microcontrôleur.

Après avoir téléchargé votre propre code sur l'ESP8266, il ne répondra plus aux commandes AT car votre code a remplacé le firmware d'origine. Développer votre propre code à l'aide de la bibliothèque ESP8266 dans l'IDE Arduino vous offre de nombreuses possibilités. Voir la documentation: bibliothèque ESP8266WiFi.

Vous pouvez restaurer le firmware ESP8266 d'origine à tout moment et reprendre le contrôle avec le jeu de commandes AT si vous le souhaitez. Voir Chargement d'un nouveau micrologiciel sur un ESP8266.

Le module ESP8266 est alimenté en 3,3 V, et non 5 V. Même si l'ESP-01 est plutôt tolérant, il est fortement recommandé d'adapter le niveau de tension si l'alimentation provient d'une source 5 V. Sans cette précaution, vous risquez simplement d'endommager voire de détruire le module!

Équipement

Description et commentaires

Image non disponible
  • Le module ESP-01 est utilisé dans ce tutoriel, mais il peut s'agir d'une autre version avec quelques adaptations.
    Vous découvrirez toute la famille ESP8266 sur le site de référence.
Image non disponible
  • Vous trouverez ces composants électroniques de base ainsi que de nombreux autres composants dans la plupart des kits de démarrage électroniques.
  • Programmeur FTDI 3,3 V
Image non disponible
  • Ce type de modules intègre une puce de conversion série USB FTDI232RL permettant d'envoyer et de recevoir des signaux UART via le port USB d'un ordinateur et de flasher un programme dans l'ESP. Choisissez un module compatible 3,3 V. Certains modules permettent avec un petit interrupteur ou un cavalier (sauteur) choisissez entre 5 V et 3,3 V.
  • Module d'alimentation 3,3 V pour plaque de câblage (alimentation électrique)
Image non disponible
  • Une alimentation séparée de 3,3 V est fortement recommandée, car l'ESP8266 peut absorber un courant suffisamment élevé pour fonctionner (plus de 200 mA par instant). Vous ne devez pas alimenter l'ESP8266 directement à partir de la sortie 3,3 V d'une carte Arduino sous peine d'avoir un comportement erratique de l'ESP (dans le meilleur des cas, car dans le pire…).
    Ces types de modules peuvent être branchés sur des cartes de câblage standard. Ils ont une prise de format jack 3,5 mm pour alimenter le module à partir d'une batterie, d'une batterie, d'un adaptateur secteur … (6 à 12 V).
  • 3.3 Convertisseur de niveau logique bidirectionnel V-5 V
Image non disponible
  • Ce module convertit les signaux logiques bidirectionnellement: 5 V à 3,3 V et 3,3 V à 5 V simultanément. Nous le plaçons sur la liaison série (Rx et Tx) entre une carte Arduino ou un programmateur fonctionnant en 5 V et l'ESP-01 fonctionnant en 3,3 V. Bien sûr, si votre programmeur ou Arduino fonctionne déjà en 3, 3 V, ce module n'est pas utile.

Il existe de nombreux assemblages sur le Net avec une sortie 5 V du programmateur ou de l'Arduino directement connectée à l'entrée Rx à 3,3 V de l'ESP. Comme dit précédemment, l'ESP-01 est assez tolérant, c'est à vous de décider si vous prenez le risque …
Il existe également des ensembles avec un pont diviseur de tension pour abaisser les 5 V à 3,3 V. Dans ce cas, faites attention à la qualité des signaux émis par le pont, en particulier pour les vitesses de transmission élevées (supérieures à 9 600 bauds)

Image non disponible

Le programmateur FTDI est le circuit en rouge en haut du schéma, l'ESP8266-01 en bas. Seuls trois fils du programmateur FTDI sont connectés: le retour à la terre GND et les broches de communication Rx et Tx connectées respectivement aux Tx et Rx de l'ESP. À gauche du schéma, le module d'alimentation est normalement directement branché sur la plaque de câblage.

Encore une fois, la qualité nécessaire de l'alimentation PSE est soulignée. Si vous constatez un fonctionnement erratique du système, il s'agit probablement d'un problème d'alimentation. Notez le condensateur de découplage entre les lignes 3,3 V et la masse GND afin de compenser les chutes de tension dues aux pics de courant demandés par l'ESP.

Image non disponible
depuis https://iotbytes.wordpress.com/esp8266-pinouts/

Quelques remarques sur le câblage:

  • La broche 0 du GPIO doit être mise à la terre (GND) pendant le téléchargement du code. Il doit être déconnecté si vous supprimez le FTDI et que l'ESP est en mode d'exécution normal;
  • la broche CH_PD doit toujours être maintenue haute;
  • la goupille RESET est tirée haut avec une résistance de remonter 10 kΩ, et est connecté à la masse GND en appuyant sur le bouton RESET lorsque l'ESP doit être redémarré. Appuyez sur le bouton RESET à chaque fois avant de télécharger le code, et chaque fois que vous connectez ou déconnectez la broche GPIO 0. Ce bouton RESET vous fera économiser beaucoup de tracas.

Lorsque vous mettez le circuit sous tension, la LED rouge de l'ESP-01 devrait s'allumer et la LED bleue devrait s'allumer brièvement. Plus tard, lorsque vous téléchargez le code sur ESP, la LED bleue devrait clignoter pendant le processus. Toute autre combinaison dans l'éclairage LED suggère un dysfonctionnement.

Si vous souhaitez supprimer le programmateur série et démarrer l'ESP en mode d'exécution normal, assurez-vous d'avoir déconnecté la broche GPIO 0 de la masse GND et appuyez sur le bouton RESET, sinon l'ESP risque de ne pas fonctionner correctement.

Image non disponible
Schémas des câbles

Au lieu de votre programmateur USB-série, vous pouvez utiliser votre carte Arduino.

Quelques commentaires:

  1. Sur une carte Arduino fonctionnant à 5 V (comme l'Arduino UNO classique), les sorties logiques auront un potentiel de 5 V (logique TTL), et vous risquez d'endommager votre ESP8266 en les connectant directement. Vous devez donc utiliser une carte Arduino fonctionnant à 3,3 V ou ajouter un convertisseur de niveau logique 3,3 V-5 V bidirectionnel (convertisseur de niveau logique bidirectionnel) entre Arduino et ESP;
  2. La sortie 3,3 V de votre carte Arduino est insuffisante pour alimenter l'ESP qui nécessite un courant élevé. Encore une fois, pour éviter un comportement erratique et pour protéger les composants, utilisez une alimentation externe de 3,3 V pouvant fournir 0,5 A;
  3. Il est recommandé de télécharger un programme vierge sur l'Arduino avant d'y connecter des composants, pour éviter des résultats imprévisibles. Par programme "vierge", on entend un code ne comportant qu'un installer () et une boucle boucle () vide;
  4. L'Arduino UNO ne comprend qu'un seul port série matériel (connecteurs Rx et Tx). Pour communiquer avec l'ESP8266 et votre ordinateur via le moniteur série, vous devrez passer par un port série logiciel et utiliser la bibliothèque de logiciels série. Un port série logiciel présente nécessairement certaines limites, mais la communication devrait théoriquement se dérouler normalement à une vitesse pouvant atteindre 115 200 bauds. L'avantage d'une carte Arduino Mega est d'avoir des ports série matériels supplémentaires;
  5. Enfin, le piège … Lorsque vous utilisez l'Arduino en tant que programmeur série pour un autre appareil comme ESP, les données (notamment les commandes AT tapées dans le moniteur série de l'Arduino IDE) provenant de votre ordinateur connecté à l'Arduino via un câble USB arrivent sur le port Rx du Arduino (l'Arduino reçoit bien les données). Et ces données doivent atteindre la broche Rx de l'appareil qui doit également les recevoir. Dans ce cas, vous ne devez plus croiser Rx et Tx, vous devez connecter le Rx de l'Arduino au Rx de l'appareil et le Tx de l'Arduino au Tx de l'appareil.

VIA. Installation du gestionnaire

Il existe de nombreux outils pour programmer l'ESP8266, mais l'IDE Arduino (Integrated Development Environment) est sans aucun doute le moyen le plus simple de le faire.

Vous aurez besoin de la dernière version de l'IDE Arduino et y ajouterez la prise en charge de l'ESP8266. Notez à nouveau que même si vous passez par l'IDE Arduino, vous n'avez pas besoin de posséder une carte Arduino.

Dans le menu Préférences de l'IDE Arduino, vous devez saisir une URL pour gérer les cartes supplémentaires:

Image non disponible

Ici, vous devez entrer l'URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json.

Plus de détails sur le site Web ESP8266 Arduino Core.

Sélectionnez ensuite le Gestionnaire de cartes ((Gestionnaire des conseils):

Image non disponible

Dans le gestionnaire, sélectionnez le package esp8266 :

Image non disponible

Vous pouvez maintenant choisir la cible Module ESP8266 générique :

Image non disponible

Des options supplémentaires apparaissent si vous revenez au menu Outils :

Image non disponible

VI-B. Communiquez avec l'ESP8266 à l'aide des commandes AT

Une fois l'ESP connecté à votre poste, sélectionnez le port COM correspondant (menu Outils / Port…).

Si le firmware d'origine est toujours présent dans l'ESP8266, vous pouvez communiquer avec lui via le moniteur série:

  1. Ouvrez le moniteur série (Moniteur série);
  2. Sélectionnez le débit en bauds, normalement 115 200 bauds (débit en bauds), mais en fonction du micrologiciel, il peut être inférieur;
  3. Sélectionnez " NL et CR "(NL et CR), pour envoyer un Nouvelle ligne et Retour chariot à chaque envoi (bouton Envoyer);
  4. Tapez (sans les guillemets) la commande "AT", puis cliquez sur le bouton "Envoyer". L'ESP devrait retourner "OK" au moniteur série. Sinon, appuyez sur le bouton RESET ou essayez à nouveau en redémarrant après avoir débranché le câble USB. Vérifiez également que vous avez sélectionné le bon port COM. Si l'ESP ne répond toujours pas, le micrologiciel "standard" n'est peut-être pas installé et il ne comprend pas les commandes AT. Dans ce cas, ce n'est pas vraiment un problème car vous allez réécrire le firmware avec votre propre code;
  5. Tapez "AT + GMR". L'ESP renvoie le numéro de version du firmware.
Image non disponible

VI-C. Le code ▲

Copiez et collez le code ci-dessous dans la fenêtre d'édition de l'IDE Arduino. Les variables doivent être modifiées SSID et mot de passe pour que l'ESP se connecte à votre routeur.

A noter que la LED est connectée à la broche GPIO 2 de l'ESP, d'où l'initialisation de la variable int pinGPIO2 = 2;.

ESP8266_LED_Control.ino

Veuillez sélectionner

1.
2.
3.
4.
5.
6.
7.
8.
9.
dix.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.















#comprendre 







Code de chaîne Version = "Version 1.0 août 2016 par TonesB";


const réservoir* SSID = "YourSSID";
const réservoir* mot de passe = "Votre mot de passe";


int pinGPIO2 = 2; 
int ledStatus = 0;


WiFiServer WebServer (80);

Client WiFiClient;

néant installer () 
  Serial.begin (115200);
retard (dix);
Serial.println ();
Serial.println ();
Serial.println (codeVersion);


pinMode (pinGPIO2, SORTIE);
digitalWrite (pinGPIO2, LOW);
ledStatus = 0;


Serial.println ();
WiFi.disconnect ();
WiFi.mode (WIFI_STA);
Serial.print ("Connexion à");
Serial.println (SSID);
WiFi.begin (SSID, mot de passe);

  tandis que (WiFi.status () ! = WL_CONNECTED) 
    retard (500);
Serial.print (".");
  
  Serial.println ("");
Serial.println ("Connecté au WiFi");


WebServer.begin ();
Serial.println ("Le serveur Web a démarré");


Serial.print ("Vous pouvez vous connecter à l'ESP8266 à cette URL:");
Serial.print ("http: //");
Serial.print (WiFi.localIP ());
Serial.println ("/");


néant boucle () 
  
  client = WebServer.available ();
  si ((!client) 
    revenir;
  

  
  Serial.println ("Nouvel utilisateur");
  tandis que ((!client.available ()) 
    retard (1);
  

  
  Demande de chaîne = client.readStringUntil (& # 39; & # 39; r  n& # 39; & # 39;);
Serial.println (demande);
client.flush ();

  
  si (request.indexOf ("/ LED = ON") ! = -1) 
    analogWrite (pinGPIO2, 1023);
ledStatus = 1;
  
  si (request.indexOf ("/ LED = OFF") ! = -1) 
    analogWrite (pinGPIO2, 0);
ledStatus = 0;
  
  si (request.indexOf ("/ LED = DIM") ! = -1) 
    analogWrite (pinGPIO2, 512);
ledStatus = 2;
  

  
  client.println ("HTTP / 1.1 200 OK");
client.println ("Content-Type: text / html; charset = UTF-8");
client.println ("");
client.println ("");
client.println ("");
client.println ("");
client.println ("ESP8266 Demo");
client.println ("");
client.println ("");
client.println ("<a href = "/ "> Actualiser le statut");
client.println ("

"
); si (ledStatus == 0) client.print ("La LED est éteinte
"
); client.println ("Tournez la LED <a href = "/ LED = ON "> ON
"
); client.println ("Réglez la LED sur <a href = "/ LED = DIM "> DIM
"
); autre si (ledStatus == 1) client.print ("La LED est allumée
"
); client.println ("Tournez la LED <a href = "/ LED = OFF "> OFF
"
); client.println ("Réglez la LED sur <a href = "/ LED = DIM "> DIM
"
); autre si (ledStatus == 2) client.print ("La LED est grisée
"
); client.println ("Tournez la LED <a href = "/ LED = OFF "> OFF
"
); client.println ("Tournez la LED <a href = "/ LED = ON "> ON
"
); client.println ("
"
); client.println ("<a href = "http://www.instructables.com/id/ESP8266-WiFi-Module-for-Dummies/ " cible = "_Vide "> Voir la page Instructables: Module WiFi ESP8266 pour les nuls
"
); client.println ("<a href = "http://www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP8266-Firmware/ " cible = "_Vide "> Voir la page Instructables: Le guide simple pour flasher votre firmware ESP8266
"
); client.println ("
"
); client.println (""); client.println (""); retard (1); Serial.println ("Utilisateur déconnecté"); Serial.println ("");

Vérifiez la dernière fois que votre assemblage est prêt et connectez votre câble USB au programmateur série.

VI-D. Télécharger le code sur ESP8266 ▲

Lorsque vous téléchargez le code, la broche GPIO 0 doit être connectée à la masse GND. Vous pouvez retirer le fil de câblage correspondant après le téléchargement. Appuyez sur le bouton RESET avant de télécharger. Si le téléchargement échoue, déconnectez et reconnectez le câble USB et réessayez. En dernier recours, redémarrez votre PC, il arrive parfois que le port COM perde du terrain.

La progression du téléchargement est affichée dans la fenêtre de notification IDE comme ci-dessous:

Image non disponible

La LED ESP bleue devrait clignoter pendant le téléchargement.

Lorsque vous supprimez le programmateur série une fois le code téléchargé, vous devrez retirer le câble reliant la broche GPIO 0 à la masse, puis appuyer sur le bouton RESET pour que l'ESP démarre correctement.

LA VIE. ESP8266, serveur Web ▲

Ouvrez le moniteur série, vous devriez voir l'adresse IP prise par l'ESP. Vous pouvez également consulter l'interface d'administration de votre routeur pour découvrir les périphériques qui y sont connectés. L'ESP devrait apparaître dans la liste avec un nom comme: ESP_1A64CA. Tant que vous y êtes, vous pouvez réserver une adresse fixe pour l'ESP et configurer le port (redirection de port) pour pouvoir se connecter à ESP hors de votre domicile sur Internet.

Image non disponible

Ouvrez maintenant votre navigateur et entrez l'adresse IP de l'ESP:

Image non disponible
La LED est éteinte …

Testez le bon fonctionnement en cliquant sur les liens ON ou OFF pour allumer ou éteindre la LED. En cliquant sur le lien DIM, la LED devrait s'allumer, mais avec une luminosité plus faible.

Image non disponible
… puis cliquez sur le lien ON, la LED s'allume!

ESP8266

Commandes AT

Gestionnaire de cartes Arduino (

Gestionnaire de cartes Arduino

)

Avez-vous aimé ce tutoriel? Alors partagez-le en cliquant sur les boutons suivants: Viadeo Twitter Facebook Partager sur Google+

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.