Table des matières
ESP32
Un site de simulation de l'ESP32 ( entre autre…) https://wokwi.com/projects/new?lang=fr
Historique ESP32
Voici un tableau récapitulatif des principales différences techniques entre un ESP8266, un ESP32 , et un ESP32-C3 :
ESP8266 | ESP32 | ESP32-C3 | |
---|---|---|---|
MCU | Xtensa Single-core 32-bit | Xtensa Dual-Core 32-bit | RISC-V 32-bits Single-Core |
Wi-Fi | HT20 (802.11 b/g/n) | HT40 (802.11 b/g/n) | 802.11.b b/g/n 2.4GHz |
Bluetooth | Non | Oui (4.2 et BLE) | BLE 5.0 |
Frequence | 80Mhz | 160 a 240 Mhz | 160 Mhz |
SRAM | 64kB | 520kB + 10 pour RTC | 400kB |
DRAM/ROM | 96kB - | 328kB - | - 384kB |
Flash | 4mB | 4mB – 16 mB | 4mB |
GPIO | 17 | 36 | 22 |
Analog GPIO | 1 | 18 | 2 |
Comparaison ESP32 et STM32
ESP 01
ESP8266
ESP32-C3 RISC-V
le successeur de l'ESP8266
L'ESP32-C3 est un SoC à microcontrôleur Wi-Fi et Bluetooth 5 (LE) monocœur, basé sur l'architecture RISC-V open source. Il trouve le bon équilibre entre puissance, capacités d'E/S et sécurité, offrant ainsi la solution optimale et rentable pour les appareils connectés. La disponibilité de la connectivité Wi-Fi et Bluetooth 5 (LE) facilite non seulement la configuration de l'appareil, mais facilite également une variété de cas d'utilisation basés sur la double connectivité.
Les fonctionnalités incluent les suivantes :
- Microcontrôleur RISC-V 32 bits avec une vitesse d'horloge maximale de 160 MHz
- 400 Ko de RAM interne
- 802.11b/g/n/e/i
- Un sous-système Bluetooth LE qui prend en charge les fonctionnalités de Bluetooth 5 et Bluetooth Mesh
Divers périphériques :
- -CAN 12 bits avec jusqu'à 18 canaux
- -TWAI compatible avec le bus CAN 2.0
- -Capteur de température
- -4x SPI
- -2x I2S
- -2x I2C
- -3x UART
- -Accélération matérielle cryptographique (RNG, ECC, RSA, SHA-2, AES)
ESP32 S3 EYES
L'ESP32-S3-EYE est une carte de développement d'IA de petite taille produite par Espressif. Il est basé sur le SoC ESP32-S3 et ESP-WHO, le framework de développement IA d'Espressif. Il dispose d'un appareil photo de 2 mégapixels, d'un écran LCD et d'un microphone, utilisés pour la reconnaissance d'images et le traitement audio. L'ESP32-S3-EYE offre beaucoup de stockage, avec une PSRAM octale de 8 Mo et une mémoire flash de 8 Mo. Il prend également en charge la transmission d'images via Wi-Fi et le débogage via un port Micro-USB. Avec ESP-WHO, vous pouvez développer une variété d'applications AIoT, telles que la sonnette intelligente, les systèmes de surveillance, l'horloge à reconnaissance faciale, etc.
ESP32 S3 Eyes FR Article Elektor 12/2023
La carte ESP32-S3-EYE se compose de deux parties : la carte principale (ESP32-S3-EYE-MB) qui intègre le module ESP32-S3-WROOM-1, la caméra, l'emplacement pour carte SD, le microphone numérique, le port USB et la fonction boutons; et la sous-carte (ESP32-S3-EYE-SUB) qui contient un écran LCD. La carte principale et la sous-carte sont connectées via des embases à broches.
- Diagramme interne de l'ESP32 EYES
Le schéma fonctionnel ci-dessous présente les principaux composants de la carte principale ESP32-S3-EYE-MB (à gauche) et de la sous-carte ESP32-S3-EYE-SUB (à droite), ainsi que les interconnexions entre les composants.
ESP32
- Créé par Espressif Systems, ESP32 est un système à faible coût et faible consommation d'énergie sur une série de puces (SoC) avec des fonctionnalités Bluetooth Wi-Fi et bi-mode!
- La famille ESP32 comprend les puces ESP32- D0WDQ6 (et ESP32- D0WD ), ESP32- D2WD , ESP32- S0WD et le système en package (SiP) ESP32-PICO-D4.
- En son cœur, il y a un microprocesseur Tensilica Xtensa LX6 à un ou deux coeurs avec une fréquence d'horloge allant jusqu'à 240 MHz.
- L'ESP32 est hautement intégré avec des commutateurs d'antenne intégrés,
- - un balun RF,
- - un amplificateur de puissance,
- - un amplificateur de réception à faible bruit,
- - des filtres et des modules de gestion de l'alimentation.
- Conçu pour les appareils mobiles, les appareils électroniques portables et les applications IoT, ESP32 consomme très peu d'énergie grâce à des fonctions d'économie d'énergie telles que la synchronisation d'horloge à résolution fine, les modes d'alimentation multiples et la mise à l'échelle dynamique.
GPIO
L’I2C sur l’ESP32
L’ESP32 possède 2 bus I2C :
- Le bus I2C0 est celui qui est utilisé par défaut par les librairies Arduino. Il est relié aux pins GPIO22(SCL) et GPIO21(SDA) de l’ESP32. Il peut être utilisé sur n’importe quel pin de l’ESP32 quand vous utilisez la librairie Wire.h en précisant les pins avec la fonction Wire.begin(SDA_PIN, SCL_PIN)
- Le bus I2C1 peut aussi être utilisé sur n’importe quel pin (faire attention aux pins limités ). Voici un exemple qui utilise le 2ème bus I2C:
- I2C.ino
#include <Wire.h> TwoWire I2C1 = TwoWire(1); void setup() { I2C1.begin(14,12,400000); // SDA pin 14, SCL pin 12, 400kHz frequency } void loop() { I2C1.beginTransmission(0x42); I2C1.write(140); I2C1.endTransmission(); delay(100); }
Esp32 LoraWan
Effacer un esp32 avec esptool en python
Installer python 3.7.xx sous Windows10/11.pdf
Effacer un esp32 avec esptool sous linux.pdf
Liens
Videos
Installation sur IDE Arduino
ESP8266
Une fois l'IDE installé, ouvrez le et rendez-vous dans les préférences. Dans la case “Additional Boards Manager URLs”, entrez l'adresse suivante :
http://arduino.esp8266.com/staging/package_esp8266com_index.json
ESP32
copier ce lien dans les préférences de l'IDE Arduino :
Processeurs:
Processeur principal: microprocesseur LX6 32 bits Tensilica Xtensa Noyaux: 2 ou 1 (selon la variation) Toutes les puces de la série ESP32 sont à double cœur, à l’exception de ESP32-S0WD, à cœur unique. Fréquence d'horloge: jusqu'à 240 MHz Performance: jusqu'à 600 DMIPS Co-processeur à très faible consommation: permet d'effectuer des conversions, des calculs et des seuils de niveau ADC en sommeil profond.
Connectivité sans fil:
Wi-Fi: 802.11 b / g / n / e / i (802.11n @ 2,4 GHz jusqu'à 150 Mbit / s) Bluetooth: v4.2 BR / EDR et Bluetooth Low Energy (BLE)
Reconnecter ESP32 au WIFI après une connexion perdue
Mémoire:
Mémoire interne: ROM: 448 KiB Pour le démarrage et les fonctions de base. SRAM: 520 KiB Pour les données et les instructions. RTC rapide SRAM: 8 KiB Pour le stockage de données et le processeur principal lors du démarrage RTC à partir du mode veille profonde. RTC lente SRAM: 8 Ko Pour co-processeur accédant en mode veille profonde. eFuse: 1 Kibit Dont 256 bits sont utilisés pour le système (adresse MAC et configuration de la puce) et les 768 bits restants sont réservés aux applications client, y compris Flash-Encryption et Chip-ID. Flash intégré: Flash connecté en interne via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 et SD_DATA_1 sur ESP32-D2WD et ESP32-PICO-D4. 0 Mio (puces ESP32-D0WDQ6, ESP32-D0WD et ESP32-S0WD) 2 Mio (puce ESP32-D2WD) 4 Mio (module ESP32-PICO-D4 SiP) Flash externe et SRAM: ESP32 prend en charge jusqu'à quatre flashs QSPI externes de 16 Mio et des SRAM avec chiffrement matériel basé sur AES pour protéger les programmes et les données des développeurs. L'ESP32 peut accéder à la mémoire flash QSPI externe et à la mémoire SRAM via des caches à grande vitesse. Jusqu'à 16 Mo de mémoire flash externe sont mappés en mémoire sur l'espace de code du processeur, prenant en charge l'accès 8 bits, 16 bits et 32 bits. L'exécution du code est prise en charge. Jusqu'à 8 Mo de mémoire flash / SRAM externe sont mappés sur l'espace de données du processeur, prenant en charge l'accès 8 bits, 16 bits et 32 bits. La lecture de données est prise en charge sur le flash et la SRAM. L'écriture de données est prise en charge sur la mémoire SRAM. Les puces ESP32 avec flash intégré ne prennent pas en charge le mappage d'adresses entre les flashs externes et les périphériques.
EEPROM et ESP32
C'est un peu différent de la classe EEPROM standard. Vous devez appeler EEPROM.begin(size)avant de commencer à lire ou à écrire, la taille étant le nombre d'octets que vous souhaitez utiliser. La taille peut être comprise entre 4 et 4 096 octets.
EEPROM.writen'écrit pas immédiatement dans la mémoire flash, mais vous devez appeler EEPROM.commit()chaque fois que vous souhaitez enregistrer les modifications dans la mémoire flash. EEPROM.end()s'engagera également et libérera la copie RAM du contenu de l'EEPROM.
La bibliothèque EEPROM utilise un secteur de flash situé juste après le système de fichiers intégré.
Trois exemples inclus.
Notez que le secteur doit être re-flashé chaque fois que les données EEPROM modifiées doivent être sauvegardées, donc épuisera la mémoire flash très rapidement même si de petites quantités de données sont écrites.
https://www.aranacorp.com/fr/utilisation-de-leeprom-avec-lesp32/
https://projetsdiy.fr/esp8266-comment-lire-ecrire-effacer-eeprom/
Enregistrer les données et les paramètres ESP32 en permanence
Entrée / sortie périphérique:
- Interface périphérique riche avec DMA qui inclut la technologie capacitive tactile,
- CAN (convertisseur analogique-numérique),
- DAC (convertisseur numérique-analogique),
- I²C (circuit inter-intégré),
- UART (récepteur / émetteur asynchrone universel ),
- CAN 2.0 (Controller Area Network),
- SPI (interface périphérique série),
- I²S (son inter-CI intégré),
- RMII (interface indépendante du support réduite),
- PWM (modulation de largeur d'impulsion),
- etc.
Sécurité:
- Fonctions de sécurité standard IEEE 802.11 toutes prises en charge, notamment WFA, WPA / WPA2 et WAPI
- Démarrage sécurisé
- Cryptage Flash
- OTP 1024 bits, jusqu'à 768 bits pour les clients
- Accélération matérielle cryptographique: AES, SHA-2, RSA, cryptographie à courbe elliptique (ECC),
- générateur de nombres aléatoires (RNG)
Bibliotheques pour ESP32
Alimentation ESP32
Pour alimenter votre kit de développement ESP32, vous avez trois options:
- -Via le port USB.
- -Utilisation d'une tension non régulée entre 5V et 12V, connectée aux broches 5V et GND. Cette tension est régulée à bord.
- -Utilisation d'une tension régulée de 3,3 V, connectée aux broches 3,3 V et GND. Soyez très prudent avec cela: ne dépassez pas la limite de 3,3V, ou votre module ESP32 sera endommagé.
Attention : soyez très, très prudent de n'utiliser qu'une seule de ces options à la fois.
Par exemple, n'alimentez pas votre kit de développement ESP32 via la broche 5V en utilisant une entrée 10V alors qu'en même temps vous avez le module connecté à votre ordinateur via USB. Cela endommagera sûrement votre module, et peut-être même votre ordinateur.
Alimentation autonome pour ESP32
Mode Veille profond sur ESP32
Guide pour réduire la consommation d'énergie de l'ESP32 de 95%
Les sleep modes de l’ESP32 et Programmation d’un ESP32 Basic Over The Air (OTA) avec l’IDE arduino
Produits à tester
PCF8574 Multiplexeur IO
ESP NOW
RIOT : OS pour l'internet des objets
MQTT Protocole Iot
FREERTOS : OS pour ESP32
Objets connectes
Debuter projet Objets connecté
Les_reseaux_informatiques_par_la_pratique_ed1_v1.pdf Demande au Castellab pour l'emprunter
Station Météo ESP32
ESP32 arrosage automatique
Tasmota
Projets en cours sur ESP32/ESP8266
Esp32 cam
ESP32-CAM: gestion à distance de la carte SD Programme .ino : esp32cam SD