HowTo: ESPEasy – Drehencoder an den ESP8266 anschließen und auswerten

Gerade wenn die eigene Schaltung ein Display zur Anzeige von Werten besitzt ist der nächste Schritt of auch eine Bedienmöglichkeit anzuschließen.

Dabei kann man Taster oder auch Schalter anschließen. Eine realtiv coole Möglichkeit die Eigene Schaltung mit einer Eingabemöglichkeit auszustatten ist dagegen der Drehencoder.

Ein Drehencoder sieht auf den ersten Blick aus wie ein Potentiometer. Anders als bei dem Potentiometer lässt sich der Drehencoder dagegen in beide Richtungen unendlich weit drehen. zusätzlich sind viele Modelle mit einem Taster ausgestattet. Mit einem Mikrocontroller verbunden kann dieser letztlich erkennen wie weit in welche Richtung gedreht wurde und auch wenn die Taste gedrückt wurde.

Dank des passenden Plugins können Drehencoder mithilfe von ESPEasy sehr leicht ausgelesen und auf die Eingaben reagiert werden.

Wie Ihr einen (oder auch zwei) Drehencoder an einen Wemos D1 Mini bzw. ESP8266 anschließt und ESPEasy korrekt konfiguriert, ist im folgenden Artikel beschrieben.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Hilfreiche Artikel:
Zusätzliche Tipps zum Thema ESPEasy findet Ihr in den folgenden Artikeln.

Benötigtes Werkzeug:

Benötigtes Material:


Drehencoder anschließen

Im folgenden seht Ihr zwei Schaltpläne wie Ihr einen Drehencoder an den Wemos D1 Mini anschließen könnt.

Schaltplan zum Anschluss eines einzelnen Drehencoders.

Schaltplan zum Anschluss von zwei Drehencodern. Außerdem ist hier auch ein WS2812 LED Streifen angeschlossen. Damit diese Konfiguration funktioniert müsst Ihr in ESPEasy die Reservierung der D1 und D2 Pins für den I2C Bus deaktivieren.


Konfiguration des Drehencoders in ESPEasy

Öffnet zunächst die Webkonfigurations-Ansicht Eurer ESPeasy Installation.

Infos dazu wie Ihr diese Ansicht öffnen könnt findet Ihr auch in dem Artikel IP-Adresse der Geräte im Netzwerk anzeigen/herausfinden

Klickt von dort aus auf den Tab “Devices”.

Im “Devices”-Tab müsst Ihr nun auf den “Add”-Button in einer der noch leeren Zeilen klicken.

Ihr werdet dann automatisch zu der dargestellten Ansicht weitergeleitet…

…und könnt hier nun auswählen, welches Device Ihr erstellen wollt.

Da Ihr einen Drehencoder erstellen wollt wählt Ihr hier den Eintrag “Switch Input – Rotary Encoder” aus.

Dadurch werdet Ihr wieder auf eine Übersichtsseite weitergeleitet. Hier könnt Ihr Alle Einstellungen bezüglich des Drehencoders vornehmen.

Wichtig ist hier, dass Ihr einen Namen vergebt, einen Haken bei “Enabled” setzt und die GPIOs wie abgebildet konfiguriert.

Dabei entsprechen die “GPIO <- A” und “GPIO <- B” Einstellungen den Anschlüssen des Drehencoders welche im Schaltplan oben durch die grüne und blaue Leitung dargestellt werden.

Für die meisten Drehencoder könnt Ihr die Einstellung für “Mode” wie abgebildet einstellen.

Durch die Drehung am Drehencoder wird später ein Zähler herauf- bzw. herunter gezählt. Dessen unteren und oberen Grenzwert könnt Ihr mit den Einstellungen unter “Limit min” und “Limit max” konfigurieren.

Sobald Ihr alles korrekt konfiguriert habt, könnt Ihr die Einstellungen durch einen Klick auf “Submit” speichern.

Um nun auch den Tastendruck auf den Taster des Drehencoders auszuwerten, müsst Ihr noch ein separates Device anlegen.

Klickt dazu wieder auf den nächsten “freien” “Add”-Button in der Devices-Übersicht.

In der Dropdown-Liste wählt Ihr nun das Device “Switch input – Switch” aus.

Dieses Device müsst Ihr nun wie links abgebildet einstellen.

Wichtig ist dabei noch, dass der GPIO auf den Pin “D5” eingestellt werden muss. Dies ist der Anschlusspin über den der Taster des Drehencoders ausgelesen wird.

Wenn Ihr alle Einstellungen vorgenommen habt könnt Ihr auch diese durch einen Klick auf “Submit” speichern.


Drehencoder testen

Nachdem Ihr den Drehencoder angeschlossen und konfiguriert habt, könnt Ihr die Funktion mithilfe des Logs von ESPEasy testen. Dort werden nämlich auch Events angezeigt die mit den angeschossenen Sensoren und Aktoren zu tun haben.

Wechselt dazu in den Tab “Tools” und klickt dann auf den Button “Log”.

Daraufhin wird Euch die Log Ausgabe von ESPEasy angezeigt.

Wenn Ihr nun an dem Drehencoder dreht sollte eine Ausgabe mit “QEI…” sichtbar werden. Die Ziffer dahinter zeigt den Wert des Zählers an den Ihr durch drehen des Drehencoders rauf bzw runter zählt.

Sobald Ihr auf die Taste des Drehencoders drückt sollte ein Eintrag beginnen mit “SW:…” angezeigt werden.

Die Tastendrücke bzw. betätigungen des Drehencoders könnt Ihr dann mithilfe der Rules weiterverarbeiten und so auch Aktionen auslösen.

Alternativ könnt Ihr sie aber auch per MQTT an Euer SmartHome System weiterleiten und so zum Beispiel ein Licht ein- oder ausschalten.


Weitere Sensoren zum Anschluss an den ESP8266 / ESP32

Eine Übersicht über weitere Artikel zum Anschluss von Sensoren und Aktoren an ESPEasy findet Ihr in der folgenden Kategorie.


Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

4 Kommentare

  1. Hallo Fabian
    ..ich sag mal DANKE – daß es jemanden wie dich gibt – von dem ein “Bastler” wie ich was lernen darf !!
    ..hab’ hier sehr viel interessantes gelernt und nachgebaut – PWM mit Drehcoder..
    Ich verwende z. Zt einen ESP8266 als Thermostat mit 2 Taster (je 1 GPIO) und ESPEASY mit einer (kopierten) Rules. Wenn notwendig, schick ich auch das/mein Rules
    ..dies würd ich gerne statt der + und – Taste auf den Drehcoder umbauen.
    ..wenn möglich Drehgeber-Schritt
    Leider bin ich in Rules nicht so fit und schaff das nicht .
    ..kenn‘st du vllt. ein Beispiel / Link – Rules für ESPEASY ?
    Gruß aus Wien – fossi1

    1. Hi fossi1,
      danke für deine netten Worte. Freue mich, dass meine Tipps brauchbar sind. 🙂
      Schreib mir doch gerne mal deine aktuellen Rules. Dann gucke ich mir mal an, ob man die nicht umbauen/ausbauen kann um sie mit einem drehencoder ansteuern zu können. 🙂
      Beste Grüße
      Fabian

      1. Hallo Fabian
        Danke für deine Antwort – ich wünsch’ mal PROSIT NEUJAHR !!

        Zu deiner Allg. Info:
        ..ich hab einige esp für div. Anwendungen kann Hardware, bin in Software (leider z. Zt noch) der “Kopierer” – deshalb bitte nachsehen mit meinen Rules..

        ..eines meiner Projekte – ich möchte/werde für meinen Freund eine “Smoker-Steuerung” bauen.
        Temperaturmessung mit 4 K-Fühler , D1mini mit EspEasy, OLED + LCD, Relais für LüfterSteuerung und 4x MAX31850 (K-Fühler werden 1Wire und in EspEasy unter D18B20 eingelesen)

        ..die TempMessung der K-Fühler über MAX31850 funktioniert
        ..die “Grobe” Anzeige der Temperatur des Fühlers X (wird dann erst bestimmt welcher) wird mit Oled Blau, Grün, Rot für zu Kalt i.O, zu warm angezeigt – z. Zt zum Testen der DS18B20
        ..die echte TempAnzeige erfolgt über Oled und LCD
        ..die Einstellung der Temp (für den Lüfterlauf) z.Zt über +/- Tasten

        ..da die Regelung des Lüfterlaufs in Abhängigkeit über einen K-Fühler im TempBereich 100-200 Grad erfolgen soll, ist das mit Tasten sehr “zäh” – dein Drehencoder wäre die komfortablere Lösung.

        ..mein esp hat deshalb 3 Rules für Neopixel Anzeige,Tastenabfrage, Anzeige
        ..hier die Rules 2 :
        —————————————————————————–
        /Tastenabfrage – geändert 06.02.22Fo

        //esp8266
        //GPIO 0 = Taster Temperatur +
        //GPIO 2 = Taster Temperatur –
        //GPIO 4 = SDA für Oled
        //GPIO 5 = SCL für Oled
        //GPIO 12 = Eingang DATA von DS18B20
        //GPIO 14 = Ausgang S für Relais
        //GPIO 15 = Ausgang für Neopixel

        on System#Boot do
        TaskValueSet 6,1,25.0 //SetTemp = SOLL Temp
        TaskValueSet 6,2,24.5 //TempLow = niedigste Temp
        TaskValueSet 6,3,25.5 //TempHigh = höchste Temp
        gpio,14,1
        endon

        //TastenAbfrage zur Temp Einstellung
        //UP = Task7 auf D3(GPIO-0) und DOWN = Task7 auf D4(GPOI-2)

        on Up#State do
        if [Up#State]=1
        if [Local#SetTemp]5 //Temp. Einstellbegrenzung ab 5°
        TaskValueSet 6,1,[Local#SetTemp]-1.0
        TaskValueSet 6,2,[Local#SetTemp]-1.0
        TaskValueSet 6,3,[Local#SetTemp]
        endif
        endif
        endon

        //Schaltzustand definieren

        on T5#temperature do
        if [T5#temperature]+1[Local#TempLow]
        event,TurnOff
        endif
        endon
        ———————————————————
        ..hab leider keine Mail Adr. von dir, sonst könnt ich das txt File senden
        ..wennst noch Info’s dazu brauchst, schreib mir event. per Mail

        Gruß aus Wien – fossi1

        1. Hi fossi1,
          sorry, dass ich mich jetzt erst melde. Ich hatte deine Nachricht über das Kontaktformular bekommen. Da war ich aber noch etwas in den Nachwehen von meinem Umzug und dann kamen die Feiertage dazwischen. :/
          Ich versuche mich jetzt aber zeitnah darum zu kümmern. Hab es mir aufgeschrieben. 🙂
          Beste Grüße
          Fabian

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.