Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch: 3 trinn (med bilder)
Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch: 3 trinn (med bilder)
Anonim
Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch
Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch

Hva er Sonoff?

Sonoff er en enhetslinje for Smart Home utviklet av ITEAD. En av de mest fleksible og rimelige enhetene fra den linjen er Sonoff Basic og Sonoff Dual. Dette er Wi-Fi-aktiverte brytere basert på en flott chip, ESP8266. Selv om Sonoff -infrastrukturen kan fungere ganske bra for grunnleggende brukere, vil andre kanskje hacke seg inn i maskinvaren og kjøre sin egen kode på den. Maskinvaren til Sonoff Smart Switches er fantastisk, med tanke på den lave prisen:

  • ESP8266 med 1 MB blits
  • 220V AC integrert strømadapter
  • 10A -relé (eller to i Sonoff Dual)
  • Innebygd LED (eller to i Sonoff Dual)
  • Innebygd knapp

Hvis du vil ta full kontroll over denne maskinvaren ved å bruke ditt favoritt programmeringsspråk, er denne opplæringen noe for deg.

Trinn 1: Hacking av maskinvaren

Hacking av maskinvaren
Hacking av maskinvaren
Hacking av maskinvaren
Hacking av maskinvaren
Hacking av maskinvaren
Hacking av maskinvaren

ESP8266 er programmert via serieporten. Både Sonoff Basic og Sonoff Dual har det på PCD.

Du må kanskje lodde en pinneoverskrift på kretskortet for å enkelt koble til en USB-UART-adapter.

Trinn 2: Forbereder å hacke programvaren

Forbereder å hacke programvaren
Forbereder å hacke programvaren

Jeg elsker Python, så jeg kommer til å bruke MicroPython -fastvaren. Du kan også bruke hvilken som helst SDK som støttes. La oss fortsette å blinke MicroPython i stedet for den proprietære Sonoff -fastvaren:

Installer esptool python -pakken som gjør det lettere å blinke ESP8266:

pip installer esptool

Last ned den siste stabile MicroPython -fastvaren fra MicroPython -nedlastingssiden. Koble en USB-UART-adapter til kortet. For sikkerhets skyld anbefales det å koble kortet fra adapteren i stedet for 220V AC -kontakten. Vær oppmerksom på at du bare kan bruke 3,3V. Hvis du kobler ESP8266 -brikken til en 5V -strømkilde, dør den.

Start ESP8266 i Flash -modus. Du kan gjøre det ved å trekke ned GPIO0 -pinnen mens du slår på enheten:

  • På Sonoff Basic er GPIO0 ganske enkelt knappen. Koble USB-UART-adapteren til PC-en mens du holder knappen inne, og du er i Flash-modus.
  • På Sonoff Dual er ting litt vanskeligere. Du må kortslutte to pads på kretskortet mens du driver kortet. De nødvendige putene er vist på bildet ovenfor. Bruk pinsett eller lodd en liten ledning mellom dem.

Når ESP8266 er i blitsmodus, bør ikke kortets LED blinke.

Sørg for at du får tilgang til den serielle porten som ble åpnet av USB-UART-adapteren. På Linux er det sannsynligvis / dev / ttyUSB0, på Mac bør du søke etter noe som "usbserial" eller "usbmodem" i kommandoutgangen ls / dev / cu.* Eller ls / dev / tty.*, I Windows bør det være COM3 eller høyere. Installer USB-UART-adapterdriverne om nødvendig.

Slett blitsen med esptool. Bytt ut /dev /ttyUSB0 for porten din om nødvendig:

esptool.py --port /dev /ttyUSB0 erase_flash

Du må kanskje kjøre esptool.py som en superbruker for å få tilgang til den serielle porten.

Trinn 3: Blinker

Blinker
Blinker

Hvis slettingen var vellykket, kutter du strømmen til kortet, starter ESP8266 i Flash -modus igjen og blinker fastvaren:

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

Hvis blinkingen var vellykket, kutter du kortet, kobler det til igjen uten å trykke på knappen og åpner den serielle porten i en terminal. På Linux og Mac kan du bruke screen /dev /ttyUSB0 115200 (bytt ut /dev /ttyUSB0 for porten din om nødvendig), i Windows kan du bruke PuTTY (standard overføringshastighet er 115200). Når du har koblet til, trykker du på Enter, og hvis du ser tre vinkelparenteser med Python -skall, fungerer alt!

>> >>> hjelp () Velkommen til MicroPython! Besøk https://docs.micropython.org/en/latest/esp8266/ for elektroniske dokumenter. For å inkludere diagnostisk informasjon i feilrapporter, kjør 'import port_diag'. Grunnleggende WiFi -konfigurasjon: importer nettverk sta_if = network. WLAN (network. STA_IF); sta_if.active (True) sta_if.scan () # Søk etter tilgjengelige tilgangspunkter sta_if.connect ("" ""): ap_if = network. WLAN (network. AP_IF) ap_if.config (essid = "", authmode = network. AUTH_WPA_WPA2_PSK, password = "") Kontrollkommandoer: CTRL-A-skriv inn rå REPL-modus CTRL- på en tom linje. B-på en tom linje, gå inn i normal REPL-modus CTRL-C-avbryt et program som kjører CTRL-D-på en tom linje, gjør en myk tilbakestilling av brettet CTRL-E-på en tom linje, skriv inn lim modus For ytterligere hjelp på et bestemt objekt, skriver du inn hjelp (obj) >>>

I den neste instruksen vil vi beskrive hvordan du samhandler med Cloud4RPi -plattformen via en MQTT -protokoll.

Anbefalt: