Arduino, ESP, Tutoriels

ESP32 et ESP8266

Esp8266 Et Esp32 Avec Arduino

Qu’est-ce que l’ESP8266 ?

Vente Module Série Wifi Esp8266 Arduino Au Maroc

ESP8266 est un module Wi-Fi de petite taille, abordable et facile à utiliser, qui peut être utilisé pour développer des projets d’Internet des objets (IoT). Il intègre un microcontrôleur, une mémoire flash et une puce Wi-Fi dans un seul boîtier. Cela en fait un choix populaire pour les makers et les développeurs qui cherchent à connecter des dispositifs sans fil à Internet.

Connexion Wi-Fi rapide et facile

L’esp8266 est un module Wi-Fi compact et puissant conçu pour les applications IoT. Avec une interface UART et une prise en charge du protocole de communication Wi-Fi 802.11 b / g / n, il est facile à utiliser et à connecter à n’importe quel microcontrôleur ou ordinateur. Avec une consommation d’énergie minimale, vous pouvez donner vie à vos projets IoT sans sacrifier la durée de vie de la batterie.

Développement rapide avec l’Arduino IDE

Ce module est entièrement compatible avec l’Arduino IDE, ce qui en fait un choix idéal pour les développeurs qui souhaitent rapidement développer des applications IoT sans avoir à maîtriser les détails complexes des protocoles Wi-Fi. Avec des bibliothèques et des exemples en abondance disponibles en ligne, vous pouvez être en marche et en train de développer en peu de temps.

ESP8266 avec la carte Arduino Uno

Branchement :

Esp8266 Avec Arduino

Connectez le VCC de l’ESP8266 à la broche 3.3V de l’Arduino Uno.

Connectez le GND de l’ESP8266 à la broche GND de l’Arduino Uno.

Connectez le TX de l’ESP8266 à la broche RX de l’Arduino Uno.

Connectez le RX de l’ESP8266 à la broche TX de l’Arduino Uno.

Note: Téléchargez et installez la bibliothèque SoftwareSerial sur votre logiciel Arduino.

Programme Arduino

Voici un exemple de code pour envoyer une requête HTTP simple vers un serveur Web :

#include <SoftwareSerial.h>

SoftwareSerial esp8266(2, 3); // RX, TX

void setup() {
  Serial.begin(115200);
  esp8266.begin(115200);
  
  sendData("AT+RST\r\n",2000,DEBUG);
  sendData("AT+CWMODE=1\r\n",1000,DEBUG);
  sendData("AT+CWJAP=\"SSID\",\"PASSWORD\"\r\n",2000,DEBUG);
}

void loop() {
  sendData("AT+CIPSTART=\"TCP\",\"www.google.com\",80\r\n",1000,DEBUG);
  sendData("AT+CIPSEND=52\r\n",1000,DEBUG);
  sendData("GET /search?q=arduino HTTP/1.1\r\nHost: www.google.com\r\n\r\n",1000,DEBUG);
  delay(5000);
}

void sendData(String command, const int timeout, boolean debug) {
  esp8266.print(command);
  long int time = millis();
  while((time + timeout) > millis()) {
    while(esp8266.available()) {
      char c = esp8266.read();
      if(debug) {
        Serial.write(c);
      }
    }
  }
}

Ce code ouvre une connexion TCP vers google et envoie une requête HTTP pour effectuer une recherche avec le terme “arduino”. Le résultat de la requête peut être vu dans la console série du logiciel Arduino.

Différences entre Arduino et ESP8266, repérage des broches

Les deux Arduino et ESP8266 sont des cartes de développement utilisées pour la programmation et l’interface avec différents composants électroniques. Cependant, il y a des différences notables entre ces deux cartes.

Arduino UNO est basé sur un microcontrôleur ATmega328P 8 bits qui fonctionne à une vitesse d’horloge de 16 MHz [2]. C’est la carte la plus populaire parmi les débutants.

D’un autre côté, ESP8266 est un microcontrôleur à faible consommation d’énergie avec un processeur RISC intégré de 32 bits et une vitesse d’horloge de 160 MHz [2]. Il a également un module Wifi intégré.

Reconnexion du ESP8266 au réseau Wi-Fi après une perte de connexion

L’ESP01 est un module Wi-Fi populaire pour les projets IoT. Cependant, il peut parfois se produire des interruptions de connexion au réseau Wi-Fi. Pour éviter cela, vous pouvez implémenter une fonction de reconnexion automatique qui permettra à l’ESP8266 de se reconnecter automatiquement au réseau Wi-Fi en cas de perte de connexion.

Voici les étapes pour implémenter la fonction de reconnexion automatique:

  1. Incluez les bibliothèques Wi-Fi nécessaires:
#include <WiFi.h>
  1. Définissez les informations d’identification du réseau Wi-Fi:
const char *ssid = "your_SSID";
const char *password = "your_PASSWORD";
  1. Définissez une variable pour stocker l’état de la connexion Wi-Fi:
int wifiStatus = WL_IDLE_STATUS;
  1. Dans la fonction setup(), connectez l’ESP8266 au réseau Wi-Fi:
void setup() {
  Serial.begin(115200);
  // Connexion au réseau Wi-Fi
  while (wifiStatus != WL_CONNECTED) {
    Serial.println("Connexion au réseau Wi-Fi...");
    wifiStatus = WiFi.begin(ssid, password);
    // Attente de 5 secondes avant de tenter une nouvelle connexion
    delay(5000);
  }
  Serial.println("Connecté au réseau Wi-Fi");
}
  1. Dans la fonction loop(), vérifiez régulièrement l’état de la connexion Wi-Fi:
void loop() {
  // Vérifiez si la connexion Wi-Fi est toujours active
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("Perte de connexion au réseau Wi-Fi");
    // Reconnexion au réseau Wi-Fi
    wifiStatus = WiFi.begin(ssid, password);
    while (wifiStatus != WL_CONNECTED) {
      Serial.println("Tentative de reconnexion au réseau Wi-Fi...");
      // Attente de 5 secondes avant de tenter une nouvelle connexion
      delay(5000);
      wifiStatus = WiFi.begin(ssid, password);
    }
    Serial.println("Reconnecté au réseau Wi-Fi");
  }
  // Votre code ici
  // ...
  delay(1000);
}

Voilà! Votre ESP8266 est maintenant configuré pour se reconnecter automatiquement au réseau Wi-Fi en cas de perte de connexion. Il suffit de télécharger ce code sur votre ESP8266 via l’IDE Arduino et de l’exécuter. Vous pouvez également vérifier l’état de la connexion Wi-Fi à tout moment en utilisant la fonction WiFi.status().

Projet n#1 : Multi capteur Wi-Fi ESP8266 – Température-humidité, mouvement, luminosité et relais

Organiser un Multi capteur Wi-Fi ESP32 peut être un projet intéressant pour les amateurs de la technologie de la domotique. Ce projet vous permettra de mesurer la température, l’humidité, la luminosité, le mouvement et d’utiliser un relais pour contrôler un appareil électrique.

Matériel nécessaire

Branchement

  • Commencez par brancher le DHT11 au breadboard. Connectez le pin Vcc au 3.3V de l’ESP32, GND à GND et le signal à un des GPIO de l’ESP8266.
  • Connectez le PIR à la même manière. Vcc à 3.3V, GND à GND et le signal à un autre GPIO.
  • Connectez le LDR à 3.3V, GND et le signal à un autre GPIO.
  • Connectez le relais au breadboard. Connectez Vcc à 5V, GND à GND et le signal à un des GPIO.
  • Assurez-vous de vérifier les spécifications du capteur pour connaître les broches correctes.

Comment programmer l’ESP8266 en utilisant l’Arduino IDE avec exemple de code

  • Téléchargez et installez l’Arduino IDE sur votre ordinateur.
  • Allez dans le menu Outils et sélectionnez la carte ESP8266 .
  • Accédez à Outils -> Gestionnaire de bibliothèques et téléchargez la bibliothèque DHT en tapant “DHT” dans la barre de recherche.
  • Connectez votre ESP8266 à l’ordinateur via un câble micro-USB.
  • Ouvrez un nouveau projet sur l’Arduino IDE et importez les bibliothèques DHT, PIR et relais.
  • Voici un exemple de code pour mesurer la température, l’humidité, la luminosité, détecter le mouvement et contrôler un relais :
#include <DHT.h>
#include <PIR.h>
#include <Relay.h>

#define DHTPIN 33
#define DHTTYPE DHT11
#define PIRPIN 34
#define LDR 35
#define RELAYPIN 36

DHT dht(DHTPIN, DHTTYPE);
PIR pir(PIRPIN);
Relay relay(RELAYPIN);

void setup() {
  dht.begin();
  pir.begin();
  relay.begin();
  pinMode(LDRPIN, INPUT);
  Serial.begin(9600);
}

void loop() {
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  int motion = pir.read();
  int light = analogRead(LDRPIN);

  if (motion == HIGH) {
    relay.on();
  } else {
relay.off();
}

Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");

Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");

Serial.print("Light: ");
Serial.print(light);
Serial.println("");

Serial.print("Motion: ");
Serial.print(motion);
Serial.println("");

delay(1000);
}

– Enregistrez votre projet et téléchargez-le sur l’ESP8266.

– Ouvrez la console de l’Arduino IDE pour voir les mesures en temps réel. En suivant ces étapes, vous pouvez facilement organiser votre propre Multi capteur Wi-Fi ESP8266 avec des fonctionnalités telles que la mesure de la température, de l’humidité, de la luminosité, la détection de mouvement et la commande d’un relais.

Fonctionnement du code

Ce code utilise plusieurs bibliothèques pour gérer les différents capteurs utilisés dans le projet :

  • DHT.h : bibliothèque pour le capteur de température et d’humidité DHT11.
  • PIR.h : bibliothèque pour le capteur de mouvement PIR.
  • Relay.h : bibliothèque pour le relais.

Les constantes DHTPIN, DHTTYPE, PIRPIN, LDRPIN et RELAYPIN sont définies pour déterminer les broches utilisées pour chaque capteur.

La fonction setup() est appelée une fois au démarrage et initialise les différents capteurs en utilisant leurs fonctions de démarrage respectives. Elle définit également les modes de chaque broche utilisée. Enfin, elle initialise la communication série avec une vitesse de 9600 bauds pour permettre la transmission des données vers le moniteur série de l’Arduino IDE.

La fonction loop() est appelée en boucle et effectue les mesures pour la température, l’humidité, la luminosité, la détection de mouvement et la commande du relais. Les mesures sont transmises via la communication série à l’Arduino IDE pour observation.

Une introduction du ESP32

Node32S Esp32

ESP32 est un microcontrôleur populaire développé par Espressif Systems. Il est doté d’un processeur dual-core de 80 MHz à 240 MHz, de 520 Ko de mémoire RAM, de 4 Mo de mémoire flash et d’une variété de fonctionnalités sans fil, telles que Wi-Fi et Bluetooth. Cette combinaison de fonctionnalités et de performance fait de l’ESP32 un choix populaire pour les projets IoT (Internet of Things), les projets de réseau sans fil et les projets de contrôle de moteur.

Exploration des broches de l’ESP32

Esp32 Arduino

ESP32 est un microcontrôleur à double coeur avec Wi-Fi et Bluetooth. Il possède plusieurs broches, chacune ayant une fonction spécifique. Voici une liste non exhaustive des broches les plus couramment utilisées et leur fonction:

  • GPIO (General Purpose Input/Output) : utilisé pour l’entrée et la sortie numérique.Les broches GPIO peuvent être configurées pour diverses fonctions, telles que la lecture d’une entrée, la sortie de tension pour contrôler des moteurs, la lecture de capteurs et bien plus encore. La plupart des projets IoT sont construits en utilisant les broches GPIO pour contrôler les entrées et les sorties.
  • ADC (Analog to Digital Converter) : convertit les signaux analogiques en signaux numériques.
  • PWM (Pulse Width Modulation) : modifie la largeur d’impulsion pour contrôler la luminosité ou la vitesse d’un moteur.
  • SPI (Serial Peripheral Interface) : utilisé pour la communication avec d’autres périphériques externes.
  • I2C (Inter-Integrated Circuit) : utilisé pour la communication entre les différents composants d’un système.
  • UART (Universal Asynchronous Receiver/Transmitter) : utilisé pour la communication série avec un ordinateur ou un autre périphérique.
  • RST (Reset) : utilisé pour redémarrer le microcontrôleur.
  • EN (Enable) : utilisé pour activer ou désactiver le microcontrôleur.
  • 3V3 (3.3 volts) : fournit une source d’alimentation stable de 3,3 volts.
  • GND (Ground) : utilisé pour la mise à la terre.

Mode veille profonde de l’ESP32

ESP32 a un mode veille profonde qui peut être utilisé pour économiser de l’énergie lorsque le microcontrôleur n’est pas utilisé. Ce mode veille profond permet de conserver l’état du microcontrôleur et de ses broches GPIO, ce qui signifie qu’il peut être réveillé rapidement pour effectuer une tâche et se remettre ensuite en mode veille profonde. Cette fonctionnalité est utile pour les projets qui requièrent une longue durée de vie de la batterie ou une consommation d’énergie minimale.

Bluetooth faible Energy et Bluetooth Classic dans l’ESP32

ESP32 prend en charge le Bluetooth Low Energy (BLE) et le Bluetooth Classic. Le BLE est une variante de Bluetooth conçue pour les appareils qui nécessitent une faible consommation d’énergie, tels que les trackers de fitness et les équipements de santé portables. Le Bluetooth Classic, quant à lui, est utilisé pour les appareils qui requièrent une connexion plus rapide et plus stable, tels que les écouteurs et les haut-parleurs. L’ESP32 peut être utilisé pour développer des projets qui utilisent ces deux technologies Bluetooth, offrant ainsi une grande flexibilité pour les projets sans fil.

Guide de dépannage ESP32

En cas de problèmes avec l’ESP32, il est important de consulter le guide de dépannage pour trouver une solution. Ce guide peut inclure des informations sur les erreurs courantes, des astuces pour diagnostiquer les problèmes et des solutions potentielles. Si le guide de dépannage ne peut pas fournir une solution, il peut être nécessaire de contacter le support technique pour obtenir de l’aide supplémentaire.

Installation du ESP32 dans l’Arduino IDE

  1. Ouvrez l’Arduino IDE et allez dans le menu “Fichier” -> “Préférences”.
  2. Dans la zone de texte “URLs de gestionnaire de cartes supplémentaires”, ajoutez l’URL suivante : https://dl.espressif.com/dl/package_esp32_index.json
  3. Cliquez sur “OK” pour fermer la boîte de dialogue “Préférences”.
  4. Allez dans le menu “Outils” -> “Type de carte” -> “Gestionnaire de cartes”.
  5. Dans la zone de recherche, recherchez “ESP32” et cliquez sur “Installer” dans la liste des résultats.
  6. Attendez que l’installation soit terminée.
  7. Sélectionnez votre carte ESP32 dans le menu “Outils” -> “Type de carte”.
  8. Sélectionnez le port série approprié dans le menu “Outils” -> “Port”.

Projet n#1: Système de remplissage des bouteilles contrôlé par ESP32

Esp32 Avec Arduino

Les composants nécessaires :

Le montage

Montage ESP32 et le capteur HC-SR04

Esp32 Avec Hc-Sr04
esp32 avec HC-SR04

On utilise le capteur HC-SR04 pour détecter s’il existe une bouteille dans la bonne position pour la remplir.

Capteur HC-SR04Carte ESP32
VCC3.3V
GNDGND
TrigN°5
EchoN°18

Montage de la carte ESP32 avec le moteur pas à pas

Le rôle du moteur pas à pas est de tourner le disque contenant les bouteilles

  • On connecte le module L298N au moteur pas pas
Capteur HC-SR04Carte ESP32
IN1N°32
IN2N°33
IN3N°25
IN4N°26

Montage de la carte ESP32 avec la pompe à eau

Esp32 Avec Arduino

Le relais est le composant intermédiaire entre la carte ESP32 et la pompe à eau. Elle permet à la carte ESP32 de commander la pompe à eau

Le rôle du relais est de faire démarrer ou arrêter la pompe responsable du remplissage des bouteilles.

RelaisCarte ESP32
borne (-)GND
borne (+) 3.3V
borne (S)N°19

ESP32 VS ESP8266

Vue générale

L’ESP32 et l’ESP8266 sont deux microcontrôleurs Wi-Fi intégrés développés par Espressif Systems qui permettent de connecter des appareils sans fil à Internet. Bien qu’ils partagent certaines caractéristiques, ils ont également des différences importantes à prendre en compte.

Caractéristique

ESP32 dispose de plus de fonctionnalités par rapport à ESP8266, telles que la connectivité Bluetooth, plus de mémoire et une performance supérieure. ESP8266, d’autre part, est plus petit et moins cher, ce qui le rend plus attrayant pour les applications à faible coût. 1.3- Plus de GPIOs sur l’ESP32: L’ESP32 a plus de broches GPIO (General Purpose Input Output) que l’ESP8266, ce qui signifie qu’il peut connecter davantage de dispositifs externes et exécuter des tâches plus complexes.

GPIOs

L’ESP32 dispose de plus de broches GPIO (General Purpose Input Output) que l’ESP8266, ce qui signifie qu’il peut être connecté à un plus grand nombre de dispositifs externes et effectuer des tâches plus complexes.

ESP32 ou bien ESP8266?

Le choix entre l’ESP32 et l’ESP8266 dépendra des exigences de votre projet. Si vous avez besoin de fonctionnalités supplémentaires telles que la connectivité Bluetooth, une performance supérieure et plus de mémoire, vous devriez choisir l’ESP32. Cependant, si vous avez besoin d’un dispositif plus petit et moins cher, l’ESP8266 serait la meilleure option.

Lien outilles

Video descriptif du programmation du ESP32 avec Arduino IDE : https://www.youtube.com/watch?v=CD8VJl27n94

Video descriptif du projet Système de remplissage des bouteilles contrôlé par ESP32: https://www.youtube.com/watch?v=a6KTClbTsF8

Pour plus d’idée de projets en utilisant l’ESP32: https://randomnerdtutorials.com/projects-esp32/

Pour plus d’idée de projets en utilisant l’ESP8266: https://randomnerdtutorials.com/projects-esp8266/

Video explicatif du tutoriel ESP8266 avec DHT11 : https://www.youtube.com/watch?v=1A4-6hDARQc