Xspone.com
Micropython auf ESP8266

ESP8266 Micropython Files Up- und Download

Veröffentlicht am 25. Juni 2019 in
ESP8266 | Microcontroller | Micropython | Python

Nachdem ich das letzte mal Micropython auf dem ESP8266 installiert und auch etwas mit REPL rumgespielt habe möchte ich nun natürlich auch ein eigenes Python Programm hochladen und auf dem ESP8266 starten.

Um das zu machen musste ich zuerst ampy von Adafruit installieren.

sudo -H pip3 install adafruit-ampy

Da ich auch das von überall nutzen möchte und auch mit verschiedenen Usern installierte ich es wieder mit sudo -H.

Ampy auf dem ESP8266

Was kann Ampy? Hier findet ihr das GIT Repository mit einer kleinen Beschreibung. https://github.com/pycampers/ampy

Grundsätzlich ist ein Ampy Aufruf immer gleich aufgebaut.

ampy --port {Schnittstelle} {Befehl}

Files im ESP8266 auflisten

ampy --port /dev/ttyUSB0 ls

Damit werden alle Files auf dem ESP8266 aufgelistet, sieht bei mir gerade so aus.

/boot.py
/webrepl_cfg.py

Files aus dem ESP8266 auslesen

ampy --port /dev/ttyUSB0 get boot.py

Damit kann ein File aus dem ESP ausgelesen und am Bildschirm angezeigt werden. Toll, aber nicht das was ich wollte, eigentlich wollte ich es als File ablegen, also nochmal.

ampy --port /dev/ttyUSB0 get boot.py > boot.py

Damit wird das File nun im aktuellen Verzeichnis abgelegt und kann von dort geöffnet werden.

Files auf den ESP8266 schreiben

Um ein File hochzuladen benötigen wir erst mal ein File, ich habe deshalb ein hoch komplexes Python Programm geschrieben das die Onboard LED blinken lässt.

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

Das File nannte ich main.py. Warum? main.py ist das Programm, das automatisch ausgeführt wird sobald der ESP startet. Nachdem ich das File erstellt habe, habe ich es mit folgendem Befehl auf den ESP 8266 hochgeladen.

ampy --port /dev/ttyUSB0 put main.py

Python Programm auf dem ESP ausführen

Nachdem ich jetzt ein main.py Programm angelegt habe, könnte ich des ESP8266 einfach reseten und dann läuft das Programm. Aber ich möchte es natürlich auch über die Konsole starten können und das funktioniert mit folgendem Befehl.

ampy --port /dev/ttyUSB0 run main.py

Files auf dem ESP8266 löschen

Was noch fehlt ist die Möglichkeit Files zu löschen. Das wird mit dem Befehl rm gemacht.

ampy --port /dev/ttyUSB0 rm main.py

Faulheit unterstützen

Ja, ich gebe es zu, ich bin faul und versuche das soweit wie möglich überall auszuleben 🙂

In den Besipielen habe ich mir fast die Finger wund getippt, weil ich immer wieder der Port angeben musste an der ESP8266 angeschlossen ist.

Es geht aber auch einfacher. Wird die Port Variable exportiert, kann ampy ohne die ständige Angabe verwendet werden. Das funktioniert natürlich nur so lange die Konsole geöffnet ist, sobald sie geschlossen und neu geöffnet wird, muss der Export erneut ausgeführt werden.

Alternativ gibt es auch die Möglichkeit bei ampy ein Konfigurationsfile zu hinterlegen, aber das ist in dem oben geposteten Link beschrieben.

export AMPY_PORT=/dev/ttyUSB0

Nun ist es möglich ampy einfach so aufzurufen

ampy ls
ampy put main.py
ampy run main.py
....

So, das war's für heute. Viel Spaß noch.

Kommentar verfassen

%d Bloggern gefällt das: