Nachfolgend ein einfaches Beispiel basierend auf der Tasmota Firmware in Kombination mit

ESP8266 NodeMCU SSD1306 Display Modul

AM2301 Temperatur- und Luftfeuchtigkeits- Sensor

Dieses Beispiel basiert auf der derzeit aktuellen Tasmota 13.4 Firmware Version basierend auf der tasmota-display.bin welche über den notwendigen I2C SSD1306 Display Treiber verfügt.

An dieser Stelle sei erwähnt, der hier im Beispiel verwendete AM2301 Temperatur- und Luftfeuchtigkeits- Sensor wurde wie folgt mite dem ESP8266 NodeMCU SSD1306 Display Modul verbunden

AM2301 GND => G Pin ESP8266 NodeMCU SSD1306 Display Modul

AM2301 Signal => D4 Pin (GPIO2) NodeMCU SSD1306 Display Modul

AM2301 VCC => 3V Pin NodeMCU SSD1306 Display Modul

Selbstredend wurde ein Pull Up Widerstand zwischen VCC und Signal des AM2301 geschaltet.

Nachfolgend ein kleines Schritt für Schritt Tutorial um das ESP8266 NodeMCU SSD1306 Display Modul zur Inbetriebnahme mit der Tasmota Firmware.

Das Flashen mit der Tasmota Firmware ist basierend auf dem onboard CH340 USB TTL Konverter desNodeMCU SSD1306 Display Modul denkbar einfach. Insofern der notwendige Treiber installiert ist muß lediglich das ESP8266 NodeMCU SSD1306 Display Modul über USB an eine Internetfähigen Rechner angebunden werden.

Tasmota Flashen

Das Flashen mit der Tasmota Firmware kann lokal mittels entsprechenden Tools oder Konsole / Python ESPTool oder am einfachsten mittels dem Tasmota Install Webinterface unter

https://tasmota.github.io/install

erfolgen, bitte beachten das ESP8266 NodeMCU SSD1306 Display Modul sollte bereits mit dem Rechner über die USB Schnittstelle verbunden sein.

Im Firmware Dropdown einfach Tasmota Display auswählen

Button CONNECT anklicken

Im Browser öffnet sich ein Dialog zur Auswahl des USB TTL Konverters, hier den entsprechenden USB Anschluss USB/TTL Konverter auswählen und den Button VERBINDEN anklicken

Tasmota Erase Device

Nach einer erfolgreichen Verbindung wird der Dialog zum Löschen der Firmware Erase device angezeigt, hier das Kontrollfeld Erase device aktivieren und auf NEXT klicken.

Im erscheinenden Dialogfeld das Löschen und die Installation der Tasmota Firmware durch klicken auf INSTALL bestätigen. zunächst wird der Löschvorgang ausgeführt.

Im Weiteren erfolgt dann das eigentliche Flashen der Tasmota Display Firmware, der Fortschritt wird entsprechend im Browser ausgegeben.

Nach der erfolgreichen Installation der Tasmota Display Firmware erscheint der Hinweis Installation complete, hier einfach durch Klick auf NEXT bestätigen.

Tasmota Modul im Netzwerk anmelden

Tasmota führt nun einen Netzwerkscan durch, dabei werden sämtliche, im Empfangsbereich des ESP8266 WLan Netzwerke erfasst und in Anlehnung an die Signalstärke aufgelistet.

Nach Abschluss des Netzwerkscans muß das jeweilige Netzwerk im Dropdown auswählt werden

Ferner muss im Textfeld Password das jeweilige Netzwerk Passwort eingegeben werden, im Falle eines offenen Netzwerks bleibt das Textfeld Password frei. Durch klicken Button CONNECT werden die Netzwerk Parameter im Tasmota Modul gespeichert.

Das Tasmota Modul speichert die Netzwerk Parameter führt einen Neustart aus und aktiviert den Tasmota Client Modus. Der jeweilige AP / Router, im Detail DHCP Server weist dem Tasmota Modul eine gültige IP Adresse zu unter der nun das Tasmota Webinterface erreichbar ist.

Nach erfolgreicher Verbindungsherstellung erscheint der Dialog Device connected to the network, hier VISIT DEVICE klicken.

Tasmota SSD1306 I2C Display Konfigurieren

Mit der ersten Clientverbindung erscheint das Tasmota Webinterface basierend auf der Sonoff Basic Configuration.

Da diese Tasmota Konfiguration nicht den Hardware Parametern entspricht das Tasmota Modul wie folgt konfigurieren

Zunächst die Tasmota Firmware auf Generic zurücksetzen, hierzu den Button Configuration klicken

im erscheinenden Configuration Menü den Button Configure Module klicken

in den erscheinenden Module Paramters im Module type DropDown Genreic (0) auswählen und durch klicken auf den Button Save bestätigen

das Tasmota Modul führt einen Neustart durch, nach einigen Sekunden erscheint erneut das Webinterface, erneut den Button Configuration klicken

im erscheinenden Configuration Menü den Button Configure Module klicken

in den erscheinenden Module Parameters nun die GPIO Konfiguration wie folgt durchführen im

DropDown D2 GPIO4 AM2301 auswählen (entfällt wenn kein AM2301 angeschlossen ist)

DropDown D6 GPIO12 I2C SCL auswählen

DropDown D5 GPIO14 I2C SDA auswählen

nachdem die erforderlich GPIO Parameter gesetzt wurden den Button Save klicken

Die Tasmota Konfiguration ist nun abgeschlossen, das Tasmota Modul führt erneut einen Neustart durch.

Insofern ein AM2301 Sensor angeschlossen ist erscheinen nun die aktuellen Werte im Tasmota Webinterface

Tasmota SSD1306 Display Kommandos

Für die Ausgabe von Inhalten über Displays verfügt Tasmota über typische Befehlssätze, die entsprechende Dokumentation und Übersicht wird unter

https://tasmota.github.io/docs/Displays/#display-commands

bereitgestellt.

Typischerweise erfolgt die Eingabe von Befehlssätzen stets über eine Konsole. Dementsprechend verfügt auch das Tasmota Webinterface über eine entsprechende Konsole die durch klicken auf den Button Console erreichbar ist.

Die Tasmota Console unterteilt sich in

  • Ausgabefenster, hier werden entsprechende Statusmeldungen ausgegeben
  • Kommandozeile zur Eingabe von Tasmota Commands

Sämtliche Tasmota Commands sind unter https://tasmota.github.io/docs/Commands/ aufgelistet. Die Ausführung eines Tasmota Command erfolgt stets durch Texteingabe / Kommandoeingabe in die Kommandozeile gefolgt vom Drücken der Taste Enter.

SSD1306 Display Tasmota Console

Durch die oben beschriebene Konfiguration der I2C Schnittstelle in Verbindung mit dem SSD1306 Treiber – enthalten in der Tasmota Display binary Firmware ist das Display bereits angebunden. Üblicherweise wird seitens Tasmota die I2C Adresse des SSD1306 Displays auf 0x3c gesetzt.

Die I2C Adresse kann durch die Eingabe von

I2CScan

in die Kommandozeile und drücken der Taste ENTER abgefragt werden.

Die Tasmota Console fragt den I2C Bus ab und gibt sämtliche am I2C Bus gefundenen I2C Adressen aus, hier im Beispiel die 0x3c.

Zunächst muß in Anlehnung an die in Tasmota implementierten / unterstützen Displays zunächst der Display Typ gesetzt werden. Die von Tasmota unterstützen Displays sowie die jeweilige Displayzuweisung werden unter https://tasmota.github.io/docs/Displays/#supported-displays bereitgestellt.

In unserem Beispiel SSD1306 OLED display also DisplayModel 2, dementsprechend muß über die Tasmota Kommandozeile

DisplayModel 2

eingegeben und durch drücken der Taste ENTER bestätigt werden.

Je nach Auslieferungszustand und Model kann das SSD1306 Display bereits bei Spannungsversorgung beispielsweise Datum oder sonstigen Text an. Dementsprechend sollte das Display durch Eingabe von

DisplayMode 0

und drücken der Taste ENTER zurückgesetzt werden.

Oft ein übersehene Hürde ist die Display Beleuchtung, das Display zeigt nichts an obgleich man bereits Display Text gesendet hat. Dementsprechend empfiehlt es sich die Display Beleuchtung durch Eingabe von

DisplayDimmer 100

und drücken der Taste ENTER auf das Maximum zu setzen.

Text über Tasmota auf dem SSD1306 Display ausgeben

Das SSD1306 Display ist nun einsatzbereit sodass direkt über die Tasmota Kommandozeile darzustellender Text gesetzt werden kann. Beispielsweise durch folgendes Kommando

DisplayText [zs1l2c1]Schau mal hier!

wird sobald die Taste ENTER gedrückt wurde der Text Schau mal hier! im SSD1306 Display ausgegeben.

Tasmota Display Commands

Gleich vorweg die gesamten Tasmota Display Commands hier auszudokumentieren würde den Rahmen eines einfachen Beispiels sprengen. Nachfolgend soll lediglich die Syntax des Tasmota DisplayText Befehls überschaubar erläutert werden. Im Detail unterteilt sich das Kommando in 3 Teile

  1. DisplayText ist das eigentliche Kommando um Text auf dem Display auszugeben
  2. [s1l2c1] ist als Formatierung wie folgt zu verstehen
    • z = löscht den aktuellen Displaytext
    • s1 = die Schriftgröße zulässige Werte von 1-4 wobei 1 die kleinste Schriftgröße ist
    • l2 = Line oder besser verständlich wäre Row / Reihe steht selbstredend in Abhängigkeit zur gewählten Schriftgröße, beispielsweise bei Schriftgröße 1 zulässige Werte von 1-5 (bis zu 5 Zeilen können dargestellt werden)
    • c1 = column / Spalte im Grunde auch wieder in Abhängigkeit zur Zeichengröße, gibt die horizontale Startposition des Textes vor, mit einfachen Worten der Wert c5 läßt einen Abstand von 4 Zeichenbreiten
  3. Schau mal hier! = der auf dem Display auszugebende Text. WICHTIG wie im obigen Befehl ersichtlich ist kein Leerzeichen zwischen [s1l2c1] und Schau mal hier! denn bereits dieses Leerzeichen wird als erstes Zeichen im Display ausgegeben.

Tasmota Sensordaten auf dem Display ausgeben

Anhand des vorgenannten Beispiels erscheint die Darstellung von Daten mittels Tasmota etwas statisch. Befasst man sich nur kurz mit Tasmota erkennt man sofort, Tasmota ist sogar optimiert zur Ausgabe von dynamischen Daten, sei über das Webinterface, Schnittstellen, Protokolle wie MQTT, REST, HTTP, ….

Im Bezug der Displayausgabe ist die dynamische Datenausgabe zwar nicht mittels einfachem Klick aktivierbar aber mittels einer Tasmota Rule relativ einfach herbeizuführen.

Tasmota Display Sensor Rule

Tasmota Rules sind als „einfache“ Regeln zu verstehen die im Wesentlichen auf einem

  • Trigger / Wächter
  • Command / Befehl

basieren, mit einfachen Worten eine typische Regel wenn … dann …

Die Tasmota Rules sind ausführlich unter https://tasmota.github.io/docs/Rules/ beschrieben.

Wie erwähnt besteht eine Rule aus einem Trigger, in unserem Beispiel der AM2301 Temperatur- und Luftfeuchte- Sensor dessen Daten auf dem Display ausgegeben werden sollen. Im Grunde war das auch schon die „Regel“ wenn der AM2301 Daten hat auf dem Display ausgeben. Im Detail hat der AM2301 aber 3 Werte:

  • AM2301#Temperature, Temperatur in °C
  • AM2301#Humidity, Luftfeuchte in %
  • AM2301#DewPoint, Taupunkt in °C

dementsprechend haben wir 3 trigger.

Die Syntax der Tasmota Rules ist sehr einfach es können bis zu 9 Rules festgelegt werden, als Rule1

Rule1 on AM2301#Temperature do DisplayText [c1l1f0s2]T %value% C endon on AM2301#Humidity do DisplayText [c1l2f0s2]H %value% % endon on AM2301#DewPoint do DisplayText [c1l4f0s2]DP %value% C endon

Rule1 setzt sich aus 3 Teilen zusammen, denn wir haben 3 Trigger AM2301#Temperature, AM2301#Humidity und AM2301#DewPoint. Jeder Rule – Teil beginnt mit on (wenn Trigger) endet mit endon, wenn AM2301 Sensordaten vorliegen wird das Command do – hier DisplayText – ausgeführt. Der jeweilige Wert wird jeweils als Variable mittels %value% gesetzt.

Tasmota ESP8266 SSD1306 AM2301 Tutorial

Im Detail
on AM2301#Temperature do DisplayText [c1l1f0s2]T %value% C endon
wenn AM2301#Temperature führe Kommando DisplayText [c1l1f0s2] aus schreibe „T“ Leerzeichen %value% = die Temperatur Leerzeichen und „C“

Schreibe einen Kommentar