L'ESP8266 est un module Wi-Fi adapté aux projets IoT et domotiques. Il vous permet de contrôler les entrées et sorties comme vous le feriez avec une carte de la série Arduino, mais avec le Wi-Fi. Il est donc parfaitement adapté aux applications domotiques/IoT.
Comparé aux autres solutions Wi-Fi disponibles sur le marché, l'ESP8266 est un excellent choix pour la plupart des projets « Internet des objets ». Dans cet article, nous vous présenterons les concepts de base de la carte ESP8266, son brochage et des exemples de programmation.
Introduction à l'ESP8266
L'ESP8266 est un microcontrôleur Wi-Fi puissant et polyvalent qui a gagné en popularité dans le monde de l'électronique et de l'IoT (Internet des objets). Développé par Espressif Systems, l'ESP8266 offre une solution économique pour connecter des appareils à Internet et leur permettre de communiquer entre eux. Il dispose d'un module Wi-Fi intégré, d'un processeur puissant et de broches GPIO pour connecter des composants externes. L'ESP8266 peut être programmé à l'aide de différents langages de programmation, ce qui le rend accessible aussi bien aux débutants qu'aux développeurs expérimentés. Sa faible consommation d'énergie et sa taille compacte le rendent idéal pour une large gamme d'applications, notamment la domotique, les réseaux de capteurs sans fil et les appareils intelligents. Par exemple, l'ESP8266 peut être utilisé pour créer un thermostat intelligent qui permet aux utilisateurs de contrôler à distance la température de leur maison.
Brochage ESP8266

Dans le schéma des broches, certaines broches ont d'autres utilisations que le GPIO. Par exemple, la broche D1 n'est pas seulement GPIO5, mais aussi une interface SCL, qui peut être connectée à la broche SCL correspondante de l'écran LCD.
Le tableau suivant montre la correspondance entre les étiquettes sur l'identification embarquée et les numéros GPIO, et indique quelles broches sont les mieux adaptées aux projets et lesquelles nécessitent une certaine prudence. Les broches surlignées en vert sont prêtes à l'emploi. Celles surlignées en jaune peuvent être utilisées, mais nécessitent une certaine attention car elles peuvent avoir un comportement inattendu, principalement au démarrage. Les broches surlignées en rouge ne sont pas recommandées pour une utilisation en tant qu'entrées ou sorties.
| Label | GPIO | Input | Output | Notes |
|---|---|---|---|---|
| D0 | GPIO16 | No Interrupt | No PWM or I2C support | HIGH at boot used to wake up from deep sleep |
| D1 | GPIO5 | OK | OK | Commonly used as SCL (I2C) |
| D2 | GPIO4 | OK | OK | Commonly used as SDA (I2C) |
| D3 | GPIO0 | Pull-up | OK | Connected to FLASH button, boot fails if pulled LOW |
| D4 | GPIO2 | Pull-up | OK | HIGH at boot connected to on-board LED, boot fails if pulled LOW |
| D5 | GPIO14 | OK | OK | SPI (SCLK) |
| D6 | GPIO12 | OK | OK | SPI (MISO) |
| D7 | GPIO13 | OK | OK | SPI (MOSI) |
| D8 | GPIO15 | Pull-down | OK | SPI (CS) Boot fails if pulled HIGH |
| RX | GPIO3 | OK | RX | HIGH at boot |
| TX | GPIO1 | TX | OK | HIGH at boot debug output at boot, boot fails if pulled LOW |
| A0 | ADC0 | Analog | X | Analog pin |
Comment programmer l'ESP8266 avec l'IDE Arduino ?
Il existe plusieurs façons de programmer l'ESP8266 :
- Utilisez l'IDE Arduino pour développer, suivez le style de développement d'Arduino, facile à utiliser ;
- Utilisez le SDK officiel ESP8266 pour le développement ;
- Utilisez MicroPython pour développer, en suivant le style de programmation Python (cette méthode nécessite d'abord de graver un micrologiciel spécial pour la carte) ;
Ici, nous choisissons la première option, car la programmation Arduino est simple et facile à utiliser.
Étape 1 : Installez l'IDE Arduino
Téléchargez l'IDE depuis le site officiel d'Arduino : https://www.arduino.cc/en/software. La version que j'utilise actuellement est Arduino IDE 1.8.3. (À noter que la dernière version d'Arduino IDE 2.1.1 ne permet pas d'installer le pack de ressources ESP8266 en ligne.)

Étape 2 : Installer le paquet ESP8266
Comme l'IDE Arduino est utilisé par défaut pour la carte de développement Arduino, seules les ressources de développement pertinentes pour la carte de développement Arduino sont disponibles par défaut. Pour utiliser l'ESP8266 dans l'IDE Arduino, nous devons installer manuellement le package de développement ESP8266. Il existe deux méthodes d'installation : l'installation en ligne et l'installation hors ligne du package. Nous choisissons ici la première.
Tout d'abord, recherchez « Fichier -> Préférences » dans le menu de l'IDE Arduino :

Ensuite, entrez le lien ci-dessous dans les « URL supplémentaires du gestionnaire de tableaux » :
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Ensuite, cliquez pour ouvrir : Outils -> Tableau -> Gestionnaire de tableau.

Dans le champ, saisissez et recherchez « esp8266 ». Vous verrez alors apparaître un paquet esp8266. Cliquez sur « Installer » pour lancer l'installation en ligne.


Une fois l'installation terminée, vous trouverez toutes les ressources relatives à la carte esp8266 dans le menu « Outils->Carte ».

Étape 3 : Programmation de l'ESP8266
Nous écrivons ici un programme simple de test de connexion réseau pour la carte ESP8266. Le code du programme est le suivant :
void setup() {
Serial.begin(9600);
Serial.println("esp8266 test");
initWiFi();
}
void loop() {
Serial.println("hello esp8266");
delay(1000);
}
#include
constchar ssid[] = "xxxxx"; //WiFi Name
constchar pass[] = "xxxxx"; //WiFi Password
WiFiClient client;
//Initialize WIFI
void initWiFi()
{
Serial.print("Connecting WiFi...");
WiFi.mode(WIFI_STA); //Configure WIFI as Station mode
WiFi.begin(ssid, pass); //Incoming ssid and password of WIFI hotspot
while (WiFi.status() != WL_CONNECTED) //Waiting for successful connection
{
delay(500);
Serial. print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //print your own IP address
}
Remarques :
La fonction setup est utilisée pour l'initialisation du port série. Par exemple, « Serial.begin(9600) ; » signifie que le débit en bauds initial du port série est de 9600.
La fonction loop est similaire à while(1){} dans la fonction principale du développement d'un micro-ordinateur monopuce, où nous pouvons écrire des codes logiques de programme.
Pour utiliser la fonction WIFI, vous devez inclure le fichier d'en-tête « ESP8266WiFi.h ».
Le processus d'initialisation du WIFI comprend 3 étapes :
- Configurer le WIFI en mode Station, c'est-à-dire que notre ESP8266 est utilisé comme un périphérique WIFI ;
- Transmettre le ssid et le mot de passe du hotspot WIFI, afin que l'ESP8266 puisse se connecter au hotspot ;
- Lire l'état de la connexion WIFI et attendre que la connexion soit établie.
Sélectionnez le modèle et le numéro de port série de votre carte de développement ESP8266 :

Nous pouvons maintenant compiler et graver le code sur la carte ESP8266WiFi.




