ESP8266
L’ESP8266 est un circuit intégré à microcontrôleur avec connexion Wi-Fi développé par le fabricant chinois Espressif[1] .
Type |
---|
En août 2014, les passionnés d’électronique commencent à s’intéresser à la version ESP-01 de ce circuit intégré produite par une entreprise tierce, AI-Thinker. Celui-ci, de taille réduite, permet de connecter un microcontrôleur à un réseau Wi-Fi et d’établir des connexions TCP/IP avec des commandes Hayes. La traduction progressive de la documentation (à l'origine uniquement en chinois) motivée par le bas prix du circuit a permis le développement d'une communauté de développeurs et de passionnés de l'ESP8266[2].
Fin octobre 2014, Espressif propose un kit de développement logiciel (SDK) permettant de programmer le circuit sans recourir à l’utilisation d’un microcontrôleur additionnel. Depuis, Espressif a sorti quantité de nouvelles versions du SDK et ce sous deux variantes : une basée sur FreeRTOS[3] et une autre basée sur les fonctions de rappel (callbacks).
Fuzix OS, un Unix très léger développé par Alan Cox, fonctionne sur cette plateforme, porté par Hjalfi[4].
En novembre 2020, Espressif annonce, la sortie du ESP32-C3, WiFi & BLE, un processeur dans la lignée de l'ESP32, mais compatible broche à broche avec l'ESP8266, et utilisant l'architecture RISC-V 32 bits[5].
Programmation
L’ESP8266 peut se programmer de plusieurs façons :
- En Lua, interprétés ou compilés, avec le firmware NodeMCU[6] (langage par défaut) ;
- En C, avec le SDK esp-open-sdk[7] basé sur la chaîne de compilation GCC ou avec le SDK d’Espressif ;
- En C++, avec l’IDE (Environnement de développement) Arduino[8] ;
- En Go, avec le framework Gobot[9] ;
- En JavaScript, avec le firmware Espruino[10] ;
- En MicroBlocks, notamment sur NodeMCU[11] ;
- En MicroPython, avec le firmware MicroPython[12] ou CircuitPython[13].
Caractéristiques
L’ESP8266 est décliné en plusieurs variantes. Un exemple de caractéristiques est indiqué ci-dessous.
- 32-bit RISC CPU: Tensilica Xtensa LX106, 80 MHz ;
- 64 Kio de RAM instruction, 96 Kio de RAM data ;
- QSPI flash externe - 512 Kio Ă 4 Mio (supporte jusqu'Ă 16 Mio) ;
- IEEE 802.11 b/g/n Wi-Fi ;
- 16 broches GPIO
- Interfaces SPI, I²C ;
- Interface I²S avec DMA (partageant les broches avec les GPIO) ;
- UART sur des broches dédiées, plus un UART dédié aux transmission pouvant être géré par GPIO2 ;
- 1 10-bit ADC
Les variantes ont toutes des spécificités. Certaines auront plus de broches de GPIO accessibles (entre 2 seulement pour l'esp8266 de base, et 11 pour un ESP12), d'autres auront plus de mémoire flash disponible (entre 512K, 1MB[14] or 4MB suivant les versions choisies)
Références
- « ESP8266 Overview », Espressif Systems (consulté le )
- Brian Benchoff, « The Current State of ESP8266 Development », Hackaday, (consulté le )
- (en) Denis Nuțiu, « How to get started with FreeRTOS and ESP8266 », sur FreeCodeCamp,
- (en) Saumitra Jagdale, « Fuzix Unix-like operating system ported to Raspberry Pi Pico and ESP8266 », sur CNX-Software,
- (en) Jean-Luc Aufranc, « ESP32-C3 WiFi & BLE RISC-V processor is pin-to-pin compatible with ESP8266 », sur CNX-Software,
- (en) « NodeMCU », sur nodemcu.com
- « ESP Open SDK », sur Github
- (en) « Arduino - Home », sur www.arduino.cc (consulté le )
- (en) « Gobot », sur Gobot.io
- « Espruino », sur espruino.com
- (en) « NodeMCU Setup », sur MicroBlocks
- « Overview | Building and Running MicroPython on the ESP8266 | Adafruit Learning System », sur learn.adafruit.com (consulté le )
- (en) « CircuitPython for ESP8266 », sur Adafruit.com
- « Espressif Announces ESP8285 Wi-Fi Chip for Wearable Devices », Espressif Systems, (consulté le )
Article connexe
- ESP32, une Ă©volution d'ESP8266.
Lien externe
- (en + zh) Site officiel