Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:esp8266

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:esp8266 [2017-08-01 11:41] – [Dateitransfer] Instllationshinweis. marco.bakeraschule:esp8266 [2024-01-20 09:49] (aktuell) pintman
Zeile 1: Zeile 1:
-====== ESP8266 ====== +Verschoben nach [[edu:esp8266]].
- +
-{{:schule:hardware:esp8266.jpg?direct&600|}} +
- +
-[[https://micropython.org|Micropython]] ist eine +
-Variante von [[Python]], die auf Mikrocontroller zugeschnitten +
-ist. Der +
-[[http://www.mikrocontroller.net/articles/ESP8266|ESP8266]] ist +
-ein günstiger (~4$) Baustein mit WLAN-Funktionen, für den +
-eine Micropython-Firmware existiert. Über das +
-nodemcu Development-Kit, das auf dem Bild zu sehen ist, verfügt der +
-Baustein über einen USB-Anschluss, über den man mit dem Chip +
-kommunizieren kann. Die PINs sind herausgeführt und lassen sich +
-in Schaltungen verwenden. +
- +
-===== Installation der Firmware ===== +
- +
-Nun soll die Firmware für Micropython installiert werden. Diese +
-lässt sich von der Webseite +
-[[https://micropython.org/download/#esp8266|herunterladen]]. Für +
-die Installation gibt es das Tool esptool.py, das sich ebenso +
-einfach installieren lässt.   +
- +
-  $ sudo pip install esptool +
- +
-Anschließend kann die vorhandene Firmware auf den ESP8266 +
-zunächst gelöscht und mit dem zweiten Befehl die neue Firmware +
-übertragen werden.   +
- +
-  $ esptool.py --port /dev/ttyUSB0 erase_flash  +
-  $ esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=8m 0 esp8266-20160825-v1.8.3-49-ga589fa3.bin +
- +
-Bei mir kam es bei Geschwindigkeiten über 115200 Baud zu +
-Problemen, weshalb ich die Geschwindigkeit reduziert habe. Die +
-Befehle habe ich der +
-[[http://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/intro.html#deploying-the-firmware|Anleitung +
-von mircopython]] entnommen. +
- +
-===== Zugriff über die serielle Schnittstelle ===== +
- +
- +
-Nun kann mit einem Terminalprogramm auf den Microcontroller zugegriffen werden. Das geht mit putty, minicom, screen oder auch miniterm.py. +
- +
-  $ screen /dev/ttyUSB0 115200 +
-   +
-oder +
- +
-  $ miniterm.py /dev/ttyUSB0 115200 +
- +
-Für ''/dev/ttyUSB0'' muss die serielle Schnittstelle angegeben werden, unter der sich der Chip am USB-Port anmeldet. Unter Windows findet man die Information im Geräte-Manager: ''COM'' gefolgt von einer Zahl. +
- +
-Sollte miniterm.py noch nicht installiert sein, so kann es +
-mit ''pip install pyserial'' nachinstalliert werden. +
- +
-Im Anschluss erhält man eine Python-Konsole, die man für eigene +
-Projekte verwenden kann. Beim Start steht der ESP als Access +
-Point zur Verfügung, auf den sich Clients mit dem +
-Standardpasswort 'micropythoN' verbinden können. Für den +
-Dateitransfer kann dann das Kommandozeilentool +
-[[https://github.com/micropython/webrepl|webrepl_cli.py]] +
-verwendet werden. +
- +
-===== Pin-Belegung ===== +
- +
-Für das [[https://github.com/nodemcu/nodemcu-devkit-v1.0|nodemcu-devkit]], das auch oben abgebildet ist, existiert eine gute Dokumentation der Pinbelegung. +
- +
-{{:schule:hardware:nodemcu_devkit_v1.0_pinmap.png?direct&600|}} +
- +
-===== Dateitransfer ===== +
- +
-Mit dem Tool [[https://github.com/adafruit/ampy|ampy]] lassen sich leicht Dateien auf den Chip kopieren, von ihm lesen oder auf ihm ausführen. Es wird mit ''pip3 install adafruit-ampy'' installiert. Dazu muss ggf. eine bestehende Verbindung über die serielle Schnittstelle zuvor beendet werden. +
- +
-Dateien lassen sich mit ls anzeigen. Der Parameter ''-p'' gibt die serielle Schnittstelle an, über die die Verbindung besteht. +
- +
-  $ ampy -p /dev/ttyUSB0 ls +
- +
-Dateien können mit ''get'' lokal ausgegeben werden. +
- +
-  $ ampy -p /dev/ttyUSB0 get main.py +
-   +
-Sie können auch abgespeichert werden. +
-   +
-  $ ampy -p /dev/ttyUSB0 get main.py main.py +
- +
-Ebenso einfach können Dateien auf den Chip kopiert werden. +
- +
-  $ ampy -p /dev/ttyUSB0 put main.py  +
- +
-Eine Datei kann auch direkt ausgeführt werden. +
-   +
-  $ ampy run mein_script.py  +
- +
-Neben ampy gibt es weitere Tools für den Dateitransfer. [[https://github.com/wendlers/mpfshell|mpfshell]] ist ein shell-basierter Datei-Explorer, um den ESP zu erkunden. [[https://github.com/dhylands/rshell|rshell]] ist eine remote shell für den ESP8266. +
- +
-===== Ansteuerung über I²C ===== +
- +
-Der ESP kann über den I²C-Bus auch mit Sensoren oder anderen Modulen kommunizieren. Zwei der GPIO-Pins werden dafür als Clock (scl) und Daten-Pin (sda) definiert. Das folgende Beispiel nutzt hierfür die Pins 0 und 2. +
- +
-<code python> +
-import machine +
- +
-# GPIO0 (scl) und GPIO2 (sda) verwenden +
-# auf dem Port sind dies D3 und D4 +
-i2c = machine.I2C(machine.Pin(0), machine.Pin(2)) +
-</code> +
- +
-Nun kann der Bus gescannt werden. +
- +
-<code python> +
->>> i2c.scan() +
-[32] +
-</code> +
- +
-Ein Modul meldet sich von Adresse 32 (0x20). Es kann nun verwendet werden. +
- +
-===== Links ===== +
- +
-  * Firmware (alte Version): [[https://www.bakera.de/wp/wp-content/uploads/2016/08/esp8266-20160825-v1.8.3-49-ga589fa3.bin_.zip|esp8266-20160825-v1.8.3-49-ga589fa3.bin]] +
-  * Vortrag der Froscon 2016: [[https://media.ccc.de/v/froscon2016-1791-python_fur_das_internet_der_dinge|Python für das Internet der Dinge - Einführung in MicroPython für ESP8266 und Cortex-M4 Mikroprozessorboards]] +
-  * Unter Windows werden eventuell Treiber für den USB-UART-Konverter benötigt. Ein populärer Treiber ist unter [[http://www.msxfaq.de/sonst/bastelbude/nodemcu.htm|MSXFAQ]] verlinkt. +
-  * [[http://forum.micropython.org/viewforum.php?f=16|Forum für den Informationsaustausch]] mit Gleichgesinnten. +
-  * [[https://learn.adafruit.com/category/micropython|Tutorialreihe mit Videos von Tony DiCola]] von Adafruit, die den ESP8266 und die Ansteuerung über MicroPython ausführlich darstellt. +
schule/esp8266.1501580498.txt.gz · Zuletzt geändert: 2017-08-01 11:41 von marco.bakera