Voici comment développer sur l’ESP8266 avec le confort de l’environnement Arduino.
Installation Arduino
Il faut tout d’abord charger la dernière version de l’IDE Arduino sur le site Arduino et l’installer.
1 2 3 4 5 6 7 8 9 10 |
# chargement de l'archive (sur mon ordi, la version 32 bits) cd /tmp wget http://downloads.arduino.cc/arduino-1.6.5-linux32.tar.xz # décompression tar xvfJ arduino-1.6.5-linux32.tar.xz # déplacement dans mon dossier home mv arduino-1.6.5 ~ # installation des raccourcis cd ~/arduino-1.6.5/ bash install.sh |
Bibliothèque MQTT
J’utilise la bibliothèque de Ivan Grokhotkov que l’on trouve sur GitHub. Il en existe sûrement d’autres, mais je n’ai testé que celle là, et elle me convient.
Pour l’installer, il suffit de la copier dans le dossier Arduino.
1 2 3 4 |
cd /tmp wget https://gist.github.com/Imroy/pubsubclient/archive/master.zip unzip master mv pubsubclient-master ~/Arduino/libraries/ |
Installation bibliothèques ESP8266
Nous allons installer dans l’environnement Arduino toutes les bibliothèques expressif pour programmer sur l’ESP.
Lancer l’IDE Arduino par le menu de votre système.
Choisir Préférences dans le menu Fichier, et dans l’option Additional board managers URL ajouter la ligne :
1 |
http://arduino.esp8266.com/package_esp8266com_index.json |
Puis valider avec OK.
Cela indique à ‘IDE qu’il trouvera des définitions de cartes à cette adresse. Nous allons donc maintenant charger tout ce qu’il faut.
Choisir Board Manager dans le menu Outils > Type de carte : XXXX pour ajouter les cartes ESP. On trouve une boite de dialogue avec un catalogue de cartes installées ou à ajouter. Nous allons donc filtrer en tapant « ESP », cliquer sur le choix qui nous est proposé et choisir Install :
Note : durant mon installation j’ai obtenu l’erreur :
1 |
CRC doesn't mach . File is corrupted. |
Visiblement les fichiers et le checksum ne correspondent pas pour une raison que j’ignore. Donc, j’ai remplacé le fichier de configuration dans le menu Fichier, option Additional board managers URL la configuration suivante :
1 |
http://arduino.esp8266.com/staging/package_esp8266com_index.json |
Du coup je n’ai plus la version « stable » mais la « staging », mais je pense que ça ne va pas changer grand chose.
Maintenant on peut vérifier que dans le menu Outils > Type de carte : XXX on a bien les différents ESP. Pour pouvoir programmer mon ESP12, je choisi « Generic ESP8266 Module »
Ne pas oublier de choisir le port du convertisseur USB/TTL que vous utilisez dans le menu Outils > Port. Ce sera sûrement /dev/ttyUSB0. (vous pouvez vérifier en regardant le résultat de dmesg juste après avoir branché votre convertisseur
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
dmesg ... [15306.784052] usb 2-2: new full-speed USB device number 2 using uhci_hcd [15306.986061] usb 2-2: New USB device found, idVendor=0403, idProduct=6001 [15306.986069] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [15306.986074] usb 2-2: Product: FT232R USB UART [15306.986079] usb 2-2: Manufacturer: FTDI [15306.986083] usb 2-2: SerialNumber: A6007u64 [15308.093689] usbcore: registered new interface driver usbserial [15308.093947] usbcore: registered new interface driver usbserial_generic [15308.094010] usbserial: USB Serial support registered for generic [15308.139115] usbcore: registered new interface driver ftdi_sio [15308.139305] usbserial: USB Serial support registered for FTDI USB Serial Device [15308.139403] ftdi_sio 2-2:1.0: FTDI USB Serial Device converter detected [15308.139470] usb 2-2: Detected FT232RL [15308.139472] usb 2-2: Number of endpoints 2 [15308.139474] usb 2-2: Endpoint 1 MaxPacketSize 64 [15308.139476] usb 2-2: Endpoint 2 MaxPacketSize 64 [15308.139478] usb 2-2: Setting MaxPacketSize 64 [15308.142529] usb 2-2: <strong>FTDI USB Serial Device converter now attached to ttyUSB0</strong> |
Pour ma part j’utilise le SparkFun FTDI Basic Breakout – 3.3V, mais n’importe lequel convient du moment qu’il est en 3.3v.
Enfin, vous pouvez laisser n’importe quoi dans l’option Outils > Programmateur, elle n’est pas utilisée dans la programmation des ESP866.