Disclaimer/ Hinweis zur Verwendung

Motivation

Mit den ESP8266 und ESP32 sind Microcontroller auf dem Markt die im „Home Automation Sektor“ vielfältig einsetzbar sind. Die von „Espressif Systems“ entwickelten Controller werden häufig auf kleinen Platinen angeboten. Diese werden mit einem USB Anschluss ausgestattet einfach darüber betrieben und auch mit Spannung versorgt. Das ESP in der Bezeichnung steht für „Embedded Systems Platform„. Espressif Systems ist ein Unternehmen, das sich auf die Entwicklung von Chipsätzen und Modulen für drahtlose Kommunikation, insbesondere für das Internet der Dinge (IoT), spezialisiert hat. Der ESP8266-Chip ist besonders bekannt für seine integrierte Wi-Fi-Funktionalität und seine Fähigkeit, kostengünstige und leistungsfähige IoT-Anwendungen zu unterstützen.

Der ESP8266 und der ESP32 haben mehrere Schnittstellen, darunter:

  • UART (Universal Asynchronous Receiver/Transmitter)
  • SPI (Serial Peripheral Interface)
  • I2C (Inter-Integrated Circuit)
  • GPIO (General Purpose Input/Output)
  • ADC (Analog-to-Digital Converter)
  • DAC (Digital-to-Analog Converter)
  • PWM (Pulse Width Modulation)
  • Wi-Fi (für drahtlose Kommunikation)

Um die Funktionen zu nutzen können die Controller Boards mit unterschiedlichen Programmiersprachen programmiert werden. Eine andere Alternative ist die Firmware TASMOTA. Tasmota ist eine Open-Source-Firmware, die ursprünglich für die Sonoff-Smart-Home-Geräte entwickelt wurde, die auf dem ESP8266 oder ESP32 basieren. Die Firmware ermöglicht es Benutzern, diese Geräte mit zusätzlichen Funktionen zu erweitern und sie mit verschiedenen Smart-Home-Plattformen zu integrieren, ohne die Hersteller-Firmware zu verwenden. Tasmota bietet eine Vielzahl von Funktionen, darunter die Unterstützung für MQTT (Message Queuing Telemetry Transport), HTTP, verschiedene Sensoren und Aktuatoren, sowie die Möglichkeit, Geräte über eine Web-Oberfläche oder Befehlszeile zu konfigurieren. Die Entwicklung und Wartung von Tasmota erfolgt durch die Open-Source-Community, und das Projekt wird auf Plattformen wie GitHub gehostet. In Verbindung mit einem Raspberry Pi können mit diesen Systemen Smart Home Automation Systeme aufgebaut werden. Die Microcontroller Boards passen sich sehr gut in diese Umgebung ein, beispielsweise durch WLAN und MQTT. Den auf dem Markt befindlichen Microcontroller Board fehlt in der Regel die Peripherie, wie Relais, Sensoren, etc. Diese Lücke schließen meine beiden ESP-DEV-BOARDs. Dabei konzentriere ich mich auf zwei Modelle.

  • D1 Mini Nodemcu with ESP8266-12F WLAN
  • ESP-32 Dev Kit C V4

Unterschiede der DEV-Boards

Nachfolgende Tabelle zeigt die Funktionen der ESP-BOARDs: (Das ESP32 Board ist aktuell nicht verfügbar)

MerkmalESP8266 (Board #2)
Version 2.1
ESP32 (Board #1)
µC Board steckbar, austauschbar
Sockel ist auf der Platine vorgesehen, einlöten ist möglich
JaJa
Anzahl der freien IO-Ports6 auf Stiftleite (3V3)nicht herausgeführt
Verwendung als AhoyDTU/ openDTU möglichneinja
NRF24L01 WLAN Modul vorgesehenneinja
Relais
Schaltleistung 2A/230V, 1x Wechsler Schraubklemme
Ja (2)Ja (2)
SensorDHT22 (DHT11)DHT22 (DHT11)
Analoger Port (ADC) nach aussen geführt auf Schraubklemme1 (20V gegen GND)1 (20V gegen GND)
AZ-Delivery BezeichnungD1 Mini V3 NodeMCU mit ESP8266-12F WLAN
Abmessungen80×78,41mm80x100mm
Merkmale und Unterschiede der ESP-BOARDs

Die bevorzugte Programmierung und Betrieb der Controller ist mit der Firmware TASMOTA. Die Integration in die „Home Automation“ erfolgt mit WLAN/ MQTT. Programmierung mit anderen Firmware oder Programmierung mit anderen Programmiersprachen ist möglich.

Hinweise und Links

ESP-DEV-Boards D1 mini ESP-8266

Bestückungsanleitung- und Hinweise

Bestücktes Board „TOP-Layer“

ESP-DEV-Board-8266-V2.1

Beschreibung

Das ESP-DEV-Board ermöglicht Zugang zu den Anschlüssen des als Modul zu kaufenden D1 Mini V3 Node MCU mit ESP8266-12F WLAN. Hierbei handelt es sich um ein preiswertes fertiges Modul. Mit diesem Board wird die Softwareentwicklung vereinfacht. Durch die Möglichkeit das ESP-Board auf diese Extension-Einheit zu stecken ist es auf einfache Weise möglich 2 Relais für höhere Lasten zu steuern, Temperatur und Luftfeuchtigkeit zu bestimmen, Spannungen über den ADC zu messen und Werte auf dem Display anzuzeigen. Die Schraubklemmen ermöglichen eine einfache und sichere Verbindung. Über einen Pfostenverbinder besteht die Möglichkeit weitere Anschlüsse des ESP-8266 anzusprechen, zu nutzen.

Die primäre Nutzung dieser Extension Platine ist für Lern- und Ausbildungszwecke, Demonstrationen und Eigenentwicklungen.

Als Firmware empfehle ich TASMOTA. Eigene Softwareentwicklung, geschriebene Programme in C++, Python, etc. sind möglich. Die Programmierung und Stromversorgung erfolgt über den USB-Anschluss des ESP-8266 Boards. Eine weitere externe Spannungsversorgung ist nicht benötigt

Schaltplan

Schaltplan

Bestückungsplan-Layout

Layout

Bestückungsplan-Layer

Top Layer
Bottom Layer

Stückliste

Stückliste

Diode D3 dient der Absicherung des AD-Wandlers gegen Überspannung. Ich empfehle hier eine Diode mit einer Sperrspannung von 3.3V zu verwenden. Aufgrund von Toleranz kann es dann allerdings sein, wenn die Spannung die 3.3Volt erreicht kann es zu Messfehlern kommen. Dieses könnte durch eine Diode mit leicht höherer Sperrspannung behoben werden. Bei der Messung von Spannungen ist richtige Polarität zu beachten. Ein Verpolungsschutz ist NICHT vorgesehen.

Der 12polige Feature Connector JP1 muss nur dann bestückt werden, wenn er auch benutzt wird. Auf diesem Connector liegen die nicht durch das ESP-DEV-Board verwendeten Ports des D1 mini.

Die Verbindungen X1 bis X4 sind bewusst als Schraubanschlüsse ausgelegt, um die wesentlichen Anschlüsse mit einfachen Hilfsmitteln kontaktsicher anzulegen und tauschen zu können.

Hinweise zur Bestückung

Bitte verwenden Sie für das ESP Modul eine Steckleiste und LÖTEN es nicht fest ein. In der Regel wird eine passende Steckleiste zusammen mit dem Modul geliefert. So lässt sich die Platine flexibler nutzen und sollte das ESP-Modul einen Defekt haben, ist ein Tausch unkompliziert möglich. Verwenden Sie bitte Abstandshülsen für die Platine. Die Mounting-Holes an den vier Seiten sind ausgelegt für 3.2mm Schrauben. Damit wird ein Abstand zur Ablagefläche erreicht und es kann nicht zu Kurzschlüssen kommen mit Gegenständen unter der Platine.

Die Platine hat keine eigene Spannungsversorgung, sondern wird über das D1 mini Modul versorgt. Achten Sie bei der Spannungsversorgung darauf, dass der USB Anschluss entsprechende Spannung und Strom, also Leistung bereitstellt. Als Richtwert sollten 250mA bei 5V ausreichen. Die Logik des Boards und auch des D1 mini arbeitet mit 3.3V. Das ist insbesondere bei dem Anschluss von I2C Geräten zu beachten. Die Relais auf dem DEV-Board werden mit 5V angesteuert und gegen Masse geschaltet. Das entlastet den 3.3V Spannungsregler des D1 mini. Ein Mix von 3.3V und 5V kann zur Zerstörung des D1 mini führen.

Inbetriebnahme mit Tasmota Firmware

Nach der Bestückung und abschließender Sichtkontrolle erfolgt die Inbetriebnahme der Unit. Dazu wird das Modul auf die Platine gesteckt und über einen USB-Anschluss mit Energie versorgt. Nun sollte die Power LED leuchten.

Nach der Installation mit der Tasmota-Display Firmware sollte die Oberfläche der Tasmota Software über den Browser erreichbar sein. Konfigurieren Sie nun über den Menüpunkt „Configuration/ Configure Module“ die Ports und über die „Konsole „Console“ das Display. Über den Button K1 und K2 sollte das Relais schaltbar sein. Der Button Display schaltet das Display ein- aus. Der Sensor DHT22 wird als AM2301 konfiguriert und taucht auch später als AM2301 auf.

Tasmota Setup

Tasmota PIN-Setup
Beispielansicht im Browser nach der Tasmota Installation/ Konfiguration

Display Setup Tasmota Version < 14.x

Das Display wird in der Tasmota Software nicht automatisch erkannt und auch nicht konfiguriert. Hierzu sind folgende manuelle Schritte notwendig.
Weitere Hinweise sind auf der Tasmota Webseite zu finden. Auf der Tasmota-Console kann die Konfiguration mit dem Befehl „Display“ abgefragt werden. Dieses ist die Grundlage für die Einstellung. Hier das Ergebnis meines Systems.

RESULT = {„Display“: „Model“:2,“Type“:0,“Width“:128,“Height“:64,“Mode“:2,“Dimmer“:100,“Size“:1,“Font“:2,“Rotate“:0,“Invert“:0,“Refresh“:1,“Cols“:[16,8],“Rows“:2}}

Das Display kommuniziert per I2C-Bus. Die I2C Adresse des Displays kann mit dem Befehl i2cscan geprüft werden

# Resultat von i2cscan
#
RSL: RESULT = {"I2CScan":"Device(s) found at 0x3c"}

Beispielkonfiguration

Folgende Kommandos sind für die Konfiguration notwendig.

DisplayModel 2
DisplayType 0
DisplayMode 2
DisplayDimmer 100
DisplayRefresh 1

Achtung: mit der Tasmota Software 14.x sind weitere Konfigurationen notwendig, siehe weiter unten in der Beschreibung

DisplayAddress 0x3c       => Stellt die I2C Adresse des Display ein
DisplayModel 7            => Typ des Displays, hier SSH1106
DisplayDimmer 100         => Helligkeit des Displays auf 100%. Werte weniger als 100 scheint er sofort zu übernehmen, 
                             wird der Wert wieder erhöht übernimmt er das oft erst nach einem Reset (reset 1)
DisplayMode 1             => Das die Uhr angezeigt wird
Webbutton1 Display An/Aus => Ändert die Beschriftung der Schaltfläche im Hauptmenü

Display Setup Tasmota Version >= 14.x

Ab Version 14.x wird ein universal-display-driver verwendet. Die Schritte um das Display zum laufen zu bringen sind wie folgt:


# Schritt 1: Installation der Tasmota Software und Konfiguration
# Schritt 2: GPIO mit OPTION A 3 konfigurieren
# Schritt 3: Rule3 konfigurieren aber NICHT aktivieren
# Schritt 4: Neustart (Power Off/ Power On)
Pin Layout
# Konfiguration Rule3
Rule3 :H,SSD1306,128,64,1,I2C,3c,*,*,* :S,0,2,1,0,30,20 :I AE D5,80 A8,3F D3,00 40 8D,14 20,00 A1 C8 DA,12 81,9F D9,F1 DB,40 A4 A6 AF :o,AE :O,AF :A,00,10,40,00,00 :i,A6,A7 #

Jetzt das Modul spannungsfrei machen und neu starten. Das Display sollte angehen und sich wie unter Version 13.4 verhalten. Der Befehl display an der Console ergibt folgendes Ergebnis:

RESULT = {„Display“:{„Model“:17,“Type“:0,“Width“:128,“Height“:64,“Mode“:1,“Dimmer“:50,“Size“:2,“Font“:2,“Rotate“:0,“Invert“:0,“Refresh“:1,“Cols“:[16,8],“Rows“:2}}

Mit den Display-Befehlen können die Einstellungen am Display vorgenommen werden.

Bedienung

Weboberfläche

Die Bedienung erfolgt über die Weboberfläche oder über die MQTT-Schnittstelle. Alternativ kann auch das von Tasmota bereitgestellte Web-API verwendet werden. Die Bedienung über die Weboberfläche ist im Bild oben „Beispielansicht im Browser nach der Tasmota Installation“ zu sehen.

MQTT

Für die integration in eine Automation-Lösung bietet sich die MQTT-Schnittstelle an.

Console

In der Weboberfläche befindet sich ein Menüpunkt Console. Hier können über Befehle die Steuerung des D1 mini erfolgen. Hier sind ein paar Beispiel:

  • Relais 1 On/Off: Power1 1 / Power1 0
  • Relais 2 On/Off: Power2 1 / Power2 0
  • Display Modus Uhrzeit & Datum: displaymode 1
  • Display Modus Sensoren und weitere Infos: displaymode 2
  • Schriftgröße klein: displaysize 1
  • Schriftgröße groß: displaysize 2
  • Text am Display ausgeben: displaytext Hello world (Hier muss erst displaymode 0 eingeschaltet sein)

Tasmota Upgrade/ Downgrade

Bei mir hat ein Wechsel auf eine andere Firmware Version bisher immer über OTA funktioniert. Dabei war es egal, ob es ein Upgrade oder ein Downgrade war. Unter dem Menüpunkt Firmwareupgrade wird der URL auf die entsprechende Version eingetragen und nach dem klick auf „Start upgrade“ geht es los. Zu beachten ist, das Gerät installiert erst eine minimal Firmware und danach die Zielversion. Der Prozess wird von mehreren Neustarts begleitet.