Inhoudsopgave:

MicroPython-firmware flashen op een op ESP8266 gebaseerde Sonoff Smart Switch - Ajarnpa
MicroPython-firmware flashen op een op ESP8266 gebaseerde Sonoff Smart Switch - Ajarnpa

Video: MicroPython-firmware flashen op een op ESP8266 gebaseerde Sonoff Smart Switch - Ajarnpa

Video: MicroPython-firmware flashen op een op ESP8266 gebaseerde Sonoff Smart Switch - Ajarnpa
Video: How to use MicroPython on Your Arduino? 2024, November
Anonim
MicroPython-firmware flashen op een op ESP8266 gebaseerde Sonoff Smart Switch
MicroPython-firmware flashen op een op ESP8266 gebaseerde Sonoff Smart Switch

Wat is Sonoff?

Sonoff is een apparaatlijn voor Smart Home ontwikkeld door ITEAD. Een van de meest flexibele en goedkope toestellen uit die lijn zijn Sonoff Basic en Sonoff Dual. Dit zijn schakelaars met Wi-Fi op basis van een geweldige chip, ESP8266. Hoewel de Sonoff-infrastructuur misschien best goed werkt voor basisgebruikers, willen anderen misschien die hardware hacken en hun eigen code erop uitvoeren. De hardware van Sonoff Smart Switches is geweldig, gezien de lage prijs:

  • ESP8266 met 1 MB flitser
  • 220V AC geïntegreerde voedingsadapter
  • 10A relais (of twee in Sonoff Dual)
  • Ingebouwde LED (of twee in Sonoff Dual)
  • Knop aan boord

Als je volledige controle over deze hardware wilt krijgen met je favoriete programmeertaal, dan is deze tutorial iets voor jou.

Stap 1: De hardware hacken

De hardware hacken
De hardware hacken
De hardware hacken
De hardware hacken
De hardware hacken
De hardware hacken

ESP8266 wordt geprogrammeerd via de seriële poort. Zowel Sonoff Basic als Sonoff Dual hebben het op de PCD.

Mogelijk moet u een pin-header op de print solderen om eenvoudig een USB-UART-adapter aan te sluiten.

Stap 2: Voorbereiden om de software te hacken

Voorbereiden om de software te hacken
Voorbereiden om de software te hacken

Ik ben dol op Python, dus ik ga de MicroPython-firmware gebruiken. U kunt ook elke ondersteunde SDK gebruiken. Laten we doorgaan met het flitsen van MicroPython in plaats van de eigen Sonoff-firmware:

Installeer het esptool python-pakket dat het flashen van de ESP8266 gemakkelijker maakt:

pip install esptool

Download de nieuwste stabiele MicroPython-firmware van de MicroPython-downloadpagina. Sluit een USB-UART-adapter aan op het bord. Voor de veiligheid wordt aanbevolen om het bord van stroom te voorzien via de adapter in plaats van het 220V AC-stopcontact. Houd er rekening mee dat je alleen 3.3V mag gebruiken, als je de ESP8266-chip aansluit op een 5V-voedingsbron, zal deze sterven.

Start ESP8266 op in de Flash-modus. U kunt dit doen door de GPIO0-pin naar beneden te trekken terwijl u het apparaat aanzet:

  • Op Sonoff Basic is de GPIO0 gewoon de knop. Sluit de USB-UART-adapter aan op uw pc terwijl u de knop ingedrukt houdt en u bent in de flitsmodus.
  • Op Sonoff Dual is het een beetje moeilijker. U moet twee pads op de PCB kortsluiten terwijl u het bord van stroom voorziet. De benodigde pads staan op de afbeelding hierboven. Gebruik een pincet of soldeer er een draadje tussen.

Wanneer de ESP8266 in de flitsmodus staat, mag de LED van het bord niet knipperen.

Zorg ervoor dat u toegang hebt tot de seriële poort die is geopend door de USB-UART-adapter. Op Linux is het waarschijnlijk \dev\ttyUSB0, op Mac moet je zoeken naar iets als "usbserial" of "usbmodem" in de opdracht ls \dev\cu.* of ls \dev\tty.*, op Windows zou het COM3 moeten zijn of hoger. Installeer indien nodig de stuurprogramma's van de USB-UART-adapter.

Wis de flitser met de esptool. Vervang indien nodig de /dev/ttyUSB0 voor uw poort:

esptool.py --port /dev/ttyUSB0 erase_flash

Mogelijk moet u esptool.py als superuser uitvoeren om toegang te krijgen tot de seriële poort.

Stap 3: Knipperen

Knipperend
Knipperend

Als het wissen succesvol was, schakel dan de stroom van het bord uit, start de ESP8266 opnieuw op in de Flash-modus en flash uw firmware:

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

Als het knipperen is gelukt, schakel dan de stroom van het bord uit, sluit het opnieuw aan zonder op de knop te drukken en open de seriële poort in een terminal. Op Linux en Mac kun je screen /dev/ttyUSB0 115200 gebruiken (vervang indien nodig de /dev/ttyUSB0 voor je poort), op Windows kun je PuTTY gebruiken (de standaard baudrate is 115200). Zodra je verbinding hebt gemaakt, druk je op Enter en als je drie punthaken van de Python-shell ziet, werkt alles!

>> >>> help() Welkom bij MicroPython! Ga voor online documenten naar https://docs.micropython.org/en/latest/esp8266/. Voer 'import port_diag' uit om diagnostische informatie op te nemen in bugrapporten. Basis WiFi-configuratie: importeer netwerk sta_if = netwerk. WLAN(netwerk. STA_IF); sta_if.active(True) sta_if.scan() # Scan naar beschikbare toegangspunten sta_if.connect("", "") # Maak verbinding met een AP sta_if.isconnected() # Controleer op succesvolle verbinding # Wijzig naam/wachtwoord van de AP van ESP8266: ap_if = network. WLAN(network. AP_IF) ap_if.config(essid="", authmode=network. AUTH_WPA_WPA2_PSK, password="") Besturingsopdrachten: CTRL-A -- voer op een lege regel de onbewerkte REPL-modus in CTRL- B -- op een lege regel, voer de normale REPL-modus in CTRL-C -- onderbreek een lopend programma CTRL-D -- op een lege regel, voer een zachte reset van het bord uit CTRL-E -- op een lege regel, voer plakken in modus Typ help(obj) >>>. voor meer hulp bij een specifiek object

In de volgende instructable zullen we beschrijven hoe te communiceren met het Cloud4RPi-platform via een MQTT-protocol.

Aanbevolen: