WEMOS ESP Mikrocontroller 8266

ESP | Getting started with MicroPython



Ideen: W. Kimmig, J. Schnaiter, Gewerblich-Technische Schule Offenburg, 2022

smaller than a credit card ESP8266

Der ESP8266 ist ein 32-Bit-Mikrocontroller der Firma Espressif Systems inklusive einem Wifimodul. Durch die Ansteuerung von Sensoren und Aktoren können in Verbindung mit dem Wifi Daten über das Netzwerk versendet werden und so ein cyberphysisches System mit dem Raspberry Pi entworfen werden. In diesem Zusammenhang spricht man auch vom "IOT - internet of things".

Das WEMOS-Entwicklerboard hat 16 Pins. Verschiedene Sensoren lassen sich einfach aufstecken und über eine Base-Platine sind diese auch nebeneinander steckbar. Abb. 1.2 zeigt das Pinlayout des WEMOS D1 mini Boards.

  • 11 digitale IOs, Interrupts und 10 PWM-Ausgänge
  • I2C/SPI/one-wire Schnittstellen
  • 1 analogen Eingang (3.2 V max input)
  • 5 V, 3.3 V, USB Anschluss
  • kompatibel mit MicroPython, Arduino und NodeMCU

Weitere Infos zum ESP unter:

WEMOS D1 mini ESP8266 Pinlayout
Abb. 1 WEMOS D1 mini ESP8266 Pinlayout.

you will need ESP Stückliste



WEMOS D1 mini, Triple Base, BMP180, DHT22
Abb. 2 WEMOS D1 mini, Triple Base, BMP180, DHT22 ...
  • ESP
  • ESP8266 WEMOS D1 mini
  • ESP32 WEMOS S2 mini (alternativ)
  • Add-ons for your ESP Environment Shields
  • DHT22 Temperatur- / Luftfeuchtesensor
  • BMP180 Luftdruck- und Temperatursensor
  • Micro USB 2.0 Flachkabel, A Stecker – Micro B Stecker
  • Triple Base für D1 mini

Weitere Infos zu WEMOS-Modulen:

install Thonny IDE zur Programmierung des ESP mit MicroPython



Thonny IDE Einstellungen
Abb. 3.1 Thonny IDE Einstellungen.

Lade die Thonny IDE herunter:

Starte die Software und schließe per USB den ESP8266 an Deinen Rechner an. Wähle unter Thonny>Settings im Reiter Interpreter> folgende Daten aus:

Interpreter MicroPython (ESP8266)
Port or WebREPL USB Serial ...

Zum Aktualisieren oder Installieren des MicroPython-Interpreters auf dem ESP8266 klicke in dem geöffneten Fenster auf  MicroPython installieren oder aktualisieren.

Target Port USB Serial ...
MicroPython family ESP8266
vaiant Espressif • ESP8266
version aktuelle Version wählen ...

Hinweis: Sollte es nach dem Flashen zum Absturz von Thonny kommen, versuche es mit der Software Mu Editor. Die Software hat unter den Einstellungen einen Reiter ESP firmware flasher. Die aktuelle Firmware kann man unter micropython.org herunterladen.

Thonny IDE Einstellungen
Abb. 3.2 Thonny IDE MicroPython Installation.

use your ESP LED-Blinklicht



Die blaue LED am ESP-Modul soll blinken. Sie ist am Pin O2 (dies ist auch der TX Pin) angeschlossen.

In der Thonny IDE wird mit der Programmier­sprache Python programmiert. Die Programme sind in zwei Bereiche aufgeteilt. Der erste Bereich ist der Setup-Bereich. Hier werden Bibliotheken importiert, stehen Initialisierungen und einmalige Aufrufe. Der zweite Bereich ist die Schleife while True:. Hier stehen Aufrufe, welche ständig wiederholt werden. Dieser zyklische Wiederholungsvorgang ist auch typisch für eine Speicherprogrammierbare Steuerung die in großen Industrieanalgen eingesetzt wird.

ESP mit leuchtender blauer LED
Abb. 4 ESP mit leuchtender blauer LED.

from machine import Pin	#Bibliothek zur Ansteuerung der Pins
import time		#Bibliothek für Zeitfunktionen
led = Pin(2, Pin.OUT)	#Der Pin 2 wird als digitaler Ausgang gesetzt

while True:	    
    led(1)		#LED einschalten
    time.sleep(0.5)	#0,5 s warten
    led(0)		#LED ausschalten
    time.sleep(0.5)	#0,5 s warten
				

Nach dem Import der beiden Bibliotheken wird ein Objekt angelegt: led = Pin(2, Pin.OUT). Dabei wird der der ausgewählte Pin 2 als digitalen Ausgang festgelegt.

Mit dem Aufruf led(1) schaltet man die LED ein, mit led(0) schaltet man sie aus.

Mit dem Funktionsaufruf time.sleep(0.5) erzeugt man eine Zeitverzögerung. Der Wert 0.5 steht hierbei für 0,5 s. So kann man die Blinkfrequenz verändern.

Arbeitsauftrag 1 my 1st ESP program

Quelltext in der Thonny IDE für ein Blinklicht mit dem ESP-Mikrocontroller
Abb. 5 Quelltext in der Thonny IDE für ein Blinklicht mit dem ESP-Mikrocontroller.

Im ersten Schritt wird die Thonny IDE installiert und die notwendigen Konfigurationen vorgenommen.

  1. Lade die Thonny IDE herunter.
  2. Verbinde den ESP-Mikrocontroller mit USB-Kabel mit deinem Rechner und nimm die korrekte Änderungen in den Einstellungen vor: Wähle den korrekten Interpreter und den kCOM-Port. Installiere falls notwendig den richtigen USB-Treiber.
  3. Installiere falls notwendig den aktuellen MikroPython Interpreter aus dem ESP.

Im zweiten Schritt wird das Programm geschrieben, verifiziert und auf den ESP-Mikrocontroller ausgeführt.

  1. Erstelle eine neue Datei unter speicher sie unter dem Namen blinkendeLED.py.
  2. Verifiziere den Code und starte das Programm auf den Mikrocontroller.
  3. Teste die Funktion, ändere die Zeiten und teste es erneut.
  4. Mit der Funktion print("Hello World") lassen sich Textausgaben anzeigen. Lass Kommentare zu Deinem Programm ausgeben.

Arbeitsauftrag 2 LED mit Taster steuern

ESP-Mikrocontroller auf dem DualBoard mit Taster
Abb. 6 ESP-Mikrocontroller auf dem DualBoard mit Taster.

Der Taster ist an Pin 0 angeschlossen.


from machine import Pin	#Bibliothek zur Ansteuerung der Pins
import time		#Bibliothek für Zeitfunktionen
led = Pin(2, Pin.OUT)	#Der Pin 2 wird als digitaler Ausgang gesetzt
taster = Pin(0, Pin.IN)	#Der Pin 0 wird als digitaler Eingang gesetzt

while True:	    
    if Taster.value():	#Zugriff auf Taster
	...					
				
  1. Erstelle eine neue Datei unter speicher sie unter dem Namen tasterLED.py.
  2. Die LED soll leuchten, solange der Taster gedrückt ist, anderfalls ist sie aus. Führe das Programm auf dem den Mikrocontroller aus.
  3. Ändere das Programm, so dass die LED blinkt, falls der Taster gedrückt wird.
  4. Unterstütze das leuchten der LED mit einer Textausgabe print("LED an").
  5. Ändern Sie die Blinkfrequenz durch Betätigen des Tasters. Hinweis: Nutzen Sie eine Variable (Flag) auf dem sie die Frequenz zwischenspeichern.

Wichtige Funktionen zum Programmieren des ESP



import ... Einbinden von Bibliotheken
led = Pin(2, Pin.OUT) Objekterzeugung: Pin 2 ist ein digitaler Ausgang
while True: zyklische Programmwiederholung
led(1) LED wird mit Spannung versorgt
time.sleep(2) Zeitverzögerung von 2 s erzeugen