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.

  • ESP8266
  • Cavetto usb
  • Qualche conoscenza di micropython → python in versione light (per il resto c'è google)

Siccome non ho inventato niente inserisco qui i link e un recap che mi hanno permesso di muovere i primi passi :

Introduzione : http://docs.micropython.org/en/latest/esp8266/tutorial/intro.html

link al .bin (già compilato) → si può anche compilare il firmware localmente (l'ho fatto ma perché dover fare più del necessario) http://micropython.org/download#esp8266 http://micropython.org/resources/firmware/esp8266-20180511-v1.9.4.bin ← al momento ho utilizzato la versione 1.9.4 che ha preinstallato una serie di funzionalità molto comode (non attive però) che vedremo a breve.

Procediamo :

  1. puoi iniziare dal punto dell'introduzione → pip install esptool (bisogna aver installato pip - gestore pachetti python).

questa è la versione che sto utilizzando (solo per riferimento) → pip 18.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7) …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'ESP8266 (p.e. /dev/ttyUSB0)

  1. adesso bisogna comunicare via seriale con il dispositivo → io ho usato minicom (p.e. minicom -D /dev/ttyUSB0)
  2. magicamente apparirà un simbolo “maggiore” > altro non è che l'interprete python a cui possiamo dare in pasto comandi python
  3. faccio subito un test > 5+5 ⏎ dovrebbe restituire 10
  4. 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'interprete python a tutti quelli connessi sulla WIFI tramite l'indirizzo che verrà rilasciato dal DHCP - di default il firmware ha attivata la modalità STA_AP (Access Point) che può lavorare in combinata con la modalità STA_IF (tarmite il Router)

Come dicevo prima riporto il link per un lettura più ricca di dettagli :

http://docs.micropython.org/en/v1.9.3/esp8266/esp8266/tutorial/network_basics.html

La procedura consiste nel passare all'interprete python alcune istruzioni per attivare la WIFI doveroso il link http://docs.micropython.org/en/v1.9.3/esp8266/esp8266/tutorial/network_basics.html della documentazione ufficiale (che trovo ben strutturata)

Codice
import network
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('<your ESSID>', '<your password>')
ap_if.ifconfig()

l'ultima istruzione permetterà di conoscere qual'è l'ip che ha rilasciato il DHCP

Importante (ci siamo quasi) prima di procedere abilitare il modulo webrepl necessario per connettersi con lo strumento web

Codice
import webrepl_setup

(rispondi alle domande che propone l'interprete python)

adesso arriva la parte più interessante → è arrivata l'ora di abbandonare la connessione seriale e quindi anche i “cavi”!

Siccome questo è un recap passiamo alla modalità “tutto pronto” :

http://micropython.org/webrepl/ ← non servirà quindi installarlo localmente e lanciarlo p.e. con un server node.js oppure http-server - link al sorgente (ti servirà la sola pagina webrepl.html) https://github.com/micropython/webrepl

a questo link troverai l'applicativo per acceddere tramite IP (che abbiamo scovato con il comando ap_if.ifconfig() nell'interprete python)

ws://192.168.4.1:8266/ di default viene proposto questo indirizzo per la modalità AP ma si può cambiare in p.e. 192.168.5.54 (dipende dal tuo DHCP)

Git :

https://git.mittelab.org/glavermi/ccalendar - Link al codice (fetch eventi da google calendar)

Per chi volesse usare webrepl da Android e si fosse accorto che ne Chrome né altri browser sn compatibili c'è questo apk

https://microcontrollerelectronics.com/sourcecode/micropython.apk

  • progetti/glavermi.txt
  • Ultima modifica: 2019/01/05 11:28
  • da glavermi