NodeMCU ESP8266MOD i microPython

O płytce NodeMCU ESP8266MOD pisałem już tu. Tam jednak płytka współpracowała z Arduino IDE. Teraz pobawmy się Pythonem. Ściślej jej wersją micro.

Ścieżka microPython

Najpierw tworzymy wirtualne środowisko. Nie jest konieczne, ale porządkuje robotę.
$ pip install virtualenv
$ virtualenv -p python3 microPython_env //nazwa oczywiście dowolna, może też być ścieżka

aktywowujemy je komendą:
$ source microPython_env/bin/activate
w terminalu wyświetli się:
(microPython_env) $

dezaktywujemy aktywne środowisko komendą:
$ deactivate

Należy jeszcze zainstalować narzędzie esptool.py
pip install esptool

Aby widoczny był port urządzenia należy ze strony www.silabs.com ściągnąć sterownik USB:

https://www.silabs.com/products/mcu/P…

Po podłączeniu kabla USB do urządzenia możemy otworzyć okno terminala i spowodować wypisanie listy wszystkich urządzeń podłączonych do USB wpisując:
ls -al /dev/cu*
Nazwa nowego urządzenia która się pojawiła w moim przypadku to tty.SLAB_USBtoUART.

⊥Źródło: Getting started with MicroPython on the ESP8266

Pierwsze co robimy, to instalujemy narzędzie esptool w naszym środowisku Python-a

Ściągamy firmware z microPythonem dla naszego modułu ESP8266

Jeśli płytka jest połączona przez kabel USB i widzimy jej adres, (u mnie to cu.SLAB_USBtoUART), wymazujemy pamięć:
W tym celu do terminalu wpisujemy:
$ esptool.py --port /dev/cu.SLAB_USBtoUART erase_flash
Erasing flash (this may take a while)…
Chip erase completed successfully in 6.9s

Następnie zmieniamy folder na ten w którym znajduje się ściągnięty plik z firmware
$ cd /Users/yarogni7ew/Downloads
… i wgrywamy go do modułu wpisując:
$ esptool.py --port /dev/cu.SLAB_USBtoUART --baud 460800 write_flash --flash_size=detect 0 esp8266-20180511-v1.9.4.bin

Jeśli wszystko przebiegło dobrze wpisujemy:
$ screen /dev/cu.SLAB_USBtoUART 115200

i już możemy wpisać pierwszy program w języku microPython

Na przykład:

from machine import Pin

p0 = Pin(0, Pin.OUT) # create output pin on GPIO0
p0.on() # set pin to "on" (high) level
p0.off() # set pin to "off" (low) level
p0.value(1) # set pin to on/high

p2 = Pin(2, Pin.IN) # create input pin on GPIO2
print(p2.value()) # get value, 0 or 1

p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation

Quick reference for the ESP8266

Quick reference for the ESP8266

links:

troubleshooting

http://docs.micropython.org/en/latest/esp8266/library/machine.Pin.html

http://docs.micropython.org/en/latest/esp8266/library/machine.Pin.html

powering esp8266 board

Dodaj komentarz