2017-05-17
Mise à jour: 2017-11-22
Programmation du Sonoff dans l'EDI Arduino (2)

Auparavant, j'avais montré comment copier un micrologiciel sur un Sonoff en utilisant un Raspberry Pi. Ci-dessous j'explique comment le faire directement de l'EDI de Arduino avec un adaptateur USB-ttl. Il n'y a donc rien de bien nouveau ci-dessous sauf pour l'utilisation d'un matériel plus commun et une présentation plus détaillée.

Voici les étapes pour téléverser un croquis dans un commutateur Sonoff qui fait clignoter sa diode électroluminescente (DEL)nbsp;:

Intallation de l'EDI Arduino
Préparation de l'EDI Arduino
Accès au port série
Connexion avec le commutateur Sonoff
Téléversement de Blink

Installation de l'environnement de développement intégré (EDI) Arduino

Malheureusement, la logithèque d'Ubuntu contient une version périmée de l'EDI de Arduino. On doit donc installer une version plus récente manuellement. Il faut au minimum la version 1.6.5, mais ci-dessous on peut suivre les étapes pour installer l version 1.8.2. Télécharger la ici : www.arduino.cc/en/Main/Software. Il est important d'obtenir la bonne version, 32 ou 64 bits selon la version de Linux du système hôte.

L'archive arduino-1.8.2-linux64.tar.xz a été téléchargée dans le dossier /home/michel/Téléchargements/Arduino et j'ai décidé d'installer l'EDI dans le dossier /home/michel/Development/arduino. Voici comment j'ai précédé à partir d'un terminal ( CtrlAltT  ) :

michel@hp:~$ cd Téléchargements/Arduino michel@hp:~/Téléchargements/Arduino$ tar -xvf arduino-1.8*.tar.xz ... arduino-1.8.2/tools/WiFi101/tool/firmwares/.DS_Store arduino-1.8.2/tools/howto.txt michel@hp:~/Téléchargements/Arduino$ ls arduino-1.8.2 arduino-1.8.2-linux64.tar.xz michel@hp:~/Téléchargements/Arduino$ sudo mv arduino-1.8* ../../Development michel@hp:~/Téléchargements/Arduino$ cd ../../Development/arduino*

Il y a une petite coquille dans le script d'installation install.sh de la version 1.8.2. Ce problème devrait être éliminé dès la version suivante (1.8.3) et dans ce cas on peut ignorer cette correction qui consiste à changé la ligne 9 du script de

  RESOURCE_NAME=cc.arduino.arduinoide
à
  RESOURCE_NAME=arduino-arduinoide
Ceci peut être fait avec l'éditeur nano :
michel@hp:~/Development/arduino-1.8.2$ nano install.sh
#!/bin/sh # This script adds a menu item, icons and mime type for Arduino for the current # user. If possible, it will use the xdg-utils - or fall back to just creating # and copying a desktop file to the user's dir. # If called with the "-u" option, it will undo the changes. # Resource name to use (including vendor prefix) RESOURCE_NAME=arduino-arduinoide

Il est maintenant possible d'installer l'EDI, ce qui se fait en une étape.

michel@hp:~/Development/arduino-1.8.2$ ./install.sh Adding desktop shortcut, menu item and file associations for Arduino IDE... done!
Comme l'indique le message du script, un raccourci est installé sur le bureau. On démarre l'EDI en cliquant sur cet icône.

Préparation de l'EDI Arduino

Par défaut, l'EDI Arduino ne prend en charge que les cartes de type Arduino. Grace au travail de Ivan Grokhotkov et d'autres personnes (voir le ESP8266 community Forum et le ESP8266 Arduino GitHub repository) on peut rajouter le « carte  » ESP8266.

Accès au port série

On programme un ESP8266 avec une connexion en série mais presque tous les ordinateurs peirsonnels modernes n'ont plus de port série. On utilise une connexion USB. D'ailleurs, il suffit d'un câble USB standard -- mini USB pour programmer le WeMos D1 mini, qui contient un circuit intégré le CH340g convertisseur USB-ttl. Par contre, dans le cas du commutateur Sonoff, il faut un câble ou un convertisseur USB-ttl (basé sur une puce CH340, CP2102 ou FT232 ...) qui fonctionne à 3,3V.

Typiquement, sur un système Ubuntu un port série virtuel nommé ttyUSB0 sera créé par le système. On peut le voir affiché avec la commande ls /dev/tty* dans un terminal dès que le dispositif est branché. Cependant, l'utilisateur n'a typiquement pas accès à ce port. Il y a au moins deux solutions à ce problème. On peut changer les permissions pour le dispositif ou on peut ajouter l'utilisateur au groupe dialout. Je préfère cette deuxième solution. Mon nom d'utilisateur est michel (je sais, c'est très original). Ci-dessous, la séquence de commandements donnés dans un terminal montre comment j'ai vérifié à quels groupes j'appartiens, puis comment je me suis ajouté au groupe dialout, et enfin comment j'ai vérifié que j'étais membre du groupe.

michel@hp:~/Development/arduino-1.8.2$ groups michel michel : michel adm cdrom sudo dip www-data plugdev lpadmin sambashare michel@hp:~/Development/arduino-1.8.2$ sudo usermod -G dialout -a michel michel@hp:~/Development/arduino-1.8.2$ groups michel michel : michel adm dialout cdrom sudo dip www-data plugdev lpadmin sambashare

Il faut soit redémarrer le système soit se déconnecter en tant qu'utilisateur puis ouvrir un nouvelle session pour que ce changement prenne effet.

Connexion avec le commutateur Sonoff

La figure suivante montre comment j'ai branché le convertisseur USB<-->TTL au Sonoff.

On peut voir que j'ai changé de convertisseur, passant à un modèle qui utilise la puce CH340g. Il coûte moins cher que celui basé sur le FT232RL et fonctionne sans problème. Toutefois des deux convertisseurs achetés en Chine, un seul fonctionnait.

La photo montre l'agencement matériel de la connexion. En outre, on peut y voir que j'utilise une alimentation de 3,3V indépendante pour le Sonoff. Cela s'était avéré plus sûr avec le convertisseur FTDI232 et, de toute façon, il n'y a pas de sortie Vcc sur le nouveau convertisseur.

Malgré ce qui est montré sur le diagramme, je n'ai toujours pas d'interrupteur pour la connexion Vcc. Il suffit d'enficher le fil rouge (pourpre?) dans le bus Vcc à côté de la ligne rouge de la platine d'expérimentation pour fermer le circuit.

Téléversement de Blink

En guise de test que tout fonctionne, j'ai téléversé un simple programme « Blink » qui fait clignoter la DEL du Sonoff.

Avertissement : On ne pourra plus utiliser ce Sonoff avec le logiciel EWeLink fourni par ITEAD.

La démarche est la suivante.

On peut vérifier que ce micrologiciel est bel et bien sauvegardé sur le commutateur Sonoff : débrancher le Sonoff; débrancher la connexion USB du câble convertisseur; remettre le Sonoff sous tension. La DEL devrait clignoter de nouveau.

Dans la partie 2, Programmation du Sonoff dans l'EDI Arduino (2), le téléversement du micrologiciel Sonoff-MQTT-OTA-Arduino de Theo Arends est examiné.

Programmation du Sonoff dans l'EDI Arduino (2)