esp32
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
esp32 [2018/01/01 23:14] – [ESP-WROOM-32] 88.164.131.165 | esp32 [2024/06/09 16:51] – 82.64.110.100 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== ESP32 ARDUINO | + | ====== ESP32 ====== |
- | L' | + | L' |
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/ | * Intègre du Wifi 802.11 b/ | ||
- | * Intègre Bluetooth **4.2** - BLE Bluetooth low Energy | + | * Intègre Bluetooth **5.0** - BLE Bluetooth low Energy |
* Compatible avec l' | * Compatible avec l' | ||
* 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' | * S' | ||
- | * etc ... | + | * etc. |
{{:: | {{:: | ||
- | ===== 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 | ||
+ | |||
+ | ^ | ||
+ | | ESP32-C2 | ||
+ | | ESP32-C3 | ||
+ | | ESP32-C5 | ||
+ | | ESP32-C6 | ||
+ | | ESP32-C61 | ||
+ | | ESP32-H2 | ||
+ | | ESP32-S2 | ||
+ | | ESP32-S3 | ||
+ | | 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/ | ||
+ | |||
+ | Sources: | ||
+ | * https:// | ||
+ | * https:// | ||
+ | ===== Caractéristiques | ||
==== CPU ==== | ==== CPU ==== | ||
Ligne 42: | Ligne 75: | ||
===== Brochage ===== | ===== Brochage ===== | ||
+ | |||
+ | ==== PINOUT ==== | ||
+ | |||
+ | {{:: | ||
+ | {{:: | ||
==== ESP-WROOM-32 ==== | ==== ESP-WROOM-32 ==== | ||
Ligne 51: | Ligne 89: | ||
- | ==== ESP-WROOM-32 | + | ==== Installation de l' |
[[https:// | [[https:// | ||
+ | |||
+ | * Installer l' | ||
+ | * Télécharger l' | ||
+ | * Deziper l' | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | * Executer get.exe qui se trouve dans le répetoire Mes Documents\Arduino\hardware\espressif\esp32\tools | ||
+ | * L' | ||
+ | |||
+ | < | ||
+ | |||
+ | * Démarrer l' | ||
+ | |||
+ | | ||
+ | |||
+ | * Brancher votre carte ESP32, vérifier le port COM qui lui a été attribué : | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | * Créer un nouveau sketch, sélectionner la carte: ESP32 Dev Module et le port qui lui a été associé | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | * Vérifier la compilation et le transfert | ||
+ | |||
+ | ==== 1er sketch de test - clignotement LED ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | void setup() { | ||
+ | // put your setup code here, to run once: | ||
+ | pinMode(2, OUTPUT); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // put your main code here, to run repeatedly: | ||
+ | |||
+ | digitalWrite(2, | ||
+ | delay(200); | ||
+ | digitalWrite(2, | ||
+ | delay(800); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Sketch exemples ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== 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' | ||
+ | |||
+ | < | ||
+ | /* | ||
+ | | ||
+ | * | ||
+ | */ | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | // WiFi network name and password: | ||
+ | const char * networkName = " | ||
+ | const char * networkPswd = " | ||
+ | |||
+ | //IP address to send UDP data to: | ||
+ | // either use the ip address of the server or | ||
+ | // a network broadcast address | ||
+ | const char * udpAddress = " | ||
+ | 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, | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | //only send data when connected | ||
+ | if(connected){ | ||
+ | //Send a packet | ||
+ | udp.beginPacket(udpAddress, | ||
+ | udp.printf(" | ||
+ | udp.endPacket(); | ||
+ | } | ||
+ | //Wait for 1 second | ||
+ | delay(1000); | ||
+ | } | ||
+ | |||
+ | void connectToWiFi(const char * ssid, const char * pwd){ | ||
+ | Serial.println(" | ||
+ | |||
+ | // delete old config | ||
+ | WiFi.disconnect(true); | ||
+ | //register event handler | ||
+ | WiFi.onEvent(WiFiEvent); | ||
+ | | ||
+ | //Initiate connection | ||
+ | WiFi.begin(ssid, | ||
+ | |||
+ | Serial.println(" | ||
+ | } | ||
+ | |||
+ | //wifi event handler | ||
+ | void WiFiEvent(WiFiEvent_t event){ | ||
+ | switch(event) { | ||
+ | case SYSTEM_EVENT_STA_GOT_IP: | ||
+ | //When connected set | ||
+ | Serial.print(" | ||
+ | Serial.println(WiFi.localIP()); | ||
+ | // | ||
+ | //This initializes the transfer buffer | ||
+ | udp.begin(WiFi.localIP(), | ||
+ | connected = true; | ||
+ | break; | ||
+ | case SYSTEM_EVENT_STA_DISCONNECTED: | ||
+ | Serial.println(" | ||
+ | connected = false; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | Pour visualiser les trames envoyées, il suffit d' | ||
+ | |||
+ | Démarrer HERCULE et dans l' | ||
+ | |||
+ | {{:: | ||
===== Liens utiles ===== | ===== Liens utiles ===== | ||
Ligne 60: | Ligne 237: | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | Schema de la carte de developpement ESP32 DEVKIT V1 www.doit.am | ||
+ | {{:: | ||
esp32.txt · Dernière modification : 2024/08/11 12:58 de jp