MicroPython su ESP8266

Questo post non è certamente una novità in rete. Esistono guide anche ufficiali probabilmente in inglese che si possono consultare. Ci limitiamo a replicare le esperienze di queste guide riducendole all’osso con i dispositivi in nostro possesso e per le esperienze che ci interessano

La guida è sperimentata su Ubuntu Studio 18.10 perfettamente aggiornata. Su Windows gli stessi passaggi sono decisamente più complessi. Se non volete installare linux in una virtual box, potete sempre munirvi di un dvd o penna usb da lanciare al volo. La basetta scelta è una WeMos D1 con chip EPS8266 perfettamente compatibile.

Prima di tutto dobbiamo caricare il firmware su misura. Per farlo occorre un tool molto semplice denominato ESPTOOL che su Linux è facilmente installabile con

sudo pip install esptool

Dovrebbe tranquillamente girare con Python 2.7 e 3

Attacchiamo il nostro ESP8266 col cavetto microusb e liberiamo prima la memoria col comando

esptool.py --port /dev/ttyUSB0 erase_flash

Se la porta ttUSB0 da errore probabilmente ne sta usando un’altra. Proviamo ad aprire Arduino, selezioniamo la nostra basetta ESP8266/WeMOS e controlliamo che porte ha individuato i lsoftware.

Preleviamo il nuovo firmware. Io preferisco prendere la versione stable, tranquilla e sicura per i nostri test. La potete trovare al seguente link, nella porte più alta con tanto di scritta “latest” di fianco. Mentre scriviamo siamo alla versione 1.11

http://micropython.org/download#esp8266

Una volta scaricato i lfile .bin carichiamolo col nostro tool con un comando simile a questo dove avrete cura di sostituire il percorso per raggiungere il file o aprendo una shell direttamente nella cartella del download.

esptool.py –port /dev/ttyUSB0 –baud 460800 write_flash –flash_size=detect 0 ../Scaricati/esp8266-20190529-v1.11.bin

Possiamo connetterci finalmente alla nostra basetta con un collegamento seriale. Installiamo sulla nostra distribuzione:

sudo aptitude install picocom o sudo apt-get install picocom 

Ci basta digitare il comando in una shell con tanto di banda di scambio e siamo subito online

picocom /dev/ttyUSB0 -b115200

 Potete inserire codice come nelle normali shell python, ma probabilmente volete inserire script con copia/incolla. Usate CTRL-e e incollate col tasto destro. Occhio agli spazi e righe vuote che vengono mal digeriti dall’interprete. Vi suggerisco di scrivere il vostro codice su IDLE o altro IDE Python sul vostro pc e inserirlo successivamente sulla basetta così da avere un debug, sintassi colorata e tutti gli aiuti che non avrete a digitare il codice secco sulla shell python appena aperta sul basetta. Il nostro primo esempio è un classico: far lampeggiare il led integrato. Il codice è abbastanza intuitivo rispetto alla versione C/C++.

import time
import machine
pin = machine.Pin(2, machine.Pin.OUT)
while True:
	pin.off()
	time.sleep(1)
	pin.on()
	time.sleep(1)

Possiamo sempre annullare il codice e il nostro ciclo con un CTRL-c, ed ovviamente la basetta smetterà di lampeggiare.

Se vogliamo uscire e tornare alla shell usiamo in rapida successione CTRL-a e CTRL-q 

Ultima modifica 24 Maggio 2022