Inhaltsverzeichnis:

So flashen Sie die MicroPython-Firmware auf einem ESP8266-basierten Sonoff-Smart-Switch - Gunook
So flashen Sie die MicroPython-Firmware auf einem ESP8266-basierten Sonoff-Smart-Switch - Gunook

Video: So flashen Sie die MicroPython-Firmware auf einem ESP8266-basierten Sonoff-Smart-Switch - Gunook

Video: So flashen Sie die MicroPython-Firmware auf einem ESP8266-basierten Sonoff-Smart-Switch - Gunook
Video: Grazer Linuxtage 2019 - ESPHome: Zum DIY Smart-Home in wenigen Schritten 2024, November
Anonim
So flashen Sie die MicroPython-Firmware auf einem ESP8266-basierten Sonoff Smart Switch
So flashen Sie die MicroPython-Firmware auf einem ESP8266-basierten Sonoff Smart Switch

Was ist Sonoff?

Sonoff ist eine von ITEAD entwickelte Gerätelinie für Smart Home. Zu den flexibelsten und günstigsten Geräten dieser Linie zählen Sonoff Basic und Sonoff Dual. Dies sind Wi-Fi-fähige Switches, die auf einem großartigen Chip, ESP8266, basieren. Während die Sonoff-Infrastruktur für einfache Benutzer recht gut funktioniert, möchten andere möglicherweise in diese Hardware hacken und ihren eigenen Code darauf ausführen. Die Hardware von Sonoff Smart Switches ist angesichts des niedrigen Preises erstaunlich:

  • ESP8266 mit 1 MB Flash
  • 220V AC integriertes Netzteil
  • 10A Relais (oder zwei in Sonoff Dual)
  • Onboard-LED (oder zwei in Sonoff Dual)
  • Onboard-Taste

Wenn Sie mit Ihrer bevorzugten Programmiersprache die volle Kontrolle über diese Hardware übernehmen möchten, ist dieses Tutorial genau das Richtige für Sie.

Schritt 1: Hacken der Hardware

Hacken der Hardware
Hacken der Hardware
Hacken der Hardware
Hacken der Hardware
Hacken der Hardware
Hacken der Hardware

ESP8266 wird über die serielle Schnittstelle programmiert. Sowohl Sonoff Basic als auch Sonoff Dual haben es auf der PCD.

Möglicherweise müssen Sie eine Stiftleiste auf die Platine löten, um einen USB-UART-Adapter einfach anzuschließen.

Schritt 2: Vorbereitung zum Hacken der Software

Vorbereitung auf das Hacken der Software
Vorbereitung auf das Hacken der Software

Ich liebe Python, also werde ich die MicroPython-Firmware verwenden. Sie können auch jedes unterstützte SDK verwenden. Fahren wir mit dem Flashen von MicroPython anstelle der proprietären Sonoff-Firmware fort:

Installieren Sie das esptool-Python-Paket, das das Flashen des ESP8266 erleichtert:

pip installieren esptool

Laden Sie die neueste stabile MicroPython-Firmware von der MicroPython-Downloadseite herunter. Schließen Sie einen USB-UART-Adapter an das Board an. Aus Sicherheitsgründen wird empfohlen, das Board über den Adapter statt über die 220-V-Wechselstromsteckdose mit Strom zu versorgen. Beachten Sie, dass Sie nur 3,3 V verwenden dürfen. Wenn Sie den ESP8266-Chip an eine 5 V-Stromquelle anschließen, stirbt er.

Starten Sie ESP8266 in den Flash-Modus. Sie können dies tun, indem Sie den GPIO0-Pin herunterziehen, während Sie das Gerät einschalten:

  • Bei Sonoff Basic ist der GPIO0 einfach der Knopf. Schließen Sie den USB-UART-Adapter an Ihren PC an, während Sie die Taste gedrückt halten, und Sie befinden sich im Flash-Modus.
  • Bei Sonoff Dual sind die Dinge etwas schwieriger. Sie müssen zwei Pads auf der Platine kurzschließen, während Sie die Platine mit Strom versorgen. Die benötigten Pads sind auf dem Bild oben dargestellt. Verwenden Sie eine Pinzette oder löten Sie einen kleinen Draht dazwischen.

Wenn sich der ESP8266 im Flash-Modus befindet, sollte die LED der Platine nicht blinken.

Stellen Sie sicher, dass Sie auf den vom USB-UART-Adapter geöffneten seriellen Port zugreifen können. Unter Linux ist es wahrscheinlich \dev\ttyUSB0, auf Mac sollten Sie in der Befehlsausgabe ls \dev\cu.* oder ls \dev\tty.* nach etwas wie „usbserial“oder „usbmodem“suchen, unter Windows sollte es COM3 sein oder höher. Installieren Sie bei Bedarf die USB-UART-Adaptertreiber.

Löschen Sie den Blitz mit dem esptool. Ersetzen Sie bei Bedarf /dev/ttyUSB0 für Ihren Port:

esptool.py --port /dev/ttyUSB0 era_flash

Möglicherweise müssen Sie esptool.py als Superuser ausführen, um auf den seriellen Port zuzugreifen.

Schritt 3: Blinken

Blinken
Blinken

Wenn das Löschen erfolgreich war, unterbrechen Sie die Stromversorgung des Boards, booten Sie den ESP8266 erneut im Flash-Modus und flashen Sie Ihre Firmware:

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

Wenn das Flashen erfolgreich war, unterbrechen Sie die Stromversorgung der Platine, schließen Sie sie wieder an, ohne die Taste zu drücken, und öffnen Sie die serielle Schnittstelle in einem Terminal. Unter Linux und Mac können Sie den Bildschirm /dev/ttyUSB0 115200 verwenden (ersetzen Sie bei Bedarf das /dev/ttyUSB0 für Ihren Port), unter Windows können Sie PuTTY verwenden (die Standardbaudrate ist 115200). Sobald Sie eine Verbindung hergestellt haben, drücken Sie die Eingabetaste, und wenn Sie drei spitze Klammern der Python-Shell sehen, funktioniert alles!

>> >>> Hilfe() Willkommen bei MicroPython! Für Online-Dokumente besuchen Sie bitte https://docs.micropython.org/en/latest/esp8266/. Um Diagnoseinformationen in Fehlerberichte aufzunehmen, führen Sie 'import port_diag' aus. Grundlegende WLAN-Konfiguration: import network sta_if = network. WLAN(network. STA_IF); sta_if.active(True) sta_if.scan() # Nach verfügbaren Zugangspunkten suchen sta_if.connect("", "") # Mit einem AP verbinden sta_if.isconnected() # Auf erfolgreiche Verbindung prüfen # Name/Passwort des AP des ESP8266 ändern: ap_if = network. WLAN(network. AP_IF) ap_if.config(essid="", authmode=network. AUTH_WPA_WPA2_PSK, password="") Steuerbefehle: STRG-A -- Geben Sie in einer leeren Zeile den Raw REPL-Modus ein STRG- B -- in einer leeren Zeile in den normalen REPL-Modus wechseln STRG-C -- ein laufendes Programm unterbrechen STRG-D -- in einer leeren Zeile einen Soft-Reset der Platine durchführen STRG-E -- in einer leeren Zeile Paste eingeben mode Für weitere Hilfe zu einem bestimmten Objekt geben Sie help(obj) ein >>>

In der nächsten Anleitung werden wir beschreiben, wie man mit der Cloud4RPi-Plattform über ein MQTT-Protokoll interagiert.

Empfohlen: