Table des matières:

Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266 : 3 étapes (avec images)
Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266 : 3 étapes (avec images)

Vidéo: Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266 : 3 étapes (avec images)

Vidéo: Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266 : 3 étapes (avec images)
Vidéo: Система охранной сигнализации для домашней автоматизации своими руками! || Домашний помощник + Raspberry Pi + ESP8266 2024, Novembre
Anonim
Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266
Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266

Qu'est-ce que Sonoff ?

Sonoff est une gamme d'appareils pour Smart Home développée par ITEAD. L'un des appareils les plus flexibles et les moins chers de cette gamme est le Sonoff Basic et le Sonoff Dual. Ce sont des commutateurs compatibles Wi-Fi basés sur une excellente puce, ESP8266. Alors que l'infrastructure Sonoff peut très bien fonctionner pour les utilisateurs de base, d'autres peuvent vouloir pirater ce matériel et exécuter leur propre code dessus. Le matériel des Sonoff Smart Switches est incroyable, compte tenu de son prix bas:

  • ESP8266 avec 1 Mo de mémoire flash
  • Adaptateur secteur 220V AC intégré
  • Relais 10A (ou deux en Sonoff Dual)
  • LED embarquée (ou deux dans Sonoff Dual)
  • Bouton intégré

Si vous souhaitez prendre un contrôle total sur ce matériel en utilisant votre langage de programmation préféré, ce tutoriel est fait pour vous.

Étape 1: Piratage du matériel

Piratage du matériel
Piratage du matériel
Piratage du matériel
Piratage du matériel
Piratage du matériel
Piratage du matériel

ESP8266 est programmé via le port série. Sonoff Basic et Sonoff Dual l'ont tous deux sur le PCD.

Vous devrez peut-être souder un en-tête de broche sur le PCB pour connecter facilement un adaptateur USB-UART.

Étape 2: Préparation au piratage du logiciel

Se préparer au piratage du logiciel
Se préparer au piratage du logiciel

J'adore Python, je vais donc utiliser le firmware MicroPython. Vous pouvez également utiliser n'importe quel SDK pris en charge. Procédons au flashage de MicroPython au lieu du firmware propriétaire Sonoff:

Installez le package python esptool qui facilite le flashage de l'ESP8266:

pip installer esptool

Téléchargez le dernier firmware MicroPython stable à partir de la page de téléchargements MicroPython. Connectez un adaptateur USB-UART à la carte. Pour des raisons de sécurité, il est recommandé d'alimenter la carte à partir de l'adaptateur au lieu de la prise 220V AC. Notez que vous ne pouvez utiliser que 3,3 V, si vous connectez la puce ESP8266 à une source d'alimentation 5 V, elle mourra.

Démarrez ESP8266 en mode Flash. Vous pouvez le faire en tirant vers le bas la broche GPIO0 lors de la mise sous tension de l'appareil:

  • Sur Sonoff Basic, le GPIO0 est simplement le bouton. Connectez l'adaptateur USB-UART à votre PC tout en maintenant le bouton enfoncé et vous êtes en mode Flash.
  • Sur Sonoff Dual, les choses sont un peu plus difficiles. Vous devez court-circuiter deux plots sur le PCB tout en alimentant la carte. Les tampons requis sont indiqués sur l'image ci-dessus. Utilisez une pince à épiler ou soudez un petit fil entre eux.

Lorsque l'ESP8266 est en mode Flash, la LED de la carte ne doit pas clignoter.

Assurez-vous que vous pouvez accéder au port série ouvert par l'adaptateur USB-UART. Sous Linux, il s'agit probablement de \dev\ttyUSB0, sur Mac, vous devriez rechercher quelque chose comme "usbserial" ou "usbmodem" dans la sortie de la commande ls \dev\cu.* ou ls \dev\tty.*, sous Windows, il devrait s'agir de COM3 ou plus. Installez les pilotes de l'adaptateur USB-UART si nécessaire.

Effacez le flash à l'aide de l'outil esptool. Remplacez le /dev/ttyUSB0 de votre port si nécessaire:

esptool.py --port /dev/ttyUSB0 effacer_flash

Vous devrez peut-être exécuter esptool.py en tant que superutilisateur pour accéder au port série.

Étape 3: Clignotant

Clignotant
Clignotant

Si l'effacement a réussi, coupez l'alimentation de la carte, redémarrez l'ESP8266 en mode Flash et flashez votre firmware:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20170823-v1.9.2.bin

Si le clignotement a réussi, coupez l'alimentation de la carte, rebranchez-la sans appuyer sur le bouton, et ouvrez le port série dans un terminal. Sous Linux et Mac, vous pouvez utiliser screen /dev/ttyUSB0 115200 (remplacez le /dev/ttyUSB0 pour votre port si nécessaire), sous Windows, vous pouvez utiliser PuTTY (le débit en bauds par défaut est 115200). Une fois connecté, appuyez sur Entrée, et si vous voyez trois crochets angulaires du shell Python, alors tout fonctionne !

>> >>> help() Bienvenue sur MicroPython ! Pour les documents en ligne, veuillez visiter https://docs.micropython.org/en/latest/esp8266/. Pour que les informations de diagnostic soient incluses dans les rapports de bogue, exécutez « import port_diag ». Configuration WiFi de base: import network sta_if = network. WLAN(network. STA_IF); sta_if.active(True) sta_if.scan() # Rechercher les points d'accès disponibles sta_if.connect("", "") # Se connecter à un AP sta_if.isconnected() # Vérifier la connexion réussie # Changer le nom/mot de passe de l'AP d'ESP8266: ap_if = network. WLAN(network. AP_IF) ap_if.config(essid="", authmode=network. AUTH_WPA_WPA2_PSK, password="") Commandes de contrôle: CTRL-A -- sur une ligne vide, entrez le mode REPL brut CTRL- B -- sur une ligne vierge, entrez en mode REPL normal CTRL-C -- interrompez un programme en cours CTRL-D -- sur une ligne vierge, effectuez une réinitialisation logicielle de la carte CTRL-E -- sur une ligne vierge, entrez coller mode Pour plus d'aide sur un objet spécifique, tapez help(obj) >>>

Dans le prochain instructable, nous décrirons comment interagir avec la plate-forme Cloud4RPi via un protocole MQTT.

Conseillé: