Micropython ir ESP8266
Greitam rezultatui gauti naudoju MicroPython. Python - profesionali, lengvai išmokstama programavimo kalba. Sintaksė panaši į žmonių kalbą ir palyginus su kitomis (Arduino, C++, Java) yra labai paprasta.
Čia trumpai surašau kaip paruošti modulį ESP8266 ESP-12-F darbui su Micropython. Naudojama OS - Fedora Linux. Windows vartotojams komandos kažkiek skiriasi, bet principas tas pats.
Reikalingi programiniai įrankiai
- esptool.py - firmware atnaujinimui
- ampy - failų perkėlimui iš kompiuterio į ESP8266
Įdiegiama komandomis:
sudo pip install esptool
sudo pip install adafruit-ampy
Naujausio firmware įkėlimas
ESP8266 plokštei skirtą firmware (liet. programinė aparatinė įranga :) galima rasti adresu http://micropython.org/download/#esp8266
Šiuo momentu naujausia versija - esp8266-20190316-v1.10-227-g696549d2e.bin
Atsisiunčiam:
cd /tmp
wget http://micropython.org/resources/firmware/esp8266-20190316-v1.10-227-g696549d2e.bin
Išvalom ESP atmintį ir įkeliam atsisiųstą firmware:
# išvalom
esptool.py --port /dev/ttyUSB0 erase_flash
# įkeliam
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20190316-v1.10-227-g696549d2e.bin
- Daugiau informacijos apie ESP8266 firmware http://docs.micropython.org/en/latest/esp8266/tutorial/intro.html#deploying-the-firmware
REPL
REPL (Read Evaluate Print Loop) - tai interaktyvi sąsaja, kuri ypač patogi realiu laiku komunikuoti su ESP8266. Galima rašyti po vieną komandą ir iš karto matyti rezultatą arba stebėti įkeltos aplikacijos vykdymo log'ą.
Prisijungus paprastai spaudžiamas enter
ir turi pasimatyti simboliai >>>
. Dar galima tiesiog parašyti help()
ir spausti enter
- ekrane pasirodys bendra naudojimo informacija.
Jeigu simbolių >>>
nėra, reikia spausti Ctrl-c
keletą kartų, kad nutraukti bet kokią plokštėje vykdomą programą.
Prisijungimui prie REPL naudoju screen
.
screen /dev/ttyUSB0 115200
from machine import Pin
led = Pin(2, Pin.OUT)
help(led)
led.on()
Rezultatas:
Norint išeiti iš screen
reikia spausti Ctrl-a
, tada k
, tada y
. Arba Ctrl-a
tada rašyti :quit
ir spausti enter
.
Daugiau info apie REPL http://docs.micropython.org/en/latest/esp8266/tutorial/repl.html.
Failų sistema
Paprastas būdas pamatyti įkeltų failų sąrašą:
screen /dev/ttyUSB0 115200
import os
print(os.listdir())
Rezultatas turi būti toks: ['boot.py']
. boot.py
ir main.py
yra du spec. failai, kurie paleidžiami automatiškai įjungus plokštę. boot.py
skirtas plokštės konfigūracijai o pagrindinė programa rašoma į main.py
.
Komandos failų perkėlimui iš kompiuterio į ESP:
ampy --port /dev/ttyUSB0 put boot.py
ampy --port /dev/ttyUSB0 put main.py
Demonstracinė programa
Programa main.py
from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
led.on()
time.sleep(0.5)
led.off()
time.sleep(0.5)
Perkėlimas:
ampy --port /dev/ttyUSB0 put main.py
Kiek atminties?
Skirtingi ESP8266 moduliai turi skirtingus atminties dydžius. Paprastas būdas patikrinti:
screen /dev/ttyUSB1 115200
>>> import esp
>>> esp.flash_size()
4194304