WikiElectronique

Wiki sur l'électronique et l'informatique

Outils pour utilisateurs

Outils du site


esp32

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édentesRévision précédente
Prochaine révision
Révision précédente
esp32 [2017/12/16 01:07] – [ESP32 ARDUINO] 88.164.131.165esp32 [2024/06/09 18:09] (Version actuelle) – [Quel micro ?] jp
Ligne 1: Ligne 1:
-====== ESP32 ARDUINO ======+====== ESP32 ======
  
-L'ESP32 est un SOC développé par la société Espressif dédié à l'internet des objets IoT et plus particulierement les communications sans fil Wifi et Bluetooth pour un coût réduit. Il a été décliné en version module l'ESP-WROOM-32 qui a lui même été utilisé par différents fabricant (Essentiellement Chinois) de cartes de développement.+L'**ESP32** est un SOC développé par la société Espressif dédié à l'internet des objets (**IoT**) et plus particulièrement les communications sans fil Wifi et Bluetooth pour un coût réduit. Il a été décliné en version module l'**ESP-WROOM-32** qui a lui même été intégré par différents fabricants (Essentiellement Chinois) sur des cartes de développement.
  
 Il présente plusieurs intérêts :  Il présente plusieurs intérêts : 
-  * Prix faible ~5€ pour le module ~8€ pour une petite carte de developpement+  * Prix faible ~5€ pour le module ~8€ pour une petite carte de développement
   * Intègre du Wifi 802.11 b/g/**n**/e/i (WPA)/WPA2/WPA2-Enterprise/Wi-Fi Protected Setup (WPS)   * Intègre du Wifi 802.11 b/g/**n**/e/i (WPA)/WPA2/WPA2-Enterprise/Wi-Fi Protected Setup (WPS)
-  * Intègre Bluetooth **4.2** - BLE Bluetooth low Energy+  * Intègre Bluetooth **5.0** - BLE Bluetooth low Energy
   * Compatible avec l'environnement de développement **ARDUINO**   * Compatible avec l'environnement de développement **ARDUINO**
   * Intègre un microcontrôleur 32 bits performants et de nombreux périphériques (ADC **12bit**, DAC, 3xUART, PWM, I2C, SPI, etc ...)    * Intègre un microcontrôleur 32 bits performants et de nombreux périphériques (ADC **12bit**, DAC, 3xUART, PWM, I2C, SPI, etc ...) 
   * S'alimente directement en USB   * S'alimente directement en USB
-  * etc ...+  * etc.
  
 {{::esp32-wroom.jpg?200|}} {{::esp32-wroom.jpg?200|}}
  
-===== Caractéristiques =====+===== Quel micro ? ===== 
 + 
 +Il existe un nombre important de références. Il peut être compliqué de définir ce qu'on doit utiliser en fonction de nos besoins. Donc pour résumer :\\ 
 +  * ESP32 : Première série maintenant remplacée mais toujours largement utilisée 
 +  * ESP32-Sx : Remplacement des ESP32  
 +  * ESP32-Cx : Moins performants que les ESP32-Sx mais aussi moins cher.  
 +  * ESP32-Hx : Orienté basse consommation 
 + 
 +^   Modèle   ^ Année^ Core ^ Wifi ^BLE^ Zigbee/Thread ^ Matter ^Commentaire ^ 
 +| ESP32-C2   | 2020  |  1  |  4  |  5.0  |   Non          |Non|                           | 
 +| ESP32-C3   | 2020  |  1  |  4  |  5.0  |     Non        | Non| Remplace l'ancien ESP8266                         | 
 +| ESP32-C5   | 2022  |  1  |  **6** 2.4+5Ghz |  5.2 |      Oui     |Oui|                           | 
 +| ESP32-C6   | 2021  |  1  |  **6**  |  5.3  |      Oui     | Non|Wifi 6 + Zigbee           | 
 +| ESP32-C61  | 2025?  |  1  |  **6**  |  5.0  |      Oui     |Oui|                           | 
 +| ESP32-H2   | 2023  |  1  | Non |  5.0  |      Non        |  **Oui**  |Basse consommation| 
 +| ESP32-S2   | 2020  |  1  |  4  |  Non  |     Non         | Non|                           | 
 +| ESP32-S3   | 2020  |  **2**  |  4  |  5.0  |     Non         |Non|Remplace l'ancien ESP32   | 
 +| ESP32      | 2016  |  2  |  4  |  4.2  |      Non        |Non |Ancien| 
 + 
 +Vous voulez un micro **performant** 2 coeurs pour du **Wifi+BLE** ? **ESP32-S3**\\ 
 +Vous voulez du **Wifi 6** ? **ESP32-C6**\\ 
 +Vous voulez du **Matter** ? **ESP32-H2**\\ 
 +Vous voulez du **Zigbee** ? **ESP32-C6**\\ 
 + 
 +Pourquoi choisir un ESP32-S3 vs un ancien ESP32 ?\\ 
 +Le -S3 est plus performant pour une consommation 10 fois plus faible 
 +   
 +Pourquoi choisir un ESP32-C6 vs un ancien ESP32 ?\\ 
 +Le -C6 a plus de fonctionnalité (Wifi 6, BLE 5.3, Zigbee/Thread) pour une consommation plus faible 
 + 
 +Sources:\\ 
 +  * https://www.youtube.com/watch?v=u5unB24lhC4\\ 
 +  * https://www.espboards.dev/blog/esp32-soc-options/ 
 +===== Caractéristiques de l'ESP32 =====
  
 ==== CPU ==== ==== CPU ====
Ligne 42: Ligne 75:
  
 ===== Brochage ===== ===== Brochage =====
 +
 +==== PINOUT ====
 +
 +{{::esp32_pinout.jpg?direct}}
 +{{::esp32_oled_pinout.jpg?direct}}
  
 ==== ESP-WROOM-32 ==== ==== ESP-WROOM-32 ====
Ligne 49: Ligne 87:
  
 {{::esp32_wroom_pinout2.png?400|}} {{::esp32_wroom_pinout2.png?400|}}
 +
 +
 +==== Installation de l'environnement de développement ====
 +[[https://projetsdiy.fr/programmer-cartes-esp32-ide-arduino-macos-windows-arm-raspberry/|Procédure d'installation de l'environnement ARDUINO]]
 +
 +  * Installer l'environnement ARDUINO : [[https://www.arduino.cc/en/Main/Software]]
 +  * Télécharger l'add-on pour l'ESP32 : [[https://github.com/espressif/arduino-esp32]]
 +  * Deziper l'add-on dans le répertoire : Mes Documents\Arduino\hardware\espressif\esp32
 +
 +{{::esp32_install_directory.png?400|}}
 +
 + * Executer get.exe qui se trouve dans le répetoire Mes Documents\Arduino\hardware\espressif\esp32\tools
 + * L'executable get.exe va télécharger et intégrer l'add-on dans l'environnement ARDUINO
 +
 +<note>L'executable get.exe va télécharger 3 fichiers ZIP qui seront téléchargés dans le répertoire dist (esptool-4dab24e-windows.zip, mkspiffs-0.2.1-windows.zip et xtensa-esp32-elf-win32-1.22.0-75-gbaf03c2-5.2.0.zip) </note>
 +
 + * Démarrer l'environnement ARDUINO et vérifier que l'ESP32 apparait bien dans les types de carte :
 +
 + {{::esp32_arduino.png?400|}}
 +
 + * Brancher votre carte ESP32, vérifier le port COM qui lui a été attribué : 
 +
 +{{::esp32_cp210x.png?200|}}
 +
 + * Créer un nouveau sketch, sélectionner la carte: ESP32 Dev Module et le port qui lui a été associé
 +
 +{{::esp32_arduino2.png?300|}}
 +
 + * Vérifier la compilation et le transfert
 +
 +==== 1er sketch de test - clignotement LED ====
 +
 +<note>Ma carte intègre une LED sur la sortie IO2 </note>
 +
 +<code>
 +void setup() {
 +  // put your setup code here, to run once:
 +  pinMode(2, OUTPUT);           // set pin to input
 +}
 +
 +void loop() {
 +  // put your main code here, to run repeatedly:
 +
 +  digitalWrite(2, HIGH);   // sets the LED on
 +  delay(200);                  // waits for a second
 +  digitalWrite(2, LOW);    // sets the LED off
 +  delay(800);  
 +}
 +</code>
 +
 +==== Sketch exemples ====
 +
 +<note>De nombreux exemples sont fournis dans le répertoire : Documents\Arduino\hardware\espressif\esp32\libraries</note>
 +
 +==== Sketch transmission wifi ====
 +
 +Le sketch ci dessous va transmettre une trame toutes les secondes vers un serveur UDP.
 +Remplacer par **your-ssid** par le nom de votre réseau WIFI, **your-password** par le mot de passe de votre réseau WIFI et 192.168.1.10 par l'adresse IP de votre PC. 
 +
 +<code>
 +/*
 +  This sketch sends random data over UDP on a ESP32 device
 + *
 + */
 +#include <WiFi.h>
 +#include <WiFiUdp.h>
 +
 +// WiFi network name and password:
 +const char * networkName = "**your-ssid**";
 +const char * networkPswd = "**your-password**";
 +
 +//IP address to send UDP data to:
 +// either use the ip address of the server or 
 +// a network broadcast address
 +const char * udpAddress = "**192.168.1.10**";
 +const int udpPort = 2205;
 +
 +//Are we currently connected?
 +boolean connected = false;
 +
 +//The udp library class
 +WiFiUDP udp;
 +
 +void setup(){
 +  // Initilize hardware serial:
 +  Serial.begin(115200);
 +  
 +  //Connect to the WiFi network
 +  connectToWiFi(networkName, networkPswd);
 +}
 +
 +void loop(){
 +  //only send data when connected
 +  if(connected){
 +    //Send a packet
 +    udp.beginPacket(udpAddress,udpPort);
 +    udp.printf("Seconds since boot: %u", millis()/1000);
 +    udp.endPacket();
 +  }
 +  //Wait for 1 second
 +  delay(1000);
 +}
 +
 +void connectToWiFi(const char * ssid, const char * pwd){
 +  Serial.println("Connecting to WiFi network: " + String(ssid));
 +
 +  // delete old config
 +  WiFi.disconnect(true);
 +  //register event handler
 +  WiFi.onEvent(WiFiEvent);
 +  
 +  //Initiate connection
 +  WiFi.begin(ssid, pwd);
 +
 +  Serial.println("Waiting for WIFI connection...");
 +}
 +
 +//wifi event handler
 +void WiFiEvent(WiFiEvent_t event){
 +    switch(event) {
 +      case SYSTEM_EVENT_STA_GOT_IP:
 +          //When connected set 
 +          Serial.print("WiFi connected! IP address: ");
 +          Serial.println(WiFi.localIP());  
 +          //initializes the UDP state
 +          //This initializes the transfer buffer
 +          udp.begin(WiFi.localIP(),udpPort);
 +          connected = true;
 +          break;
 +      case SYSTEM_EVENT_STA_DISCONNECTED:
 +          Serial.println("WiFi lost connection");
 +          connected = false;
 +          break;
 +    }
 +}
 +</code>
 +
 +L'ESP32 va transmettre toutes les secondes une trame vers le port 3333 de votre PC. 
 +Pour visualiser les trames envoyées, il suffit d'utiliser un serveur UDP comme [[https://www.hw-group.com/products/hercules/index_en.html|HERCULE]] 
 +
 +Démarrer HERCULE et dans l'onglet UDP mettre 3333 dans le port à utiliser puis cliquer sur "Listen"
 +
 +{{::hercule_esp32.png?400|}}
 ===== Liens utiles ===== ===== Liens utiles =====
  
Ligne 56: Ligne 237:
  
   * [[https://projetsdiy.fr/esp8266/esp32-iot/|Projets DIY - Excellent site avec pas mal d'infos en français]]   * [[https://projetsdiy.fr/esp8266/esp32-iot/|Projets DIY - Excellent site avec pas mal d'infos en français]]
 +
 +Schema de la carte de developpement ESP32 DEVKIT V1 www.doit.am
 +{{::schematicsforesp32.pdf|}}
  
esp32.1513382836.txt.gz · Dernière modification : 2017/12/16 01:07 de 88.164.131.165

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki