Module WiFi ESP8266 pour les nuls

Présentation du module WiFi ESP8266

L'ESP8266 est un module WiFi vraiment utile et bon marché pour contrôler les appareils sur Internet. Il peut fonctionner avec un micro-contrôleur comme l'Arduino ou il peut être programmé pour fonctionner seul.

L'Internet des objets (IoT) vient d'être rendu beaucoup moins cher et plus facile!

L'ESP8266 est livré avec un firmware installé en usine vous permettant de le contrôler avec des «commandes AT» standard. Vous pouvez également créer et télécharger facilement votre propre code, ce qui le rend extrêmement puissant et flexible.

L'ESP8266 a été lancé en 2014 et gagne rapidement en popularité. Il n'y a qu'un seul processeur ESP8266, mais il se trouve sur de nombreuses cartes de répartition différentes. Tout cela diffère en termes de broches exposées et de taille de la mémoire flash, etc. Ces cartes de dérivation ont évolué rapidement au fil des ans et il existe de nombreuses informations sur le Web. C'est à la fois une bénédiction et une malédiction car certains des conseils sont dépassés ou tout simplement faux.

En conséquence, il m'a fallu 3 jours avant de pouvoir faire quoi que ce soit! Certaines personnes ont de la chance, mais pour moi, ce fut une bataille pour que tout fonctionne. Parfois, je pensais l'avoir cassé, mais avec une certaine persévérance, il revenait toujours à la vie!

Je l'ai enfin fait chanter et danser et cela s'avère plus facile que je ne le pensais!

J'ai regroupé toutes les informations utiles que j'ai trouvées en un seul endroit et j'ai pensé que je partagerais cela dans un instructable. Avec un peu de chance, vous serez rapidement opérationnel avec toutes les fonctionnalités de base dont vous aurez besoin.

Dans cet instructable, nous examinons la carte de dérivation ESP-01.

Cette même approche devrait cependant s'appliquer à la plupart (sinon toutes) des variantes de l'ESP.

Étape 1: L'ESP-01 en bref

  1. Il prend en charge le protocole 802.11 b / g / n
  2. Il peut se connecter à votre routeur et fonctionner en tant que client ou il peut être un point d'accès lui-même ou les deux!
  3. Il est adressable IP et peut être un serveur Web
  4. La version «standard» possède 2 broches numériques qui peuvent être utilisées pour l'entrée ou la sortie. Par exemple: pour piloter des LED ou des relais. Ces broches peuvent également être utilisées pour PWM. D'autres versions ont plus de broches exposées. Par exemple, l'ESP-12, qui est une bonne option si vous avez besoin de plus de broches. Dans les deux cas, la programmation est toujours la même.
  5. L'entrée analogique est également disponible sur la puce ESP8266 (ADC / TOUT) mais elle n'est pas câblée sur l'ESP-01.
  6. Il peut être combiné avec un Arduino ou il peut être programmé pour fonctionner seul
  7. Il existe différents outils et environnements de développement (IDE) pour le programmer.
  8. Et il en a beaucoup plus….

Dans cette démo, l'ESP8266 agit comme un serveur Web hébergeant une page Web avec laquelle vous pouvez interagir via WiFi.

Avec cette démo, vous pouvez démarrer votre propre projet domotique et le contrôler depuis le web!

Étape 2: Ce dont vous aurez besoin

Voyons d'abord si nous pouvons le mettre en service.

De nombreux sites recommandent de re-flasher le firmware et d'utiliser divers outils. Vous n'avez pas besoin de le faire pour l'instant.

Nous allons remplacer le firmware par notre propre code. Dans un autre instructable: Le guide simple pour flasher votre firmware ESP8266 Je vous montre comment le restaurer à une version d'usine mise à jour. Si vous ne programmez l'ESP8266 qu'avec votre propre code - comme nous le ferons dans cette démo - alors vous n'avez pas besoin du firmware d'usine. Votre code est le firmware.

Nous utiliserons l'IDE Arduino comme outil de programmation, mais nous n'avons pas besoin d'un Arduino lui-même. L'ESP8266 possède toutes les fonctionnalités dont nous avons besoin.

Remarque: après avoir téléchargé votre propre code, votre ESP8266 ne répond plus aux commandes AT. Votre code a remplacé le firmware. En utilisant votre code et la bibliothèque ESP8266 dans l'IDE Arduino, vous aurez accès à un ensemble de commandes plus riche. Voir la documentation ici: //www.arduino.cc/en/Reference/WiFi

Vous pouvez restaurer le firmware sur l'ESP8266 pour revenir aux commandes AT si vous le souhaitez. Voir mon autre instructable: Le guide simple pour flasher votre firmware ESP8266.

NB : C'est un module 3, 3V et non 5V. L'ESP-01 est plus robuste que je ne le pensais, mais vous devez le configurer correctement, surtout si vous l'utilisez avec un programmateur USB vers série 5 V ou un micro-contrôleur, sinon vous pouvez le faire frire!

Ce dont vous aurez besoin:

  1. Un ESP8266 bien sûr (utilisez la variante ESP-01 ou adaptez votre câblage en conséquence)
  2. Planche à pain
  3. Programmeur USB vers série 3, 3 V comme le FTDI Basic (parfois appelé UART: récepteur / émetteur asynchrone universel). Certains viennent avec un cavalier pour basculer entre 5V et 3, 3V.
  4. Fils de cavalier de planche à pain
  5. Une alimentation séparée de 3, 3 V. Vous en avez besoin car l'ESP8266 peut mâcher beaucoup de mA (> 250mA parfois). La sortie 3, 3 V du programmateur série ou de l'Arduino n'est pas suffisante. Sans alimentation séparée, votre ESP peut être erratique et vous perdrez du temps à essayer de télécharger du code.
  6. Led, bouton-poussoir, résistance 330 ohms, résistance 10k ohms, condensateur 0, 1 µF sur votre alimentation (selon la pratique standard).
  7. Ajoutez un convertisseur de niveau logique dans le circuit si vous utilisez un microcontrôleur ou un programmateur FTDI à 5 V

Si vous avez un ESP8266 avec un port USB intégré, vous n'avez pas besoin de passer par ces tracas. Le Wemos D1 Mini est une bonne alternative. Voir ceci: //www.wemos.cc/product/d1-mini.html

Étape 3: Les composants plus en détail

ESP-01

J'ai obtenu mon ESP-01 sur: //netram.co.za/2720-wifi-serial-transceiver-module-esp8266.html

Vous pouvez consulter les différentes versions ici: //www.esp8266.com/wiki/doku.php?id=esp8266-module-family


Alimentation électrique pour planche à pain

Une bonne alimentation électrique semble être un aspect crucial pour l'ESP8266. Un bloc d'alimentation est vraiment utile, surtout lorsque vous avez affaire à des tensions mixtes. Celui illustré ici fournit 3, 3 V et 5, 5 V et se branche directement sur votre planche à pain. J'aurais dû en avoir un il y a longtemps! L'ESP8266 peut mâcher beaucoup de mA (> 300mA parfois). Si votre ESP redémarre ou semble peu fiable, vous avez besoin d'une alimentation séparée pour l'ESP (gardez un terrain d'entente cependant). Connectez également un condensateur sur 3, 3 V et à la terre pour minimiser les pointes et fournir un petit réservoir d'énergie.

//netram.co.za/938-breadboard-power-supply-5v33v.html


Programmateur USB vers série

Obtenez-en un qui prend en charge 3, 3 V ou qui a un cavalier 3, 3 V / 5 V sinon, si vous n'avez que 5 V, vous devez utiliser un convertisseur de niveau logique bidirectionnel entre le programmateur et l'ESP8266. Le FTDI Basic possède un cavalier 3, 3 V / 5 V à l'arrière:

//netram.co.za/2842-ftdi-basic-usb-to-ttl-programmer.html

//netram.co.za/2679-logic-level-converter-bi-directional.html


Convertisseur de niveau logique

5V et 3, 3V bidirectionnels. Ceci n'est requis que si vous utilisez un programmateur série 5V.


Cavaliers de planche à pain

Incluez des cavaliers JST car ils sont pratiques pour se brancher sur des modules avec des broches, puis les joindre à la planche à pain. Inclure des câbles mâle à femelle à cet effet. L'ESP-01 n'est pas compatible avec la maquette, vous en aurez donc besoin.

Étape 4: La disposition de la planche à pain

En regardant la planche à pain, le programmeur FTDI est le tableau rouge en haut et l'ESP8266-01 en bas. Le programmateur FTDI n'a besoin que de 3 fils connectés: le fil de terre et le RX vers TX et TX vers RX sur l'ESP. Sur la gauche se trouve l'alimentation de la planche à pain (elle se branche normalement sur la planche à pain).

NB: La qualité de l'alimentation électrique de l'ESP est l'un des facteurs les plus importants. Il y a un petit condensateur (0, 1 uF) sur 3, 3 V et la masse pour minimiser les pointes. Si vous rencontrez des problèmes avec la programmation de votre ESP, il se peut que ce soit votre alimentation. Ce qui vous aidera, c'est d'ajouter un autre condensateur plus grand sur 3, 3 V et la masse. par exemple: 10uF.

Étape 5: Les broches ESP-01

L'image ci-dessus des brochages ESP8266 se trouve partout sur le net. Je pense que cela peut provenir du livre de Neil «Kolban sur ESP8266». Ceci est une ressource fantastique et est disponible en téléchargement pdf à partir de: //leanpub.com/ESP8266_ESP32. Il fait 400 pages, a été mis à jour en novembre 2016, et si vous êtes dans un développement sérieux d'ESP8266, c'est le livre à obtenir. C'est gratuit mais faites un don si vous le pouvez.

Remarques sur le câblage de la planche à pain:

  • Les fils sont montrés se connectant à l'avant de l'ESP-01 pour plus de clarté. Fixez-les aux mêmes broches par derrière. L'ESP-01 n'est pas compatible avec la planche à pain et les cavaliers mâle-femelle à connecteur JST sont pratiques pour le connecter.
  • GPIO 0 doit être maintenu bas pour la programmation. Cela doit être supprimé si vous retirez le FTDI et utilisez l'ESP8266 sur sa propre alimentation.
  • CH_PD doit être maintenu élevé en tout temps.
  • La broche RESET est maintenue haute avec une résistance de 10k ohms et mise à la terre par le bouton RESET qui redémarrera la puce. Appuyez sur RESET à chaque fois avant de télécharger le code, et chaque fois que vous connectez ou déconnectez GPIO 0. Le bouton de réinitialisation vous évitera 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 clignoter brièvement. Plus tard, lors du téléchargement du code sur l'ESP, la LED bleue devrait clignoter en continu pendant le processus. Toute autre combinaison de LED suggère qu'il y a un problème.

NB : Si vous souhaitez supprimer le programmateur série et exécuter l'ESP seul, assurez-vous de déconnecter le GPIO 0 de la masse et appuyez sur le bouton RESET sinon l'ESP risque de ne pas fonctionner correctement.

Étape 6: Schéma

Étape 7: utiliser l'Arduino au lieu d'un programmeur série

Vous pouvez également utiliser un Arduino au lieu de votre programmateur USB vers série.

Quelques points à noter:

  1. Sur un Arduino 5V, la sortie numérique sera à 5V et cela pourrait faire frire votre ESP2866. Utilisez donc un Arduino 3, 3 V ou une puce de convertisseur logique
  2. La Vout 3, 3 V sur l'Arduino est insuffisante pour piloter votre ESP8266 et vous pourriez obtenir des résultats peu fiables. Utilisez de préférence une autre alimentation 3, 3 V.
  3. Comme pratique recommandée, téléchargez toujours une esquisse vierge sur votre Arduino avant de connecter tout autre appareil pour éviter tout résultat imprévisible. Une esquisse vide a des fonctions setup () et loop () vides.
  4. Si vous utilisez un Arduino Uno, il n'a qu'une seule paire TX&RX matérielle. Pour communiquer simultanément avec l'ESP8266 et le moniteur série, vous devrez également utiliser le fichier d'inclusion SoftwareSerial. Il avait auparavant une limitation du débit en bauds mais peut désormais théoriquement prendre en charge un débit en bauds jusqu'à 115200. Un Mega 2560 a plus de broches TX et RX matérielles, ce qui pourrait être une meilleure façon de procéder.
  5. Et enfin et surtout : regardez attentivement les broches TX et RX sur l'Arduino. Vous remarquerez qu'ils ont des flèches à côté d'eux. La broche TX a une flèche pointant loin d'elle. Ce que cela dit est TX IN! Ce que cela signifie vraiment, c'est que la broche TX est en fait la broche RX! Et de même, la broche RX est en fait la broche TX! Donc, lorsque vous utilisez l'Arduino comme adaptateur série avec un autre appareil, vous devez connecter RX à RX et TX à TX. Je n'ai découvert cette nuance qu'après plusieurs heures de douleur! Pourquoi-oh-pourquoi l'ont-ils étiqueté comme ça?

Alors que je pose des questions: pourquoi l'ESP-01 a été produit avec si peu de brochages utiles exposés, cela me déroute aussi! C'est toujours un excellent point de départ, mais si vous avez besoin de quelque chose de plus, optez pour l'ESP-12.

Pour simplifier les choses, essayez un ESP-12 avec une clé USB intégrée comme:

//www.wemos.cc/product/d1-mini.html

Étape 8: Programmation à l'aide de l'IDE Arduino

Il existe différents outils pour programmer l'ESP8266 mais l'Arduino IDE (Integrated Development Environment) est de loin le plus simple pour la plupart des gens.

Pour programmer l'ESP8266 avec l'IDE Arduino, vous devrez télécharger la dernière version si vous ne l'avez pas déjà, puis installer le support ESP8266. Notez que vous utilisez uniquement l'environnement de programmation Arduino, vous n'avez pas besoin de matériel Arduino lui-même.

Pour télécharger l'IDE Arduino, allez sur: //www.arduino.cc/en/Main/Software

Démarrez l'IDE Arduino et sélectionnez le gestionnaire de cartes…

Étape 9: configuration du gestionnaire de cartes ESP2866

Démarrez l'IDE Arduino et sélectionnez le gestionnaire de cartes sous Outils / Carte.

Étape 10: installer le gestionnaire de cartes ESP2866

Trouvez l'esp8266, sélectionnez-le et cliquez sur Installer.

Étape 11: Configuration des préférences Arduino

Allez dans Fichier / Préférences

Étape 12: URL du gestionnaire de tableaux

Dans le champ URL du gestionnaire de cartes supplémentaires, entrez l'URL du package ESP8266 qui est:

//arduino.esp8266.com/stable/package_esp8266com_index.json

Étape 13: Configuration ESP8266 dans IDE

Sélectionnez le «Module générique ESP8266» et revenez au gestionnaire de cartes à nouveau

Étape 14: Options ESP8266

Configurez vos options ESP-01. Sélectionnez le port COM approprié en fonction de votre PC.

Étape 15: Parler à ESP8266

Si vous avez toujours le firmware d'origine sur votre ESP8266, vous pouvez essayer de lui parler avec le moniteur série.

  1. Ouvrez le moniteur série Arduino:
  2. Sélectionnez le débit en bauds approprié, qui est généralement de 115200 mais peut être inférieur à 9600 en fonction du micrologiciel de l'ESP.
  3. Sélectionnez également «NL & CR». C'est-à-dire: nouvelle ligne et retour chariot après chaque «envoi».
  4. Tapez AT et appuyez sur entrée. L'ESP devrait revenir avec OK. Sinon, appuyez sur le bouton RESET ou essayez de débrancher le câble USB et de recommencer. Assurez-vous également que le bon port COM est sélectionné. De plus, si vous n'avez pas le micrologiciel «standard» sur votre ESP, il peut ne pas comprendre l'ensemble de commandes AT. Ce n'est pas nécessairement un problème pour le moment car vous écraserez cela avec du code Arduino plus tard dans cet instructable.
  5. Tapez AT + GMR. Cela devrait revenir avec les numéros de version du firmware sur votre ESP. Dans un autre instructable, je vous montre comment restaurer la dernière version du firmware «usine» (si vous le souhaitez).

Étape 16: Code Arduino ESP8266

Téléchargez le fichier de code (ESP8266_LED_Control.zip), décompressez-le et ouvrez-le dans l'IDE Arduino.

Modifiez le paramètre du routeur pour le vôtre. c'est-à-dire: modifiez les champs SSID et MOT DE PASSE.

Assurez-vous que votre maquette est correctement configurée et connectez votre câble USB au programmateur série.

NB: Lorsque vous adressez les broches GPIO dans votre code, vous devez utiliser le numéro GPIO. par exemple: 2 pour GPIO 2 et non le numéro de broche physique qui sera différent.

Pièces jointes

  • ESP8266_LED_Control.zip Télécharger

Étape 17: Téléchargement de votre code sur l'ESP8266

Assurez-vous d'avoir fermé TOUS les moniteurs de port série sur le même port, si vous les utilisez. Par exemple: des outils comme CoolTerm. Ouvrez à nouveau le moniteur série Arduino, car vous devrez voir l'adresse IP de l'ESP après son chargement.

NB : Pour télécharger votre code, vous devez avoir GPIO 0 mis à la terre. Vous pouvez le laisser là tout en exécutant votre code dans le navigateur. Appuyez sur le bouton RESET avant chaque chargement. Si le téléchargement échoue, vérifiez vos paramètres et essayez de déconnecter et reconnecter le câble USB. Essayez Ctrl & U plusieurs fois. Si tout le reste échoue, essayez de redémarrer votre PC. Parfois, les ports COM sont un peu gâchés.

La LED bleue sur l'ESP devrait clignoter si le code est téléchargé avec succès. La progression du téléchargement devrait ressembler aux images ci-dessus.

NB : Si vous souhaitez supprimer le programmateur série et exécuter l'ESP seul, assurez-vous de déconnecter le GPIO 0 de la masse et appuyez sur le bouton RESET sinon l'ESP risque de ne pas fonctionner correctement.

Si vos téléchargements ESP8266 se comportent de manière irrégulière, améliorez votre alimentation.

Étape 18: Voyons ce qu'il fait

Basculez vers le moniteur série Arduino et vous devriez voir l'adresse IP de l'ESP. Vous pouvez également vous connecter à votre routeur et vérifier ce qui y est connecté. L'appareil apparaîtra dans la liste des IP connectées avec un nom comme: ESP_1A6C4A.

Pendant que vous êtes dans votre routeur, vous pouvez toujours réserver l'adresse IP de l'ESP et configurer une redirection de port afin de pouvoir vous connecter à l'ESP depuis l'extérieur de votre réseau - comme le bureau.

Vous devriez voir quelque chose comme ci-dessus. Utilisez cette adresse IP dans votre navigateur.

Étape 19: Essayons-le

Après avoir cliqué sur quelques liens, nous espérons que la LED s'allumera et s'éteindra!

Vous voyez également qu'il peut faire du PWM et atténuer la LED.

L'ESP8266 peut également gérer les interruptions sur les broches numériques et possède également une entrée analogique. La broche d'entrée analogique n'est cependant pas exposée sur l'ESP-01,

Internet Explorer fonctionne bien mais pour une raison quelconque, FireFox semble très lent avec l'ESP. Cela peut avoir quelque chose à voir avec la configuration de l'en-tête HTTP.

Remarque: après avoir téléchargé votre propre code, votre ESP8266 ne répond plus aux commandes AT. Votre code a remplacé le firmware. En utilisant votre code et la bibliothèque ESP8266 dans l'IDE Arduino, vous aurez accès à un ensemble de commandes plus riche. Voir la documentation ici: //www.arduino.cc/en/Reference/WiFi.

Vous pouvez restaurer le firmware sur l'ESP8266 pour revenir aux commandes AT si vous le souhaitez. Voir mon autre instructable: Le guide simple pour flasher votre firmware ESP8266.

Étape 20: Ressources ESP

"Le livre de Kolban sur ESP8266" mis à jour en novembre 2016 est destiné aux passionnés sérieux.

Il fait plus de 470 pages et possède une quantité incroyable de détails. Vous pouvez l'obtenir gratuitement mais faites un don si vous le pouvez.

//leanpub.com/ESP8266_ESP32

Il a maintenant séparé l'ESP32 et publié un nouveau livre:

//leanpub.com/kolban-ESP32

ESP32

"Comme l'ESP8266, l'ESP32 est un microcontrôleur compatible WiFi, en plus il prend en charge la technologie Bluetooth basse énergie (par exemple BLE, BT4.0, Bluetooth Smart) et près de 30 broches d'E / S."

Voir: //www.sparkfun.com/products/13907

Sites ESP

//www.esp8266.com/wiki/doku.php?id=esp8266-module-family

//www.esp8266.com/

//iotbytes.wordpress.com/esp8266-pinouts/

//espressif.com/en/products/hardware/esp8266ex/resources


Commandes AT

//www.itead.cc/wiki/ESP8266_Serial_WIFI_Module#AT_Commands

//espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf


Gestionnaire de cartes Arduino

//randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/

//github.com/esp8266/Arduino


Remarques sur le flashage du firmware:

J'ai publié un instructable vous montrant comment flasher le firmware d'usine sur votre ESP8266.

Voir: //www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP8266-Firmware/

Articles Connexes