arduino:uc:esp8266

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
arduino:uc:esp8266 [2021/07/23 09:31] – [La carte ESP8266 Feather Huzzah] philarduino:uc:esp8266 [2022/08/03 11:57] phil
Ligne 1: Ligne 1:
 +[[arduino:accueilarduino|{{ :iconemaison.jpg?nolink&30|Sommaire Arduino}}]]
 +
 +===== La carte ESP8266 Feather Huzzah =====
 +[Mise à jour le 23/7/2021]
 +{{ :arduino:arduino.png?80&nolink|}}{{ :arduino:feather_huzzah_esp8266.jpg?nolink&180|ESP8266 Feather Huzzah}}
 +
 +  * **Sources** 
 +    * Généralités sur <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>
 +
 +  * **Bibliothèques**
 +    * Arduino pour l'ESP8266 (Documentation) : <html><a href="https://arduino-esp8266.readthedocs.io/en/latest/index.html" target="_blank">ESP8266 Arduino Core</a></html>
 +    * <html><a href="https://www.arduinolibraries.info/" target="_blank">Arduino Library List</a></html>
 +
 +  * **Articles**
 +    * <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>
 +
 +  * **Lectures connexes**
 +    * Wiki [[materiels:accueilmateriels|" Matériels - Capteurs, afficheurs, préactionneurs, etc."]]
 +    * Wiki [[arduino:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32) Feather Huzzah ou MKR1010"]]
 +    * Wiki [[arduino:memoire: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>
 +
 +  * **Distributeur**
 +    * <html><a href="https://www.gotronic.fr/art-feather-huzzah-ada2821-24433.htm" target="_blank">Gotronic</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. Démarrer avec la carte ESP8266 ====
 +
 +=== 6.1 Premier Programme (blink) ===
 +
 +<code cpp *.cpp>
 +void setup() {
 +  pinMode(LED_BUILTIN,OUTPUT);
 +}
 + 
 +void loop() {
 +  digitalWrite(LED_BUILTIN, HIGH);   
 +  delay(1000);                   
 +  digitalWrite(LED_BUILTIN, LOW);    
 +  delay(1000);                    
 +}
 +</code>
 +
 +=== 6.2 Test du Wifi ===
 +
 +<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"><html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_ESP32_testWifi.zip" target="_blank">Télécharger</a></html> le projet PlatformIO pour VSCode.</callout>
 +==== 7. Résolution des problèmes ====
 +
 +=== 7.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>.
 +
 +=== 7.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>
 +