[[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 Wikipédia
* Sites Espressif et Adafruit
* ESP8266/Arduino sur Github
* Connectique des différents modèles de cartes
* Arduino IDE 2
== Lectures connexes ==
* Découverte des ESP8266 : le microcontrôleur connecté par Wifi pour 2€ au potentiel phénoménal
* 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 "ESP8266 First Web Server"
* Arduino pour l'ESP8266 (Documentation) : ESP8266 Arduino Core
* Bibliothèques - Arduino Library List
== Distributeurs ==
* GO TRONIC, (Adafruit)
==== 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** : ESP8266
* **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 Random Nerd Tutorials.
* **Identification** et description des entrées / sorties de la carte Huzzah sur le site Adafruit.
{{ :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 ici
* **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)) : ici
* **Distributeurs** : Mouser et (Adafruit)
* **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** : Gotronic
==== 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 https://arduino.esp8266.com/stable/package_esp8266com_index.json
{{ :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) ===
* [[#tab-arduino_1|Arduino]]
* [[#tab-micropy_1|MicropyPython]]
void setup() {
pinMode(LED_BUILTIN,OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
A faire
=== 7.2 Test du Wifi ===
* [[#tab-arduino_2|Arduino]]
* [[#tab-micropy_2|MicropyPython]]
Le SSID et le mot de passe du réseau doivent avoir été préalablement chargés avec infoClientMQTT_ESP8266.ino
// Connexion au wifi
#include
// mDNS pour la résolution des noms des hôtes
#include
// EEPROM : émule une EEPROM dans l'ESP8266
#include
// ---------------------------------------------------------------------------------
// 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);
}
// Exemple de résultat attendu //
{{ :arduino:uc:esp8266testwifi.png?nolink |}}
{{ :arduino:uc:platformioico.png?nolink&50|}}
Le projet PlatformIO pour VSCode.
A faire
==== 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 Silicon Lab.
=== 8.2 Réinstallation ou mise à jour du firmware ===
* **Programmation avec Arduino** : nodemcu-flasher pour Windows 64-bit pour réinstaller le paquet package_esp8266com_index.json disponible sur github.
==== Pour aller plus loin ====
* **ESP8266 SDK** - Getting Started Guide