Paano mag-Flash MicroPython Firmware sa isang ESP8266 Batay sa Sonoff Smart Switch: 3 Mga Hakbang (na may Mga Larawan)
Paano mag-Flash MicroPython Firmware sa isang ESP8266 Batay sa Sonoff Smart Switch: 3 Mga Hakbang (na may Mga Larawan)
Anonim
Paano mag-Flash MicroPython Firmware sa isang ESP8266 Batay sa Sonoff Smart Switch
Paano mag-Flash MicroPython Firmware sa isang ESP8266 Batay sa Sonoff Smart Switch

Ano ang Sonoff?

Ang Sonoff ay isang linya ng aparato para sa Smart Home na binuo ng ITEAD. Ang isa sa mga pinaka-nababaluktot at murang mga aparato mula sa linyang iyon ay Sonoff Basic at Sonoff Dual. Ito ang mga switch na pinagana ng Wi-Fi batay sa isang mahusay na maliit na tilad, ESP8266. Bagaman ang imprastraktura ng Sonoff ay maaaring gumana nang maayos para sa pangunahing mga gumagamit, maaaring gusto ng iba na i-hack ang hardware na iyon at patakbuhin ang kanilang sariling code dito. Ang hardware ng Sonoff Smart Switches ay kamangha-mangha, isinasaalang-alang ang mababang presyo:

  • Ang ESP8266 na may 1MB flash
  • 220V AC integrated power adapter
  • 10A Relay (o dalawa sa Sonoff Dual)
  • Onboard LED (o dalawa sa Sonoff Dual)
  • Sakay ng Button

Kung nais mong makontrol ang buong hardware na ito gamit ang iyong paboritong wika sa programa, ang tutorial na ito ay para sa iyo.

Hakbang 1: Pag-hack sa Hardware

Pag-hack sa Hardware
Pag-hack sa Hardware
Pag-hack sa Hardware
Pag-hack sa Hardware
Pag-hack sa Hardware
Pag-hack sa Hardware

Ang programang ESP8266 ay nai-program sa pamamagitan ng serial port. Parehong mayroon itong Sonoff Basic at Sonoff Dual sa PCD.

Maaaring kailanganin mong maghinang ng isang pin header sa PCB upang madaling kumonekta sa isang adapter ng USB-UART.

Hakbang 2: Paghahanda sa Pag-hack ng Software

Paghahanda sa Pag-hack ng Software
Paghahanda sa Pag-hack ng Software

Gustung-gusto ko ang Python, kaya gagamitin ko ang MicroPython firmware. Maaari mo ring gamitin ang anumang suportadong SDK. Magpatuloy tayo sa pag-flashing ng MicroPython sa halip na pagmamay-ari na Sonoff firmware:

I-install ang esptool python package na nagpapadali sa pag-flashing ng ESP8266:

pip install ng esptool

I-download ang pinakabagong matatag na MicroPython firmware mula sa pahina ng mga pag-download ng MicroPython. Ikonekta ang isang USB-UART adapter sa board. Para sa kaligtasan, inirerekumenda na i-power ang board mula sa adapter sa halip na 220V AC socket. Tandaan na maaari mo lamang gamitin ang 3.3V, kung ikinonekta mo ang chip na ESP8266 sa isang mapagkukunang 5V na kapangyarihan, mamamatay ito.

Boot ESP8266 sa Flash Mode. Maaari mo itong gawin sa pamamagitan ng pagbaba ng GPIO0 pin habang pinapagana ang aparato sa:

  • Sa Sonoff Basic, ang GPIO0 ay simpleng pindutan. Ikonekta ang USB-UART adapter sa iyong PC habang hawak ang pindutan at ikaw ay nasa Flash Mode.
  • Sa Sonoff Dual, medyo mahirap ang mga bagay. Kailangan mong mag-ikot ng dalawang pad sa PCB habang pinapatakbo ang board. Ang mga kinakailangang pad ay ipinapakita sa larawan sa itaas. Gumamit ng mga sipit o panghinang sa isang maliit na kawad sa pagitan nila.

Kapag ang ESP8266 ay nasa Flash Mode, ang LED ng board ay hindi dapat mag-flash.

Tiyaking maaari mong ma-access ang serial port na binuksan ng USB-UART adapter. Sa Linux marahil ay / dev / ttyUSB0, sa Mac dapat kang maghanap para sa isang bagay tulad ng "usbserial" o "usbmodem" sa ls / dev / cu. * O ls / dev / tty. * Utos ng utos, sa Windows dapat itong COM3 o mas mataas. I-install ang mga driver ng USB-UART adapter kung kinakailangan.

Burahin ang flash gamit ang esptool. Palitan ang / dev / ttyUSB0 para sa iyong port kung kinakailangan:

esptool.py --port / dev / ttyUSB0 burahin_flash

Maaaring kailanganin mong patakbuhin ang esptool.py bilang isang superuser upang ma-access ang serial port.

Hakbang 3: Flashing

Kumikislap
Kumikislap

Kung matagumpay ang pagbura, gupitin ang kapangyarihan ng board, i-boot muli ang ESP8266 sa Flash Mode, at i-flash ang iyong firmware:

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

Kung matagumpay ang flashing, gupitin ang lakas ng board, ikonekta muli ito nang hindi pinipilit ang pindutan, at buksan ang serial port sa isang terminal. Sa Linux at Mac maaari mong gamitin ang screen / dev / ttyUSB0 115200 (palitan ang / dev / ttyUSB0 para sa iyong port kung kinakailangan), sa Windows maaari mong gamitin ang PuTTY (ang default na rate ng baud ay 115200). Kapag kumonekta ka, pindutin ang Enter, at kung makakita ka ng tatlong mga anggulo na bracket ng shell ng Python, kaysa sa lahat ay gumagana!

>> >>> tulong () Maligayang pagdating sa MicroPython! Para sa mga online na dokumento mangyaring bisitahin ang https://docs.micropython.org/en/latest/esp8266/. Para sa impormasyong diagnostic upang isama sa mga ulat sa bug magpatupad ng 'import port_diag'. Pangunahing pagsasaayos ng WiFi: i-import ang network sta_if = network. WLAN (network. STA_IF); sta_if.active (True) sta_if.scan () # I-scan para sa mga magagamit na access point sta_if.connect ("", "") # Kumonekta sa isang AP sta_if.isconnected () # Suriin para sa matagumpay na koneksyon # Baguhin ang pangalan / password ng AP8266's AP: ap_if = network. WLAN (network. AP_IF) ap_if.config (essid = "", authmode = network. AUTH_WPA_WPA2_PSK, password = "") Mga control control: CTRL-A - sa isang blangko na linya, ipasok ang hilaw na REPL mode CTRL- B - sa isang blangko na linya, ipasok ang normal na mode na REPL CTRL-C - makagambala sa isang tumatakbo na programa na CTRL-D - sa isang blangko na linya, gawin ang isang malambot na pag-reset ng board CTRL-E - sa isang blangko na linya, ipasok ang i-paste mode Para sa karagdagang tulong sa isang tukoy na bagay, i-type ang tulong (obj) >>>

Sa susunod na maituturo, ilalarawan namin kung paano makipag-ugnay sa platform ng Cloud4RPi sa pamamagitan ng isang MQTT protocol.

Inirerekumendang: