ESP8266 Wemos D1 Mini mit Tasmota und OLED Display I2C SSH1106 und 4 Taster: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „==Vorwort== Nachfolgend beschreibe ich wie ich einen '''''Wemos D1 Mini''''' mit Tasmota geflasht habe, ein SSH1106 Display mit 1,3 Zoll angeschlossen sowie 4…“) |
BLinz (Diskussion | Beiträge) K (→Schaltung) |
||
Zeile 20: | Zeile 20: | ||
Diese OLED Displays haben immer 4 Pins, die Belegung von <code>VCC</CODE> und <code>GND</code> ist jedoch nicht immer gleich.<br> | Diese OLED Displays haben immer 4 Pins, die Belegung von <code>VCC</CODE> und <code>GND</code> ist jedoch nicht immer gleich.<br> | ||
Also die Beschriftung eures Displays beachten! und dementsprechend verbinden | Also die Beschriftung eures Displays beachten! und dementsprechend verbinden | ||
VCC : Stromversorgung mit 3,3V | VCC : Stromversorgung mit 3,3V = Plus | ||
GND : Masse / Minus | GND : Masse / Minus | ||
SCK oder SLC : an Pin D1 | SCK oder SLC : an Pin D1 | ||
Zeile 27: | Zeile 27: | ||
Die Schaltung sieht so aus:<br> | Die Schaltung sieht so aus:<br> | ||
:[[Datei:ClipCapIt-210820-174150.PNG]]<br> | :[[Datei:ClipCapIt-210820-174150.PNG]]<br> | ||
Die Pins D5, D6, D7 und D8 habe ich über einen 4,7kOhm Wiederstand mit 3,3V <code>3V3</code>verbunden.<br> | |||
Parallel zum Pin habe ich jeweils einen Taster angeschlossen der die Verbindung dann auf Masse <code>G</code> 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 ).<br> | |||
<br> | |||
---- | |||
==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.<br> | |||
<br> | |||
Ihr geht auf die Webseite von TasmoCompliler:<br> | |||
https://github.com/benzino77/tasmocompiler | |||
Dort findet Ihr in der Beschreibung unter den Bildern einen Abschnitt '''''How to start TasmoCompiler'''''. Dort klickt auf [https://gitpod.io/#https://github.com/benzino77/tasmocompiler link to Gipod], hier ist der direkte Link auch noch mal:<br> | |||
https://gitpod.io/#https://github.com/benzino77/tasmocompiler | |||
Er fordert euch dann ggf. zum Login auf:<br> | |||
:[[Datei:ClipCapIt-210820-175504.PNG]]<br> | |||
Ich habe hier mein GitHub-Konto genommen.<br> | |||
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:<br> | |||
:[[Datei:ClipCapIt-210820-175801.PNG]]<br> | |||
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).<br> | |||
Jetzt habe Ihr mehrere Möglichkeiten (wählt eine davon)<br> | |||
* 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 | |||
:[[Datei:ClipCapIt-210820-180413.PNG]]<br> | |||
<br> | |||
In einem neuen Tab sollte sich der '''''TasmoCompiler''''' öffenen:<br> | |||
:[[Datei:ClipCapIt-210820-180529.PNG]]<br> | |||
Zuerst den Quellcode herunterladen und dann auf weiter:<br> | |||
Jetzt könnt Ihr die SSID und das Passwort eures WLANs eingeben sowie eine feste IP-Adresse:<br> | |||
:[[Datei:ClipCapIt-210820-180807.PNG]]<br> | |||
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.).<br> | |||
Im nächsten Schritt wählen wir die folgende Hardware und Features:<br> | |||
* Wemos/NodeMCU | |||
* Displays (I2C/SPI) | |||
* Regeln | |||
* Timers | |||
* Webinterface | |||
Den Haken bei ''''SD karte/LittleFS''''' entfernt bitte! | |||
:[[Datei:ClipCapIt-210820-181342.PNG]]<br> | |||
Ich habe zusätzlich auch noch Amazon Alexa gesetzt - hab das aber noch nicht genutzt. Damit könnte man eine Lampe oder Steckdose emulieren.<br> | |||
Den Abschnitt '''''Zusätzliche Parameter''''' überspringt Ihr einfach:<br> | |||
:[[Datei:ClipCapIt-210820-181623.PNG]]<br> | |||
Dann wählt die Version (ist immer die gerade aktuelle oder Development, nehmt die aktuelle) sowie die gewünschte Sprache und klickt auf {{Key|Kompilieren}}:<br> | |||
Ihr seht dann den Fortschritt und nach einer Weile (1 bis 2 Minuten) gibt es den Download: | |||
:[[Datei:ClipCapIt-210820-181838.PNG]]<br> | |||
:[[Datei:ClipCapIt-210820-181952.PNG]]<br> | |||
Gleich der erste Link ist die gewünschte Datei. Ladet dieser herunter und merkt euch wo die liegt.<br> |
Version vom 20. August 2021, 18:22 Uhr
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
- Wemos D1 Mini z.B. https://www.amazon.de/AZDelivery-D1-Mini-Entwicklungsboard-kompatibel/dp/B01N9RXGHY
- 1,3 Zoll OLED Display I2C SSH1106 Chip 128 x 64 Pixel I2C z.B. https://www.amazon.de/gp/product/B078J78R45
- Wiederstände 4,7kOhm (einen pro Taster) z.B. https://www.amazon.de/POPESQ%C2%AE-Widerstand-Verwendbar-Metall-A2424/dp/B07KWW2DDV/
- Taster z.B. https://www.amazon.de/gp/product/B077FP8FT3/
+ 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:
Die Pins D5, D6, D7 und D8 habe ich über einen 4,7kOhm Wiederstand mit 3,3V 3V3
verbunden.
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.
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:
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:
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
In einem neuen Tab sollte sich der TasmoCompiler öffenen:
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:
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!
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:
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:
Gleich der erste Link ist die gewünschte Datei. Ladet dieser herunter und merkt euch wo die liegt.