Comme nous l’avons vu dans un le précédent billet, l’ESP8266 peut être flashé avec des firmwares alternatifs.
Modification des branchements
Pour je pense toutes les versions, il est nécessaire de mettre la GPIO0 à la masse au démarrage du module pour qu’il puisse rentre en mode “ready pour être flashé”.
(Penser à l’enlever après ! )
Logiciel pour flasher
Sous GnuLinux, j’ai utilisé esptool.
$ sudo apt-get install python-serial
$ git clone https://github.com/themadinventor/esptool.git
$ ./esptool/esptool.py --help
usage: esptool [-h] [--port PORT] [--baud BAUD]
Exemple avec NodeMCU si votre port série est /dev/ttyUSB0
$ wget https://github.com/nodemcu/nodemcu-firmware/raw/master/pre_build/latest/nodemcu_latest.bin
$ python esptool.py --port /dev/ttyUSB0 write_flash 0x000000 nodemcu_latest.bin
Connecting...
Erasing flash...
Writing at 0x00062000... (100 %)
Leaving...
Firmwares
Frankenstein
Frankenstein est un firmware qui permet de se passer des commandes AT pas très intuitives, et d’utiliser à la place des commande beaucoup plus simples.
Exemples de commandes qui elles se passent d’explication:
iwscan
iwconnect ApName password
ifconfig
listen 8080
send 192.168.0.101 8080 hello
deepsleep 10000
gpio out 0 1
simple…
NodeMcu
NodeMcu ici ou ici est je pense, à la date de rédaction de ce billet, le firmware le plus utilisé.
Il utilise des scripts en Lua.
NodeMCU 0.9.5 build 20150214 powered by Lua 5.1.4
lua: cannot open init.lua
print("hello")
hello
Exemple de code pour faire tourner un serveur HTTP:
-- a simple http server
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
print(payload)
conn:send("<h1> Hello, NodeMCU.</h1>")
end)
end)
Le mieux est d’aller voir les autres exemples sur le site web ou sur GitHub pour se rendre compte.
Au démarrage, le fichier init.lua
sera exécuté, s’il existe.
Il est donc possible par exemple de faire tourner un serveur HTTP connecté en Wifi qui permet de basculer les GPIOs.
Oui, oui, tout ceci pour 2€50 ! Sans avoir besoin d’un Arduino etc.. L’Internet des objets est là.
esp8266-cli
esp8266-cli permet de réaliser simplement des opérations sur le système de fichier accessible sous le firmware NodeMcu.
Il permet donc de copier facilement ses scripts, les supprimer etc.. en ligne de commande.
$ sudo npm install -g esp8266
J’ai eu l’erreur “/usr/bin/env: node: No such file or directory” qui a été corrigé par
$ ll /usr/bin/nodejs
-rwxr-xr-x 1 root root 1.4M Oct 19 2013 /usr/bin/nodejs
$ sudo ln -s /usr/bin/nodejs /usr/bin/node
Exemples de copie de fichier vers l’ESP8266:
$ echo pouet > toto
$ sudo esp port set /dev/ttyUSB0
$ sudo esp file list
$ sudo esp file write toto
$ sudo esp file list
6 bytes toto
$ sudo esp file read toto
pouet
$ sudo esp file remove toto
$ sudo esp file list
ESPlorer
Dispo ici, écrit en Java, il est multi-plateformes
$ java -jar ESPlorer.jar