L’ESP8266 est un circuit intégré à microcontrôleur avec connexion Wi-Fi développé par le fabricant chinois Espressif. Il va nous servir de passerelle pour nos équipements à piloter.
L’ESP8266 possède autant de versions que de clones, personnellement j’utilise des WEMOS D1 mini, qui me paraissent d’un bon rapport qualité prix.
L’ESP8266 d’Espressif Systems n’est autre qu’un microcontrôleur à cœur Tensilica Xtensa LX106 (processeur RISC 32 bits) complété de fonctionnalités Wifi associées à une mémoire flash contenant le firmware.
En gros, c’est une carte Arduino connecté en WIFI, mais je la trouve plus facile de prise en main pour un néophyte. Elle possède les mêmes type de sortie qu’un raspberry PI, mais en cas de pépin, ça vous coûtera beaucoup moins cher.
Quelques chiffres:
- 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 modules à base d’ESP8266 sont conçu pour une utilisation via l’interface série et fournissent une connectivité Wifi en prenant en charge les protocoles réseaux TCP/IP, mais aussi des fonctionnalités de plus haut niveau comme HTTP.
On peut donc, depuis une carte Arduino, simplement envoyer des requêtes HTTP et obtenir les réponses. Autrement dit, on spécifie des URL et on reçoit le contenu des pages.
Mais l’ESP8266 est un microcontrôleur, exactement comme l’Atmel AVR ATmega328p d’une carte Arduino Uno ou le AT91SAM3X8E (ARM Cortex-M3) d’une Arduino Due. C’est un composant programmable pouvant recevoir un code à exécuter, dès lors qu’on dispose du compilateur et des outils de programmation adaptés.
L’ESP8266 peut se programmer de plusieurs façons :
- Avec des scripts Lua, interprétés ou compilés, avec le firmware NodeMCU2 ;
- En C++, avec l’IDE Arduino3 ;
- En JavaScript, avec le firmware Espruino4 ;
- En MicroPython, avec le firmware MicroPython5 ou CircuitPython6 ;
- En C, avec le SDK d’Espressif ;
- En C, avec le SDK esp-open-sdk7 basé sur la chaîne de compilation GCC ;
- En Go, avec le framework Gobot8.
Mais quelques développeurs ont eu une bien meilleure idée. Si le cœur de l’ESP8266 n’est qu’un microcontrôleur (à 80 Mhz tout de même) qui ne fait qu’exécuter un programme, pourquoi ne pas lui faire exécuter un code compilé ! Et c’est ainsi qu’a vu le jour ESP EASY.
Vous l’aurez compris, ce composant sait faire à peu prêt tout, sauf le café. Le projet ESP-EASY promet une utilisation simple de ce composant, sans mettre les doigts dans du code, et c’est ce que nous allons tester ici, très vite je l’espère….