Sommario:

Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: 3 passaggi (con immagini)
Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: 3 passaggi (con immagini)

Video: Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: 3 passaggi (con immagini)

Video: Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: 3 passaggi (con immagini)
Video: Simplest way to flash ESP8266 and Sonoff | No command line here! 2024, Dicembre
Anonim
Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266
Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266

Cos'è Sonoff?

Sonoff è una linea di dispositivi per Smart Home sviluppata da ITEAD. Uno dei dispositivi più flessibili ed economici di quella linea sono Sonoff Basic e Sonoff Dual. Questi sono switch abilitati Wi-Fi basati su un ottimo chip, ESP8266. Sebbene l'infrastruttura Sonoff possa funzionare abbastanza bene per gli utenti di base, altri potrebbero voler hackerare quell'hardware ed eseguire il proprio codice su di esso. L'hardware di Sonoff Smart Switch è sorprendente, considerando il suo prezzo basso:

  • ESP8266 con 1 MB di flash
  • Adattatore di alimentazione integrato 220V AC
  • Relè 10A (o due in Sonoff Dual)
  • LED integrato (o due in Sonoff Dual)
  • Pulsante integrato

Se vuoi avere il pieno controllo di questo hardware usando il tuo linguaggio di programmazione preferito, questo tutorial fa per te.

Passaggio 1: hacking dell'hardware

Hackerare l'hardware
Hackerare l'hardware
Hackerare l'hardware
Hackerare l'hardware
Hackerare l'hardware
Hackerare l'hardware

ESP8266 è programmato tramite la porta seriale. Sia Sonoff Basic che Sonoff Dual lo hanno sul PCD.

Potrebbe essere necessario saldare un'intestazione del pin sul PCB per collegare facilmente un adattatore USB-UART.

Passaggio 2: preparazione all'hacking del software

Preparazione all'hacking del software
Preparazione all'hacking del software

Amo Python, quindi userò il firmware MicroPython. Puoi anche utilizzare qualsiasi SDK supportato. Procediamo al flashing di MicroPython invece del firmware proprietario Sonoff:

Installa il pacchetto esptool python che semplifica il flashing di ESP8266:

pip install esptool

Scarica l'ultimo firmware stabile di MicroPython dalla pagina dei download di MicroPython. Collega un adattatore USB-UART alla scheda. Per sicurezza, si consiglia di alimentare la scheda dall'adattatore invece che dalla presa 220V AC. Nota che puoi usare solo 3,3 V, se colleghi il chip ESP8266 a una fonte di alimentazione da 5 V, morirà.

Avvia ESP8266 in modalità Flash. Puoi farlo abbassando il pin GPIO0 mentre accendi il dispositivo:

  • Su Sonoff Basic, il GPIO0 è semplicemente il pulsante. Collega l'adattatore USB-UART al PC tenendo premuto il pulsante e sei in modalità Flash.
  • Su Sonoff Dual, le cose sono un po' più difficili. È necessario cortocircuitare due pad sul PCB mentre si alimenta la scheda. Le pastiglie necessarie sono mostrate nell'immagine sopra. Usa delle pinzette o salda un piccolo filo tra di loro.

Quando ESP8266 è in modalità Flash, il LED della scheda non dovrebbe lampeggiare.

Assicurati di poter accedere alla porta seriale aperta dall'adattatore USB-UART. Su Linux è probabilmente \dev\ttyUSB0, su Mac dovresti cercare qualcosa come "usbserial" o "usbmodem" nell'output del comando ls \dev\cu.* o ls \dev\tty.*, su Windows dovrebbe essere COM3 o più alto. Se necessario, installare i driver dell'adattatore USB-UART.

Cancella il flash usando esptool. Sostituisci /dev/ttyUSB0 per la tua porta, se necessario:

esptool.py --port /dev/ttyUSB0 erase_flash

Potrebbe essere necessario eseguire esptool.py come superutente per accedere alla porta seriale.

Passaggio 3: lampeggiante

lampeggiante
lampeggiante

Se la cancellazione ha avuto successo, togliere l'alimentazione alla scheda, riavviare ESP8266 in modalità Flash e flashare il firmware:

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

Se il lampeggio è andato a buon fine togliere l'alimentazione alla scheda, ricollegarla senza premere il pulsante e aprire la porta seriale in un terminale. Su Linux e Mac puoi usare screen /dev/ttyUSB0 115200 (sostituisci /dev/ttyUSB0 per la tua porta se necessario), su Windows puoi usare PuTTY (il baud rate predefinito è 115200). Una volta connesso, premi Invio e se vedi tre parentesi angolari della shell Python, allora tutto funziona!

>> >>> aiuto() Benvenuto in MicroPython! Per i documenti online, visitare https://docs.micropython.org/en/latest/esp8266/. Per informazioni diagnostiche da includere nelle segnalazioni di bug, eseguire 'import port_diag'. Configurazione WiFi di base: import network sta_if = network. WLAN(network. STA_IF); sta_if.active(True) sta_if.scan() # Cerca punti di accesso disponibili sta_if.connect("", "") # Connetti a un AP sta_if.isconnected() # Verifica la connessione con successo # Cambia nome/password dell'AP di ESP8266: ap_if = network. WLAN(network. AP_IF) ap_if.config(essid="", authmode=network. AUTH_WPA_WPA2_PSK, password="") Comandi di controllo: CTRL-A -- su una riga vuota, inserisci la modalità REPL non elaborata CTRL- B -- su una riga vuota, entra in modalità REPL normale CTRL-C -- interrompe un programma in esecuzione CTRL-D -- su una riga vuota, effettua un soft reset della scheda CTRL-E -- su una riga vuota, digita incolla mode Per ulteriore aiuto su un oggetto specifico, digita help(obj) >>>

Nella prossima istruzione, descriveremo come interagire con la piattaforma Cloud4RPi tramite un protocollo MQTT.

Consigliato: