Schon seit längerem verwende ich ESP8266 und ESP32 für einige meiner Projekte. Bis jetzt nutzte ich die Arduino IDE mit einigen Ausflügen zu PlatformIO und programmierte die Chips direkt in C.
Seit einiger Zeit spiele ich jedoch mit dem Gedanken auf Python bzw. auf Micropython umzusteigen, da das für das Prototyping doch einige große Vorteile hätte. Der größte Nachteil von Micropython ist die Geschwindigkeit, was bei meinen Projekten bislang aber keine so große Rolle spielte. Deshalb habe ich mir das Ganze etwas näher angesehen und Micropython auf einem ESP8266 installiert.
Für den ESP8266 kann ein fertig kompiliertes Paket von der Micropython Webseite herunter geladen werden.
https://micropython.org/download#esp8266
Nachdem ich die Firmware heruntergeladen hatte, musste sie noch auf den ESP8266 gespielt werden, wofür Python und esptools.py benötigt werden.
Ich verwende Ubuntu 18.10 mit Python3 solltest du Python2 verwenden einfach PIP3 durch PIP ersetzen. Das Programm esptools.py installierte ich mit der Option -H, damit es systemweit zur Verfügung steht.
sudo -H pip3 install esptool
Nachdem esptool installiert war, musste ich noch herausfinden an welchem Port der ESP8266 angesteckt war. Wenn kein weiterer USB -> RS232 Adapter verwendet wird ist dass /dev/ttyUSB0.
Um die heruntergeladene Firmware zu installieren muss erst der Flashspeicher des ESP gelöscht werden und anschliessend kann die Firmware geschrieben werden.
sudo esptool.py --port /dev/ttyUSB0 erase_flash
sudo esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20190529-v1.11.bin
So, das war es auch schon nun sollte Micropython auf dem ESP8266 laufen. Jetzt musste ich dass Ganze nur noch testen, dafür kann ein einfaches Terminal Programm verwendet werden. Ich verwende dafür picocom das ich mit
sudo apt install picocom
installiert habe.
Nach der installation konnte ich mich dann einfach per
sudo picocom /dev/ttyUSB0 -b115200
mit dem ESP8266 verbinden und landete bei dem REPL promt von Micropython. Hier ist es bereits möglich Python Code auszuführen ohne überhaupt ein Programm zu schreiben. Hier ein kurzes Beispiel um die Onboard LED zu steuern, einfach der Reihe nach eingeben.
import machine
pin = machine.Pin(2,machine.Pin.OUT)
pin.on()
pin.off()
So, das war es für heute. Weitere Informationen findet ihr hier. https://docs.micropython.org/en/latest/esp8266/tutorial/index.html
Neueste Kommentare