Tag 16: Universalfernbedienung

Hinter dem Türchen des heutigen Tages befindet sich das Gegenstück zum gestrigen Bauteil, nämlich eine IR-Diode. Jetzt können Sie eine komplette Fernbedienung für den Fernseher nachbauen, die Sie per Smartphone und Webseite bequem steuern. Dazu benötigen Sie den folgenden Aufbau.

Der Aufbau der Fernbedienungen mit IR-Empfänger und Sendediode

Der Aufbau der Fernbedienungen mit IR-Empfänger und Sendediode

Wählen Sie das Programm des heutigen Tages aus. Das Board startet anschließend wieder im HeadlessModus, in dem die Webseite des Boards nicht erreichbar ist. Stattdessen ist lediglich die MQTT-Funktion des Boards verfügbar. Um in den Standardmodus zu gelangen, müssen Sie die Drahtbrücke an Pin 23 entfernen und das Board neu starten.

Der Flow des heutigen Tages

Der Flow des heutigen Tages

Der Flow des Tages sieht kompliziert aus, besteht aber im Grunde nur aus einer großen Anzahl von UIButtons, die alle in dasselbe Topic schreiben. Bevor Sie den Flow importieren und starten, sollten Sie alle Topics mit dem „Alles ersetzen“-Trick auf Ihr persönliches Topic umschreiben. Außerdem sollten Sie alle vorherigen Flows deaktivieren. Anschließend können Sie den Flow starten und auf die UI-Seite wechseln. Sie sehen eine ganze Reihe von Buttons, die allerdings noch nicht auf Ihren Fernseher kalibriert sind.

Deswegen gehen Sie zunächst auf den zweiten Tab mit dem Namen Day16 Recieve IR Codes. Diese Seite sieht zwar viel langweiliger aus, denn sie enthält nur ein Textfeld, sie ist aber sehr nützlich. Wenn Sie nämlich nun eine Fernbedienung auf den Empfänger richten und eine Taste drücken, erscheint ein Text im Fenster, zum Beispiel folgender:

{„cmd”:”ir_send”,”type”:3,”value”:551494365,”length”:32}

Dieser Text wurde über das Topic NodeESP/[PID]/ir/recv/out empfangen und enthält die Daten des empfangenen Codes. Nur ein paar Kleinigkeiten wurden vom Flow geändert. Zum einen werden sogenannte Wiederholungscodes herausgefiltert, zum anderen wurde das Kommando von ir_recv auf ir_send geändert, und zwar aus diesem Grund: Sie brauchen nun den Text praktischerweise nur zu kopieren und können ihn anschließend in den Payload-Bereich eines Buttons einfügen. Schon sendet der Button beim Betätigen auf der UI-Seite das Kommando mit den Daten des Codes an das Board, das wiederum den Code per IR-Diode an das TV überträgt. Auf diese Weise können Sie Code für Code einprogrammieren und sich Ihre eigene Fernbedienung erstellen.

So werden die Kommandos als Payload des Buttons gespeichert

So werden die Kommandos als Payload des Buttons gespeichert

Hinweis: Das Layout der GUI ist einer durchschnittlichen modernen Fernbedienung nachempfunden. Icons auf den Buttons sollen die Funktion verdeutlichen. Eine Liste nutzbarer Icons finden Sie auf der Webseite https://klarsys.github.io/angular-material-icons/.

Das User Interface

Das User Interface

36 Kommentare

  1. Santa

    File=App_iot18.hpp, func=iot18_day16() – Set Pin5 (GND IR-Send) to GND -> müsste Pin 17 sein oder nicht?

    Für Linux: Apps.hpp
    – #include „WiFiSetup.hpp“ -> #include „WifiSetup.hpp“
    – #include „APP_iot18.hpp“ -> #include „App_iot18.hpp“
    – #include „APP_sh19.hpp“ -> #include „App_sh19.hpp“
    – #include „APP_examples.hpp“ -> #include „App_examples.hpp“

    Peripherals.hpp – void ir_send(int codeType, unsigned long codeValue, int codeLen)
    – add: case SAMSUNG: irsend->sendSAMSUNG(codeValue, codeLen); // für Samsung RC

    Antworten
  2. paulaner

    Hallo f.k.,
    warum wurden nicht die vorhanden Pins und Funktionen genutzt?

    Zitat:
    4.8.
    IR Remote Control
    ESP8266EX currently supports one infrared remote control interface. For detailed pin
    definitions, please see Table 4-8 below.

    MTMS 9 IO14 IR TX
    GPIO5 24 IO 5 IR Rx

    The functionality of Infrared remote control interface can be implemented via software
    programming. NEC coding, modulation, and demodulation are supported by this interface.
    The frequency of modulated carrier signal is 38 kHz, while the duty ratio of the square wave
    is 1/3. The transmission range is around 1m which is determined by two factors: one is the
    maximum current drive output, the other is internal current-limiting resistance value in the
    infrared receiver. The larger the resistance value, the lower the current, so is the power, and
    vice versa.

    Antworten
  3. paulaner

    Hallo,
    ich bin bestimmt nicht der Einzige der an Weinachtsbaumbeleuchtung gedacht hat.

    Nach vielen Jahren mit einer ‚herkömmlichen‘ elektrischen Weihnachtsbaumbeleuchtung wurd es Zeit eine ‚Wireless‘
    Beleuchtung anzuschaffen. Nun hatten wir seit ein paar Jahren so eine, mir IR Ferbedienung.

    Der Adventskalender mit seinem IR-Ferbedienungs Experiment kam gerade Recht.

    Meine FB ist sehr einfach. On/Off fertig, wärend es noch verschiedene Codes, die während des Einschaltens gesendet werden gibt, somit erhält man verschiedene Effekte der Beleuchtung, Stetig oder Flackern in verschiedenen Abstufungen usw..

    Hier mal mein Flow, UI, Steckplatine

    Antworten
    1. Malte

      Danke für die Schaltung. Wir hatten dasselbe Problem, dass die LED nicht hell genug geleuchtet hat. Allerdings ist auf dem Breadboard der Widerstand um 1 Pin am NodeESP zu weit nach rechts versetzt.

      Antworten
  4. Kai

    Samsung-TVs gehen scheinbar auch nicht: Es wird Typ 7 mit 32 bit? Länge erkannt. Etwas mehr Dokumentation zur Codenotation wäre angebracht…

    Antworten
    1. paulaner

      stachelt es nicht an, selber danach zu suchen?
      Muss man denn alles vorgeworfen bekommen?

      Antworten
    2. paulaner

      Die wichtigsten Protokolle und Codeverfahren im Bereich der Unterhaltungselektronik sind der RC5-Code, der RC6-Code und der RECS80-Code (alle von Philips), der NEC-Code, der Sharp-Code, der Sony-Code, der RCMM-Code und das Toshiba-Micom-Format. Alle diese Codeverfahren und auch ähnlich aufgebaute Protokolle werden vom IRE8 unterstützt. Damit dürfte nahezu jede handelsübliche IR-Fernbedienung anlernbar sein.

      Das werden die Typen sein, wie die Zuordnung erfolgt entzieht sich auch meiner Kenntnis, ohne einen Blick in den Code.

      Antworten
      1. mKenfenheuer

        Leider funktioniert weder die Fernbedienung für ein Panasonic Soundsystem SA-PT160, noch eine XBoxOne Fernbedienung.
        Beide liefern als Ausgabe type -1. Ich nehme mal an das bedeutet der IR-Code konnte nicht decodiert werden?

        Bsp:
        {„cmd“:“ir_send“,“type“:-1,“value“:3685739007,“length“:32}

        Denn wenn ich diesen Payload in einen Button lege, tut sich bei der IR-Diode nichts.

        Antworten
  5. Daniel G

    Hallo Fabian,

    Danke für das Experiment heute, ich finde, das ist eines der Interessantesten der letzten Jahre.

    \()/

    Antworten
  6. Bernd

    Meine Erfahrungen:

    – Der Tipp hier mit dem „2. Tab“ (127.0.0.1:1880/ui/#/1) war sehr gut, das hat langes Suchen erspart und war aus dem Begleittext nicht ersichtlich.

    – Bei meinem Panasonic Fernseher hat gar nichts funktioniert. Der NodeESP kennt den Code wahrscheinlich nicht, es wird bei „Type“ immer „-1“ erkannt und gesendet („type“:-1), was anscheinend nicht funktioniert. Auch bei der Power-Taste.

    – Beim billigen DVD-Player war es dann wieder „type“:3 und es hat alles funktioniert, allerdings nur, wenn die IR-Diode sehr zielgerichtet sendet. Ein Vergleich mit der Handy-Kamera zwischen Original-FB und NodeESP IR-Diode zeigt einen enormen Unterschied in der Sendeleistung („blendender“ Strahl vs. schwaches, kurzes Flackern).

    – Da ich bei diesem Experiment zum 1. Mal auch den Batteriebetrieb getestet habe, ist mir aufgefallen, dass Akkus (1,2V statt 1,5V) nicht funktionieren! Anscheinend sind 3,6 V für den Board-Spannungswandler zu wenig, die 4,5 V mit Batterien hat dann funktioniert. (War da vielleicht irgendwann mal ein Hinweis dazu, den ich überlesen habe?) Bei den Akkus hat die Onboard-LED nur kurz grün aufgeleuchtet, bei den Batterien leuchtet die LED dann wieder dauerhaft, so wie im Netzteilbetrieb. Am Anfang dachte ich, dies wäre so gewollt, aber als gar nichts funktionierte, bin ich der Sache dann nachgegangen.

    Antworten
    1. paulaner
      1. Bernd

        Super, danke Dir. Die Seite ist sehr hilfreich auch bei anderen Fragen. Da haben mir anscheinend nur 0,1V gefehlt. Ab einer Spannung von 3,7V hätte es wohl laut den Specs funktioniert. Also keine 3 Akkus sondern 3 Batterien verwenden, dann geht es auch sicher.

        Antworten
        1. paulaner

          Hallo Bernd,
          laß dich nicht täuschen, LiPo Akku werden so angegeben, 3,7V … mA oder W.
          Aber geladen, haben diese 4,2V Schlußspannung und die werden lange Zeit gehalten.

          Auf dem Board ist ein Spannungswandler drauf, xxx1117, dieser macht 3.3V.
          Wo sollen die herkommen? Es muß höher reingepowert werden.
          Von dem Spannungsabfall darüber rede ich nicht einmal, aber dieser Baustein um richtig arbeiten/regeln zu können braucht etwas mehr Spannung, Reseve halt.

          Dann gibt es ja noch den 5V Pin auf dem Board, wo sollen die herkommen? Bei USB Anschluß wäre das nicht das Problem, dieser liefert ja 5V. Gemessen hab ich noch nicht im Batteriebetrieb. Step-Up Wandler benötigen immer noch Kapazitäten und/oder Induktivitäten.
          Hab ich auch keine gesehen.

          Antworten
          1. paulaner

            Batterie 4,55V Leerlauf
            4,34V Belastung/Board

            Pin 5V 4,28V
            Pin 3v3 3,18V

  7. Neuling

    Hallo in die Gemeinde.
    Die Versuche bis heute konnte ich bis auf Tag 14 nachvollziehen und funktionieren soweit auch.
    Mein Problem liegt bei Tag 14 : Nach Aufbau des Versuchs kann ich die LEDs über die Hardware als auch über das Node-Red Dashboard steuern. Soweit i.o. Jedoch werden die Steuerbefehle über HIVEMQ nicht vom Board umgesetzt. Welches Topic muss ich in Publish genau einstellen? NodeESP/[PID]/pwm/state/set ( wobei PID natürlich angepasst ist ) funktioniert bei mir nicht. Unter Subscriptions habe ich NodeESP/[PID]/# und kann somit sämtliche Meldungen mitlesen.

    Antworten
    1. paulaner

      Hallo,

      im Flow bei Node-Red sind alle Topics mit [PID], persönliche ID des Boards, anzupassen!!!

      Antworten
      1. Neuling

        Hallo paulaner,
        wie du vielleicht in meiner obigen Problembeschreibung überlesen hast, habe ich natürlich im Flow bei Node-Red alle Topics mit meiner persönlichen Board-ID angepasst.
        Mein Problem liegt beim Senden über HIVEMQ : unter Connection bin ich mit dem Host broker.fkainka.de Port 8000 verbunden.
        Bei Subscriptions habe ich NodeESP/xxxyyyzzz/# eingestellt und bekomme sämtliche Meldungen angezeigt. (xyz ist pers.ID)
        Wenn ich unter Publish den Topic NodeESP/xxxyyyzzz/pwm/state/set einstelle und {„cmd“:“set_pwm_state“, „LED1“:255} senden will, ändert sich an der Leuchtkraft der über das Node-Red Dashboard eingestellten 10% nichts. Die LED 1 müsste dann doch 100% leuchten, oder ??????
        Deshalb meine Frage, welches Topic einzustellen ist, um über HIVEMQ die LED zu beeinflussen?

        Antworten
        1. paulaner

          der Port des Brokers ist aber 1883!

          Antworten
  8. finerich

    Bei mir funktioniert alles…bis auf das senden. Selbst wenn ich mit dem Handy filme ist nichts zu erkennen. Kann mir bitte jemand weiterhelfen(bin am verzweifeln:))

    Antworten
  9. Heinz

    Guten Tag Zusammen,

    Bei mir funktioniert das senden mit der IR Diode leider nicht. Habe schon vieles versucht. Ich sehe auch kein flackern, wenn ich mit der Handy Kamera in die IR Diode schaue. Der Empfang geht prima, aber eben das senden nicht.
    Event. ist die IR Diode defekt? Habe schon versucht das Programm nochmals zu laden. Aber es geht nicht. IR Diode ist richtig angeschlossen gemäss Bild.

    Hat jemand noch eine Idee?

    Gruss
    Heinz

    Antworten
    1. fk (Beitrag Autor)

      Hallo, mit einer digitalen Kamera, z.B. von einem Smartphone, kannst du sehen, ob die Diode überhaupt funktioniert, indem du die Diode durch die Kamera betrachtest und einen Befehl sendest.

      Antworten
      1. Heinz

        Hallo Fabian,

        Das habe ich auch schon gemacht, mit meiner Handy Kamera. Ich sehe keine aktivität im Kamara Bild.
        Schaue ich aber mit dem Handy in die IR Diode der Fernbedienung, dann sehe ich ein pulsierendes Licht auf dem Handy Display. Im Bild unten , wie ich es verkabelt habe.

        Antworten
        1. Chris

          +1/Ist bei mir ganz genau das Gleiche.

          Sehe in meiner Handy Kamera bei Knopfdruck meine FB gleissend hell, bei der Diode keinen Unterschied.
          Und wenn ich das Kommando publishe, das meine FB absetzt, tut sich ebensowenig.
          Hell wird sie auch nicht.

          Was nun? Pech gehabt? VG Chris

          Antworten
        2. Marco81

          Bist du dir sicher dass es die Sendediode ist? Es sieht aus wie der Fototransistor.
          Die IR-Diode ist dunkler, zumindest bei mir.

          Antworten
          1. Chris

            Hi, der Fototransistor hat drei Beine. Empfangen, der Transistor, funktioniert bei mir.
            Als Sender funktionieren bzw. leuchten bei mir gar keine Diode. #$@…

          2. Bernd

            Marco81 hat vielleicht recht. Der Fototransistor von Tag 9 hat auch nur 2 Beine, genauso wie die IR-Diode von Tag 16. Eine Verwechslung ist durchaus möglich. Der Fototransistor ist weiß, die IR-Diode ist bläulich. Laut dem Foto würde ich auch auf eine Verwechslung tippen.

        3. Jan Jacob

          Du hast einen Phototransistor benutzt. Du musst die blaue (dei so wie eine diode aussieht) nehmen.
          Viel Glück.
          Mfg Jan Jacob

          Antworten
    2. paulaner

      Hallo,

      teste mal mit einem Multimeter die IR-Diode. Diodentest.
      Langes Bein Minus.
      Bei Beleuchtung kleiner Widerstand (>100 Ohm), bei Verdunklung groß (>500 Ohm).

      Antworten
      1. Chris

        Hi – Danke für den Tipp!

        Wenn ich mit der Taschenlampe ganz kräftig draufleuchte, fällt der Widerstand.
        Im Aufbau leuchtet allerdings überhaupt nix, im Gegensatz zur Fernbedienung, die im Handy stark strahlt.
        Empfangen geht, mit dem Subscriber sieht man Messages von node-red und mit dem Multimeter ein klein wenig Spannungszunahme im Rasterplatinenaufbau.

        Hast Du noch eine Idee oder ist das Ding einfach doch defekt?

        TIA Chris

        Antworten
        1. paulaner

          Hallo,

          wie auf dem Bild weiter oben von Heinz? ist die IR-Diode das glasige runde mit zwei Anschlüssen.
          Ich brauche nur mit der Hand das Ding etwas bedecken und schon geht der Widerstand hoch.

          Ich teste morgen mal noch mehr, habe 100te davon, und werde sehen was dabei rauskommt.

          Aber auch der 2.Test, mit einer IR-Diode aus dem Advendskalender 2017 hat funktioniert.
          Am Abend, vor dem Monitor, ohne Licht großer Widerstand, mit Taschenlampe kleiner Widerstand.

          Die IR-Diode bitte nicht verwechseln mit einer Fernbedienung.

          Die FB sendet Impulse an die Diode (FB Code), die Impulse, da sehr kurz, also mit hoher Frequenz, sind höher als normalerweise die Ströme die für diese Diode ausgelegt sind.

          Batterie dran und ins Handy schauen hat keinen Sinn, höchstens die IR-Diode geht davon kaputt!!!
          Es ist keine LED!!!

          Antworten
          1. Marco81

            Dass es keine LED ist kann ich nicht zustimmen, es ist nur ein für uns unsichtbares Lichtspektrum. Es gibt ja auch Infrarotscheinwerfer auf Basis von IR-LEDs. Unter 100mA sollten es bei Dauerbetrieb sein, mit 20mA (wie bei LEDs meist Maximum) ist man meist auf der sicheren Seite.
            Sichere Idee ob man einen Transistor oder LED hat:
            In Reihe mit einer LED und dem 1k-Widerstand zwischen GND und 5v, ist es ein Transistor dann wird sich bei Helligkeitsänderung was tun, ist es eine IR-LED dann sollte man es in der Kamera sehen.

  10. paulaner

    Hallo, funktionierte auch auf Anhieb.
    Aber bei dem Satz,
    Zitat:
    Deswegen gehen Sie zunächst auf den zweiten Tab mit …

    Es gab kein zweiten Tab, ich arbeite mit Win 8.1 und Firefox.
    127.0.0.1:1880/ui/#0 bringt die UI Fernbedienung.
    127.0.0.1:1880/ui/#1 bringt was der Tab 2, ‚Day16 Receive IR Codes‘ sein soll.
    Hier kann man den Code der FB auslesen.

    Mit meinem TV, Marke Panasonic und der FB hat es nicht geklappt, nur der ‚Power‘ Befehl, Fehlanzeige.
    Der Aufbau funktioniert, übertragung der Codes, senden per UI, Infraratdiode sendet, sichtbar da gleichzeitig die IR Empfangsdiode mitläuft, ich habe außerdem Debugger gesetzt.

    Habe es dann mit einer China FB versucht, einlesen, kopieren, senden ok.
    Nun noch der Feldtest.

    Antworten
    1. paulaner

      127.0.0.1:1880/ui/#/0 bringt die UI Fernbedienung.
      127.0.0.1:1880/ui/#/1 bringt was der Tab 2, ‚Day16 Receive IR Codes‘ sein soll.

      Das sind die richtigen Links, habe ein Schräger vergessen, sorry.

      Antworten
    2. Frank

      Schon probiert auf die drei Striche links oben zu klicken? Da sollte das Menü für die Tabs erscheinen.

      Antworten
  11. jue

    Hmm, bei mir war heute ein Teil mit vier Beinen drin. Sieht eher nach RGB-LED aus als nach IR-Sender. Jetzt muss ich wohl die anderen Türen öffnen, um den Sender zu suchen!? Ärgerlich.

    Antworten
  12. Marco81

    Funktioniert leider (wie erwartet) nicht mit jeder Fernbedienung, dafür müsste schon eine Analyse wie bei Lirc geschehen, aber zumindest mit dem Fernseher funktioniert es.
    Mit dem Sat-Receiver leider nicht.
    Mit den Codes muss man testen, der erste ist nicht immer der richtige.

    Antworten

Schreiben Sie einen Kommentar

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.