Module WiFi ESP8266 : guide de configuration et de projet

Table des Matières

Programming ESP8266 WiFi Module with Arduino IDE

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

ESP8266 Pinout
ESP8266 Pinout

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.

LabelGPIOInputOutputNotes
D0GPIO16No InterruptNo PWM or I2C supportHIGH at boot used to wake up from deep sleep
D1GPIO5OKOKCommonly used as SCL (I2C)
D2GPIO4OKOKCommonly used as SDA (I2C)
D3GPIO0Pull-upOKConnected to FLASH button, boot fails if pulled LOW
D4GPIO2Pull-upOKHIGH at boot connected to on-board LED, boot fails if pulled LOW
D5GPIO14OKOKSPI (SCLK)
D6GPIO12OKOKSPI (MISO)
D7GPIO13OKOKSPI (MOSI)
D8GPIO15Pull-downOKSPI (CS) Boot fails if pulled HIGH
RXGPIO3OKRXHIGH at boot
TXGPIO1TXOKHIGH at boot debug output at boot, boot fails if pulled LOW
A0ADC0AnalogXAnalog pin

Comment programmer l'ESP8266 avec l'IDE Arduino ?

Il existe plusieurs façons de programmer l'ESP8266 :

  1. Utilisez l'IDE Arduino pour développer, suivez le style de développement d'Arduino, facile à utiliser ;
  2. Utilisez le SDK officiel ESP8266 pour le développement ;
  3. 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.)

Install Arduino IDE 1.8.3
Install Arduino IDE 1.8.3

É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 : 

Open Preferences in Arduino IDE
Open Preferences in Arduino IDE

Ensuite, entrez le lien ci-dessous dans les « URL supplémentaires du gestionnaire de tableaux » :

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

Setting Additional boards manager URLs in Preferences
Setting Additional boards manager URLs in Preferences

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

Open Boards Manager in Arduino
Open Boards Manager in Arduino

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

Search and Install the ESP8266 Board
Search and Install the ESP8266 Board
Installing ESP8266 packages
Installing ESP8266 packages

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

ESP8266 Boards Resource (3.1.2 Version)
ESP8266 Boards Resource (3.1.2 Version)

É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 <ESP8266WiFi.h>

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 :

  1. Configurer le WIFI en mode Station, c'est-à-dire que notre ESP8266 est utilisé comme un périphérique WIFI ;
  2. Transmettre le ssid et le mot de passe du hotspot WIFI, afin que l'ESP8266 puisse se connecter au hotspot ;
  3. 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 :

Choose Board NodeMCU 1.0 (ESP-12E Module)
Choose Board NodeMCU 1.0 (ESP-12E Module)

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

Compile and Upload the code to ESP8266 WiFi Module
Compile and Upload the code to ESP8266 WiFi Module

Abonnez-vous

Rejoignez notre liste d’abonnés pour obtenir mensuel blog des mises à jour, des nouvelles technologies, des études de cas. Nous n’enverrons jamais de spam, et vous pouvez vous désinscrire à tout moment.

Retour en haut

Instant Quote