giovedì 1 settembre 2016

ESP8266 & MicroPython


Per apprezzare a pieno le potenzialità di connettività della nostra ESP8266, diamo uno sguardo ad un linguaggio di programmazione d'alto livello, più semplice ed intuitivi rispetto ad Arduino, chiamato Python.
Pyhton è un linguaggio ormai noto da anni, d'alto livello è con tantissime funzionalità in svariati campi.

Ma cos'è MicroPython? E' semplicemente una versione di Python in grado di "girare" su microcontrollore, come la nostra ESP8266.

Consiglio: nel caso vogliate approfondire un po' da soli il linguaggio Pyhton prima di cimentarsi in questa veloce guida: http://goo.gl/ZAVL46
Qui la pagina di riferimento con l'intero progetto: http://goo.gl/1AfQaE

L'intera guida è basata su Linux/OSX, la scheda in utilizzo sarà la esp8266 nodemcu. Potenzialmente si può utilizzare qualsiasi scheda ESP8266, ma in questa guida siamo all'inizio ;) .

Installazione e primo avvio

Per prima cosa dobbiamo recuperare tutto il necessario per caricare sulla nostra ESP il codice MicroPython. Se  necessario eccovi la guida in Inglese: http://goo.gl/88wmIE

Firmware for ESP8266 boardshttp://goo.gl/91gGB0
Consiglio di scaricare stabili, vi faccio un esempio:
esptool.py: il vero e proprio programma che caricherà il Firmware, lo si scarica usando Python  ( già presente in OSX/Linux ).
Apriamo il terminale e digitiamo:
sudo pip install esptool
Ora siamo finalmente pronti.

Per prima cosa troviamo la porta di comunicazione con la nostra ESP, da console digitiamo:
ls /dev/tty.*
Ci verrano mostrate le periferiche collegate al nostro PC. Scollegate la ESP e ridate il comando qui sopra, così sarete sicuri su quale sia realmente la porta della scheda. Questo numero sarà a PORTA.

Puliamo la nostra scheda digitando nel terminale:
esptool.py --port PORTA erase_flash
Carichiamo il Firmware con il comando:
esptool.py --port PORTA --baud 115200 write_flash --flash_size=detect 0 firmware.bin
Dove firmware.bin è la posizione del Firmware sul vostro computer.
Vi riporto un esempio, ho aperto il terminale nella cartella dove ho il Firmware:
esptool.py --port /dev/tty.wchusbserial1420 --baud 115200 write_flash --flash_size=detect 0 esp8266-20160809-v1.8.3.bin 

Ed ecco fatto, la nostra ESP monta MicroPython!

Serial REPL



Finalmente pronti a provare il nostro primo esempio, sempre da terminale digitiamo:
screen PORTA 115200
Premiamo invio e noteremo questo singolo ">>>" .
Questo è l'ambiente Python, caricato direttamente sulla scheda.

A differenza d'Arduino, che richiede l'IDE dove scrivere e compilare i programmi, il (Micro)Python non è previsto nessuno IDE. Tutto quello che si scrive viene compilato direttamente.

Proviamo a scrivere:
print("Hello World")
Dando invio il comando verrà eseguito direttamente, senza dover compilare o caricare e spedire nulla!

Per chiedere il nostro Serial REPL premiamo "CTRL + A" e scriviamo ":quit" .


Note conclusive

  • Posso esercitarmi con python utilizzando MicroPython ( sulla scheda )?
    • Si, se sei alle prime armi. MicroPython è una versione snella di Python, ma ha tutte le risorse minime del fratello più grande.
  • Perchè utilizzare micropython e non Arduino per scrivere i programmi IOT?
    • MicroPython è molto più snello e veloce per i progetti IOT, ma non solo! Per esempio, guarda questa calcolatrice : http://goo.gl/70quKV ; ci avresti messo molto di più a scriverlo in Arduino vero?
  • Altri comandi utili?

2 commenti:


  1. Excellent website. Lots of useful information here, thanks in your effort! . For more information please visit

    python online training

    RispondiElimina
  2. Ford Titanium Ecosport, a modular and flexible
    Ford Titanium Ecosport, a modular babyliss pro nano titanium hair dryer and flexible ecosport. pure titanium earrings This ford edge titanium 2019 is a modular ecosport. In this post citizen titanium watch we are taking a look at its architecture, its architecture titanium tube and

    RispondiElimina