Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
progetti:glavermi [2020/10/11 09:35] – [Inizio] glavermi | progetti:glavermi [2023/10/11 18:42] (versione attuale) – eliminata glavermi | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== MicroPython ====== | ||
- | Vuoi mettere in pausa Arduino e provare a scrivere qualche riga di codice sfruttando le potenzialità di python (micropython) direttamente sul tuo ESP8266 tenendolo collegato al router e inviando gli aggiornamenti OTA. | ||
- | ===== Materiali ===== | ||
- | * ESP8266 | ||
- | * Cavetto usb | ||
- | * Qualche conoscenza di micropython -> python in versione light (per il resto c'è google) | ||
- | |||
- | ===== Inizio ===== | ||
- | Siccome non ho inventato niente inserisco qui i link e un recap che mi hanno permesso di muovere i primi passi : | ||
- | |||
- | **Introduzione :** | ||
- | [[http:// | ||
- | |||
- | link al .bin (già compilato) -> si può anche compilare il firmware localmente (l'ho fatto ma perché dover fare più del necessario) | ||
- | [[http:// | ||
- | [[http:// | ||
- | |||
- | **Procediamo :** | ||
- | - puoi iniziare dal punto dell' | ||
- | questa è la versione che sto utilizzando (solo per riferimento) -> pip 18.1 from / | ||
- | ...i successivi passaggi (esptool.py --port /dev...) permetteranno di caricare il firmware su ESP8266 che hai collegato al PC. Segui le indicazioni specificando su quale /dev hai collegato l' | ||
- | - adesso bisogna comunicare via seriale con il dispositivo -> io ho usato minicom (p.e. minicom -D / | ||
- | - magicamente apparirà un simbolo " | ||
- | - faccio subito un test > 5+5 &# | ||
- | - se fai uno scan delle connessioni wifi troverai una nuova connessione che inizia con -> MicroPython- (però siccome non ti voglio perdere seguiremo la procedura che permette di associare la wifi del tuo router direttamente) e rendere disponibile l' | ||
- | |||
- | Come dicevo prima riporto il link per un lettura più ricca di dettagli : | ||
- | |||
- | [[http:// | ||
- | |||
- | La procedura consiste nel passare all' | ||
- | doveroso il link [[http:// | ||
- | |||
- | == Codice == | ||
- | <code python> | ||
- | import network | ||
- | sta_if = network.WLAN(network.STA_IF) | ||
- | sta_if.active(True) | ||
- | sta_if.connect('< | ||
- | ap_if.ifconfig() | ||
- | </ | ||
- | |||
- | l' | ||
- | |||
- | Importante (ci siamo quasi) prima di procedere abilitare il modulo webrepl necessario per connettersi con lo strumento web | ||
- | |||
- | == Codice == | ||
- | <code python> | ||
- | import webrepl_setup | ||
- | </ | ||
- | |||
- | (rispondi alle domande che propone l' | ||
- | |||
- | |||
- | adesso arriva la parte più interessante -> è arrivata l'ora di abbandonare la connessione seriale e quindi anche i " | ||
- | |||
- | Siccome questo è un recap passiamo alla modalità "tutto pronto" | ||
- | |||
- | [[http:// | ||
- | |||
- | a questo link troverai l' | ||
- | |||
- | [[ws:// | ||
- | |||
- | |||
- | == Git : == | ||
- | |||
- | |||
- | [[https:// | ||
- | |||
- | Per chi volesse usare webrepl da **Android** e si fosse accorto che ne Chrome né altri browser sn compatibili c'è questo apk | ||
- | |||
- | https:// | ||
- | |||
- | |||
- | == Hw / Hands-on : == | ||
- | |||
- | |||
- | {{: | ||
- | [[http:// | ||
- | |||
- | Tra i vari dispositivi reperibili online che montano ESP8266 è possibile trovare questo hw che ho scelto perché presentava una serie di connettori già saldati per permettere l' | ||
- | |||
- | Vediamo però come farlo funzionare, online non ho trovato nessun riferimento a parte | ||
- | | ||
- | A0 01 01 A2 hex switch on | ||
- | A0 01 00 A1 hex switch off | ||
- | |||
- | Con il dispositivo collegato normalmente e con fw originale ho letto dal canale TX dell' | ||
- | |||
- | Inizialmente pulseView mi ha restituito 0xA3 e 0x83 che ho provato ad utilizzare emulandolo con micropython ma senza risultato, così ho provato a scalare la velocità di lettura del canale TX a 115200 e togliere il bit di stop (non me lo sarei mai aspettato - di solito per questi dispositivi utilizzano velocità basse come 9600bps). Magicamente con i valori impostati a 115200 e senza bit di stop ho trovato il comando di accensione dichiarato dalla casa costruttrice (A0 01 01 A2) preceduto da altri dati che penso siano l' | ||
- | |||
- | Riporto quindi le informazioni per tutti quelli che vogliono divertirsi con questi dispositivi e/o con programmatori diversi da micropython : | ||
- | |||
- | 0D 0A 2B 49 50 44 2C 30 2C 34 3A A0 01 01 A2 | ||
- | |||
- | 0D 0A 2B 49 50 44 2C 30 2C 34 3A A0 01 00 A1 | ||
- | |||
- | {{: | ||
- | |||
- | Buon lavoro! |