Sonntag, 10. Mai 2020

Esp8266 programmieren - micropython installieren

Hier mal ein paar Informationen wie man einen ESP8266 über Ubuntu programmiert und überhaupt damit umgeht.

Ich beschreib hier wie man den ESP8266 mit micropython benutzt. Anleitungen für arduino IDE gibt es schon einige, dazu sag ich nicht viel.

Den ESP8266 zuerst einmal an einem USB Port anschließen, dabei darauf achten, dass man ein vollständiges USB Kabel verwendet, nicht ein Kabel das nur zum Laden gedacht ist (ja die gibt es auch noch, und das hat mich schon mal ein paar Minuten gekostet)

Nach dem anschließen sollte mittels dmesg ein neuer serieller Port auftauchen.

[  690.410618] usb 3-2: new full-speed USB device number 2 using xhci_hcd
[  690.559940] usb 3-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.63
[  690.559945] usb 3-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[  690.559947] usb 3-2: Product: USB2.0-Serial
[  690.619457] usbcore: registered new interface driver usbserial_generic
[  690.619500] usbserial: USB Serial support registered for generic
[  690.621565] usbcore: registered new interface driver ch341
[  690.621584] usbserial: USB Serial support registered for ch341-uart
[  690.621606] ch341 3-2:1.0: ch341-uart converter detected
[  690.622318] usb 3-2: ch341-uart converter now attached to ttyUSB0


Danach benötigt man noch einige Programme, damit man etwas auf den ESP8266 übtragen kann, dazu folgendes nachinstallieren.

sudo apt install esptool python3-serial screen

Dann ist noch das Modul ampy notwendig, mit dem lassen sich ganz leicht Daten mit dem ESP8266 über seriell austauschen. Das gibts aber auch bei ubuntu 20.04 noch nicht im Repository.

sudo pip3 install adafruit-ampy

So nun sollte jetzt alles installiert sein um z.B. micropython auf dem ESP8266 zu installieren, das Image findest du hier https://micropython.org/download/esp8266/

Achtung: Wer neu in der Microcontroller Welt ist es vielleicht nicht gewohnt, dass man das Board so genau wissen muß. Es gibt nicht die eine micropython Installation, die sind alle maßgeschneidert für das eine Board.

Ich verwende hier das Image esp8266-20190529-v1.11.bin, das ich mit folgender Abfolge von Befehlen auf das Board bringe:

esptool.py --port /dev/ttyUSB0 erase_flash

Ausgabe schaut so aus

esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 50:02:91:4e:f1:45
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 7.5s
Hard resetting via RTS pin...


Mit dem Befehl wird der Flash gelöscht.

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20190529-v1.11.bin

Mit dem Befehl wird das micropython Image nun auf das Board geschrieben, die Ausgabe schaut dann bei mir so aus

esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 50:02:91:4e:f1:45
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0040
Compressed 617880 bytes to 402086...
Wrote 617880 bytes (402086 compressed) at 0x00000000 in 9.2 seconds (effective 539.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin..


Also hab ich jetzt micropython auf meinem ESP8266 drauf, super.
Und was könnte ich jetzt damit machen ...

Mit screen kann man ganz einfach mit dem Python Interpreter am Board aufnehmen und dem mit machen was man mit einem Python Interpreter auch immer machen kann.

screen /dev/ttyUSB0 115200

Dann einfach eine Taste drücken und man ist am Prompt des Interpreters, hier starte ich den Controller dann neu und frag die Frequenz ab.

MicroPython v1.11-8-g48dcbbe60 on 2019-05-29; ESP module with ESP8266
Type "help()" for more information.
>>> machine.reset()
>>>
 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 31024, room 16
tail 0
chksum 0xb4
load 0x3ffe8000, len 1104, room 8
tail 8
chksum 0x74
load 0x3ffe8450, len 824, room 0
tail 8
chksum 0x45
csum 0x45
����o�{��'<�d$l$ c��|;�$�g��o�$ ��s�d�$�d`��;�l�d�l`��{�lǟ�l$ ;l��{d���cĄc|l#��c|��Ą$dc��o�n'��dn���l��$d���$ �g����cdl䄇c���bd�c{l;dr�'�����o�߀�c{����$d�
MicroPython v1.11-8-g48dcbbe60 on 2019-05-29; ESP module with ESP8266
Type "help()" for more information.
>>> machine.freq()
80000000

Das einzige das ich hier dazu noch poste ist die Information, dass automatisch beim Start des Controllers das Fiel main.py ausgeführt  wird, aber dazu in einem anderen Post mehr

Keine Kommentare:

Kommentar veröffentlichen

OpenWRT 19 und ein Edimax USB WLAN Adapter

Ich kam gerade in die Verlegenheit einen Rapsberry B+ (das erste Modell) als Open-WRT Router für Outdoor neu zu installieren und wollte dabe...