Aktionen

ESP8266 Wemos D1 Mini mit Tasmota und OLED Display I2C SSH1106 und 4 Taster

Aus znilwiki

Vorwort

Nachfolgend beschreibe ich wie ich einen Wemos D1 Mini mit Tasmota geflasht habe, ein SSH1106 Display mit 1,3 Zoll angeschlossen sowie 4 Taster daran zum laufen bekommen habe.
Mein Ziel war es über MQTT die Taster abzufragen sowie das Display zu steuern. Am MQTT Server hängt gleichfalls eine ioBroker-Installation die dann auf die MQTT Nachrichten reagieren sowie das Display steuern kann. Es sind hier nur 4 Taster, nach dem Schema könnte man aber auch weitere Taster anschließen. Als Display habe ich "das größte OLED" Display genommen was ich finden konnte, deshalb ist es das SSH1106 geworden.
Warum?
Ich nutze bisher einen 4fach Zigbee-Taster am Kühlschrank um Durchsagen zu machen sowie Radio oder Playlist zu spielen (über Amazon Echos).
Der Zigbee-Taster kann zwischen kurz und lang drücken unterscheiden - da habe ich mir auch gleich ein Umschalten der Playlists und Radiosender gebaut (in dem man lang drückt). Über den Amazon Echo kommt nach dem Umschalten eine kurze Sprachausgabe mit der Bestätigung ('Playlist gewechselt auf Entspannung').
Da kam mir der Gedanke das per Display mit Tastern daneben zu lösen. Weil es schneller geht und ich das in Verbindung mit Tasmota eh mal ausprobieren wollte.
Und damit ich das in einem Jahr noch mal hinbekomme habe ich es hier aufgeschrieben.


Bauteile

+ Ein Breadbord / Kabel / Lötkolben und Lötzinn etc.


Schaltung

Diese OLED Displays haben immer 4 Pins, die Belegung von VCC und GND ist jedoch nicht immer gleich.
Also die Beschriftung eures Displays beachten! und dementsprechend verbinden

VCC          :  Stromversorgung mit 3,3V = Plus
GND          :  Masse / Minus
SCK oder SLC :  an Pin D1
SDA          :  an Pin D2


Die Schaltung sieht so aus:

ClipCapIt-210820-174150.PNG

Die Pins D5, D6, D7 und D8 habe ich über einen 4,7kOhm Wiederstand mit 3,3V 3V3verbunden.
Parallel zum Pin habe ich jeweils einen Taster angeschlossen der die Verbindung dann auf Masse G zieht. Deshlab der 4,7 kOhm Wiederstand - im Normalzustand liegen dann 3,3V am Pin an, wenn der Taster betätigt wird ist es Masse. Dank des Widerstandes fließt dabei fast kein messbarer Strom ( 0,7mA ).


Tasmota Firmware für Displays erstellen/herunterladen

Stand 20.08.2021 habe ich keine fertige Tasmota Firmware zum herunterladen gefunden - also musste ich mir eine passende Version selbst kompilieren. Das ist zum Glück nicht so schwer falls Ihr ein GitHub, GitLab oder BitBucket-Konto habt.
Im Anschluß muss diese auf den Wemos D1 Mini geflasht werden.


Teil 1: Firmware erstellen

Ihr geht auf die Webseite von TasmoCompliler:

https://github.com/benzino77/tasmocompiler

Dort findet Ihr in der Beschreibung unter den Bildern einen Abschnitt How to start TasmoCompiler. Dort klickt auf link to Gipod, hier ist der direkte Link auch noch mal:

https://gitpod.io/#https://github.com/benzino77/tasmocompiler

Er fordert euch dann ggf. zum Login auf:

ClipCapIt-210820-175504.PNG

Ich habe hier mein GitHub-Konto genommen.
Auf der nachfolgenden Webseite (die URL ist jedes mal und für jeden anders) seht Ihr unten ein Terminal was diverse Dinge tut und durchläuft:

ClipCapIt-210820-175801.PNG

Ganz unten muss dann (bei 1)

Server started on port 3000

stehen, oben in der Leiste erscheint dann - je nach Browser - ein Hinweis das ein Popup blockiert wurde (bei 2).
Jetzt habe Ihr mehrere Möglichkeiten (wählt eine davon)

  • Ihr erlaubt Popups für diese Seite oben in der Adressleiste und ladet die Seite per F5 neu
  • Ihr klickt unten rechts auf "Ports: 3000) bzw. links auf das Monitorsymbol und anschließend auf die Weltkugel neben der 3000
ClipCapIt-210820-180413.PNG


In einem neuen Tab sollte sich der TasmoCompiler öffenen:

ClipCapIt-210820-180529.PNG

Zuerst den Quellcode herunterladen und dann auf weiter:
Jetzt könnt Ihr die SSID und das Passwort eures WLANs eingeben sowie eine feste IP-Adresse:

ClipCapIt-210820-180807.PNG

Das könnte Ihr auch überspringen - das war zum Testen aber sehr praktisch. Wenn man nämlich einen Taster zu lange drückt kann es passieren das Tasmota einen Werksreset durchführt (schalten wir ab, keine Sorge), so verbindet der der Wemos immer gleich wieder. Wenn ihr das Überspringt müsst Ihr die Ersteinrichtung machen wie bei Tasmota üblich (mit dem WLAN verbinden, 192.168.4.1 aufrufen usw.).
Im nächsten Schritt wählen wir die folgende Hardware und Features:

  • Wemos/NodeMCU
  • Displays (I2C/SPI)
  • Regeln
  • Timers
  • Webinterface

Den Haken bei 'SD karte/LittleFS entfernt bitte!

ClipCapIt-210820-181342.PNG

Ich habe zusätzlich auch noch Amazon Alexa gesetzt - hab das aber noch nicht genutzt. Damit könnte man eine Lampe oder Steckdose emulieren.
Den Abschnitt Zusätzliche Parameter überspringt Ihr einfach:

ClipCapIt-210820-181623.PNG

Dann wählt die Version (ist immer die gerade aktuelle oder Development, nehmt die aktuelle) sowie die gewünschte Sprache und klickt auf Kompilieren:
Ihr seht dann den Fortschritt und nach einer Weile (1 bis 2 Minuten) gibt es den Download:

ClipCapIt-210820-181838.PNG
ClipCapIt-210820-181952.PNG

Gleich der erste Link ist die gewünschte Datei. Ladet dieser herunter und merkt euch wo die liegt.


Firmware flashen

Warum auch immer hat bei der Erstellung dieses Artikels meine übliche Methode nicht funktioniert. Mit Tasmotizer hat es funktioniert und eigentlich ist es auch komfortabler.
Verbindet den Wemos D1 Mini mittels eines Mikro-USB-Kabels mit eurem Rechner. Es sollte der typische "Ich habe ein USB gerät verbunden" Sound kommen und im Gerätemanager sollte ein COM-Gerät auftauchen:

ClipCapIt-210820-212903.PNG

Falls ihr noch nie einen ESP8266 bzw. einen Wemos D1 Mini mit eurem PC verbunden habt so installiert zuvor den Treiber:


Nun zum Tasmotizer - geht auf

https://github.com/tasmota/tasmotizer/releases

und ladet die aktuelle Version von Tasmotizer herunter tasmotizer-1.2.exe
Packt die Datei in einen eigenen Ordner und startet die Exe.

ClipCapIt-210820-213708.PNG

Den richtigen COM-Port findet die Software in der Regel von allein, unter Open wählt die zuvor erstellte .bin aus.
Setzt die Haken wie im Bild zuvor und klickt auf Tasmotize.
Wenn er fertig ist startet der Wemos auch gleich von alleine neu und sollte unter der beim Kompilieren eingestellten IP-Adresse erreichbar sein.