Afficher la pageAnciennes révisionsLiens de retourExporter en PDFHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. [[microc:accueilmc|{{ :iconemaison.jpg?nolink&30|Sommaire Microcontrôleur}}]] ===== Microcontrôleurs - ESP8266 Feather Huzzah ===== [Mise à jour le 10/8/2023] {{ :microc:uc:feather_huzzah_esp8266.jpg?nolink|}} == Ressources == * Généralités sur l'ESP8266 <html><a href="https://fr.wikipedia.org/wiki/ESP8266" target="_blank">Wikipédia</a></html> * Sites <html><a href="https://www.espressif.com/en/products/socs/esp8266" target="_blank">Espressif</a></html> et <html><a href = "https://learn.adafruit.com/adafruit-io-basics-esp8266-arduino" target="_blank"> Adafruit</a></html> * <html><a href="https://github.com/esp8266/Arduino#using-git-version-basic-instructions" target="_blank">ESP8266/Arduino</a></html> sur Github * <html><a href = "https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/" target="_blank">Connectique des différents modèles de cartes</a></html> * <html><a href="https://docs.arduino.cc/software/ide-v2" target="_blank">Arduino IDE 2</a></html> == Lectures connexes == * <html><a href="https://sebastien.warin.fr/2016/07/12/4138-decouverte-des-esp8266-le-microcontroleur-connecte-par-wifi-pour-2-au-potentiel-phenomenal-avec-constellation/" target="_blank">Découverte des ESP8266 : le microcontrôleur connecté par Wifi pour 2€ au potentiel phénoménal</a></html> * Wiki [[materiels:accueilmateriels|" Matériels - Capteurs, afficheurs, préactionneurs, etc."]] * Wiki [[microc:iot:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32) Feather Huzzah ou MKR1010"]] * Wiki [[microc:arduino:spiffs|"Le système de fichiers LittleFS (ESP)"]] (Mini Serre) * Exemples <html><a href="https://tttapa.github.io/ESP8266/Chap10%20-%20Simple%20Web%20Server.html" target="_blank">"ESP8266 First Web Server"</a></html> * Arduino pour l'ESP8266 (Documentation) : <html><a href="https://arduino-esp8266.readthedocs.io/en/latest/index.html" target="_blank">ESP8266 Arduino Core</a></html> * Bibliothèques - <html><a href="https://www.arduinolibraries.info/" target="_blank">Arduino Library List</a></html> == Distributeurs == * <html><a href="https://www.gotronic.fr/art-feather-huzzah-ada2821-24433.htm" target="_blank">GO TRONIC</a></html>, <html><a href="https://www.adafruit.com/product/2471" target="_blank">(Adafruit)</a></html> ==== 1. Généralités ==== La carte Feather HUZZAH ESP8266, développée par Adafruit, est une carte de développement WiFi “tout-en-un” à ESP8226 avec USB intégré et chargeur de batterie. ==== 2. Principales caractéristiques ==== * **SOC** : <html><a href="https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf" target="_blank">ESP8266</a></html> * **Processeur** : 32-bit CPU @ 80MHz * **Wifi** 802.11 b/g/n (WEP/WPA-PSK/WPA2-PSK) * **Flash** : 4MB * **SRAM** : 96K * **GPIO** : 9 (logique 3,3V) partagés avec I2C et SPI * **I²C** : 1 (logiciel) * **SPI** : 1 * **UART** : 2 * **Entrée analogique** : 1 (**1V max**) * **Alimentation** : 5V régulateur 3.3V (pic de courant 500mA max) * **Chargeur Lipo intégré** :( 3,7V - 4,2V) - 100mA * **LED** rouge à usage général sur la broche 0 * **Bouton** de Reset * **Consommation** : 60 à 200mA * **Dimensions** : 51mm x 23mm x 8mm * ** Masse** : 6g ==== 3. Brochage ==== * Description de la connectique des **différents modèles** de cartes <html><a href = "https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/" target="_blank">Random Nerd Tutorials</a></html>. * **Identification** et description des entrées / sorties de la carte Huzzah sur le site <html><a href="https://learn.adafruit.com/adafruit-feather-huzzah-esp8266/pinouts/" target="_blank">Adafruit</a></html>. {{ :arduino:esp8266_pinout.jpg?nolink |}} ==== 4. Accessoires ==== {{ :arduino:grovesfw.jpg?nolink|Grove Shield FeatherWing for Particle Mesh and all Feathers}} * **Adafruit Grove Shield FeatherWing** pour Particle Mesh et tous les Feathers((Avec une ESP8266 Feather Huzzah, il est nécessaire de connecter une résistance de 10k entre la broche CHPD et le 3,3V)). * **Caractéristiques** * 8 connecteurs Grove : * 3 connecteurs analogiques, 2 broches analogiques par connecteur, 6 broches analogiques au total; * 2 connecteurs numériques, 2 broches numériques par connecteur, 4 broches numériques au total; * 2 connecteurs I2C * 1 connecteur UART * **Schéma** de la carte <html><a href="https://webge.fr/doc/wikis/pdf/Grove Shield Particle Mesh.pdf" target="_blank">ici</a></html> * **Photo de l'adaptation** à réaliser sur la carte Adafruit Grove Shield (R=10k)((Avec une ESP8266 Feather Huzzah, il est nécessaire de connecter une résistance de 10k entre la broche CHPD et le 3,3V)) : <html><a href="https://webge.fr/doc/wikis/pdf/Modification Grove Shield for Particle Mesh.jpg" target="_blank">ici</a></html> * **Distributeurs** : <html><a href="https://www.mouser.fr/ProductDetail/Adafruit/4309?qs=%2Fha2pyFaduiC9hH7GBUhRjiz8AloEC%252BkIqPqAgnFvLmvH6igu2Mwi%2FFK%2FAC%252B1hLz" target = "_blank">Mouser</a> et <a href="https://www.adafruit.com/product/4309" target="_blank"> (Adafruit)</a> </html> * **Table de correspondance** ^ Shield ^ ESP ^ Commentaires ^ |D2|2|GPIO 2 est connectée à la LED bleue située près de l’antenne WiFi. Utilisable comme sortie.| |D3|16|GPIO 16 utilisable comme sortie.| |D4|0|GPIO 0 n’a pas de pull-up interne. Est connectée à la LED rouge. Utilisable comme sortie.| |D5|15|GPIO 15 utilisable comme sortie.| {{ :arduino:battesp.jpg?nolink|}} * **Batterie Lipo 3,7V 500mA** * **Caractéristiques** * Tension: 3,7 Vcc * Intensité: 400 mAh * Courant de décharge maxi: 880 mA * Connecteur: 2 broches type JST * Dimensions: 35,5 x 25,5 x 5,2 mm * Longueur du câble: 100 mm * Poids: 10 g * **Distributeurs** : <html><a href="https://www.gotronic.fr/art-accu-lipo-3-7-v-400-mah-5812.htm" target = "_blank">Gotronic</a></html> ==== 5. Préparation de l'IDE Arduino ==== === 5.1 Généralités === L'**ESP8266 Arduino core** est livré avec des bibliothèques permettant : * de communiquer via le WiFi en utilisant les protocoles TCP et UDP, * de configurer des serveurs HTTP, mDNS, SSDP et DNS, * d'effectuer des mises à jour OTA, * d'utiliser un système de fichiers en mémoire flash et * de travailler avec des cartes SD, des servos, des périphériques SPI et I2C. === 5.2 Installation du support pour les cartes à "ESP8266" === * L'**installation du support ESP8266** pour Arduino se fait en passant par l’édition des préférences (**Fichier** -> **Préférences**). \\ Dans « URL de gestionnaire de cartes supplémentaires » ajoutez <code>https://arduino.esp8266.com/stable/package_esp8266com_index.json</code>{{ :arduino:preferencearduino.png?nolink |}} __Remarque__ : une URL par ligne, pas de séparateur ! === 5.3 Installation du gestionnaire de carte === * Dans le menu « **Outils** » , « **Type de carte** » et « **Gestionnaire de carte** », rechercher « **esp8266 by ESP8266 Community** » et installer le composant. {{ :arduino:esp8266bibl.png?nolink |}} ==== 6. Installation de MicroPython ==== * Wiki [[microc:uc:espressif|Installation de MicroPython sur les modules Espressif ESP32 et ESP8266]] ==== 7. Programmation de la carte ESP8266 ==== === 7.1 Premier Programme (blink) === <tabs> * [[#tab-arduino_1|Arduino]] * [[#tab-micropy_1|MicropyPython]] <pane id="tab-arduino_1"> <code cpp *.cpp> void setup() { pinMode(LED_BUILTIN,OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } </code> </pane> <pane id="tab-micropy_1"> A faire </pane> </tabs> === 7.2 Test du Wifi === <tabs> * [[#tab-arduino_2|Arduino]] * [[#tab-micropy_2|MicropyPython]] <pane id="tab-arduino_2"> <callout type="warning" icon="true">Le SSID et le mot de passe du réseau doivent avoir été préalablement chargés avec <html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_ESP_infosClientMQTT.zip">infoClientMQTT_ESP8266.ino</a></html></callout> <code cpp *.cpp> // Connexion au wifi #include <ESP8266WiFi.h> // mDNS pour la résolution des noms des hôtes #include <ESP8266mDNS.h> // EEPROM : émule une EEPROM dans l'ESP8266 #include <EEPROM.h> // --------------------------------------------------------------------------------- // Structure pour la configuration de la connexion au réseau wifi struct EEconf { // Les champs sont remplis par le croquis infoClientMQTT_ESP8266.ino // avec les données stockées dans l'EEPROM (émulée) char ssid[32]; // SSID du réseau. Exemple : SynBoxLAN, char password[64]; // Mot de passe du réseau. Exemple : 12345678 char myhostname[32]; // Nom donné au client MQTT. Exemple : ESP8266_1 } readconf; // Objet pour la connexion au réseau wifi WiFiClient espClient; // Connexion au Wifi // --------------------------------------------------------------------------------- void setup_wifi() { // Mode station WiFi.mode(WIFI_STA); Serial.println(); Serial.print("Tentative de connexion à "); Serial.println(readconf.ssid); // Connexion au Wifi WiFi.begin(readconf.ssid, readconf.password); while (WiFi.status() != WL_CONNECTED) { delay(5000); Serial.print("."); } // Affichage Serial.println(""); Serial.println("Connexion au Wifi ok"); Serial.print("MAC: "); Serial.println(WiFi.macAddress()); Serial.print("Adresse IP : "); Serial.println(WiFi.localIP()); // Configuration de mDNS WiFi.hostname(readconf.myhostname); if (!MDNS.begin(readconf.myhostname)) { Serial.println("Erreur de configuration mDNS !"); } else { Serial.println("Répondeur mDNS démarré"); Serial.println(readconf.myhostname); } } void setup() { // Configuration du moniteur série Serial.begin(115200); delay(500); // Lecture des paramètres sauvegardés par ARD_ESP_SauveInfosClientMqtt.ino EEPROM.begin(sizeof(readconf)); EEPROM.get(0, readconf); // Connexion au Wifi setup_wifi(); } void loop() { delay(100); } </code> // Exemple de résultat attendu // {{ :arduino:uc:esp8266testwifi.png?nolink |}} {{ :arduino:uc:platformioico.png?nolink&50|}} <callout type="tip" icon="true" title="TELECHARGER">Le <html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_ESP32_testWifi.zip" target="_blank">projet</a></html> PlatformIO pour VSCode.</callout> </pane> <pane id="tab-micropy_2"> A faire </pane> </tabs> ==== 8. Résolution des problèmes ==== === 8.1 Installation du driver USB === * Si le port COM n'est pas identifiable lors de la connexion de l'ESP8266 au PC, installer le driver USB depuis <html><a href = "https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers" target="_blank">Silicon Lab</a></html>. === 8.2 Réinstallation ou mise à jour du firmware === * **Programmation avec Arduino** : <html><a href = "https://github.com/nodemcu/nodemcu-flasher/tree/master/Win64/Release" target="_blank">nodemcu-flasher</a></html> pour Windows 64-bit pour réinstaller le paquet <html><a href = "https://github.com/esp8266/Arduino/releases/" target="_blank">package_esp8266com_index.json</a></html> disponible sur github. ==== Pour aller plus loin ==== * **ESP8266 SDK** - <html><a href="https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_en.pdf" target="_blank">Getting Started Guide</a></html> microc/uc/esp8266.txt Dernière modification : 2023/08/19 11:30de phil