mikrocontroller.net

Forum: Haus & Smart Home Infrarotsignal senden über Netzwerk


Autor: Julian F. (julian_fr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Community!

Ich möchte meinen Fernseher und andere per Infrarot Fernbedienung 
nutzbare Geräte "smart" steuern. Dafür plane ich ein Modul zu bauen, 
dass mit meinem Netzwerk verbunden ist (über WLAN oder Ethernet) und 
dort eine simple Web API anbietet, an die ich Anfragen senden kann, die 
dann das senden eines vorher definierten Infrarotsignals triggern.
Dafür will ich die Signale meiner Fernbedienung (an/aus, lauter, leiser, 
etc.) einmal bei Einrichten des Gerätes "einfangen" und dann eben jeder 
Zeit wieder "abspielen" können.

Ich studiere Informatik, mit Code habe ich also eher keine Probleme, bei 
Elektronik bin ich aber leider ziemlich unerfahren.

Ich habe vor einiger Zeit mal probiert das ganze mit einem ESP8266 und 
günstigen Infrarot Sendern/Empfängern zu realisieren, bin aber 
gescheitert. Deswegen möchte ich mich hier nach alternativen 
Möglichkeiten erkundigen.

Wichtig ist mir folgendes:
- nicht unnötig komplex (umso einfacher, umso besser)
- nicht unnötig teuer
- das Ding solle 24/7/365 laufen, nicht ausfallen oder gewartet werden 
müssen
- Ethernet wäre toll, WLAN ist aber auch okay


Ich denke mit einem ESP8266 (gibt es eigentlich einen ähnlichen 
Controller mit Ethernet statt WLAN?) ist das ganze schon gut umzusetzen, 
leider bin ich mit den verschiedenen Infrarotsendern und -empfängern 
etwas überfordert. Vielleicht kann mir ja hier jemand weiterhelfen.

Ich bin dankbar für jede Antwort!
Viele Grüße,
Julian

: Bearbeitet durch User
Autor: Timmo H. (masterfx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Julian F. schrieb:
> (gibt es eigentlich einen ähnlichen
> Controller mit Ethernet statt WLAN?)
Der ESP32 hat auch ne Ethernet MAC eingebaut.
Ansonsten würde ich mir einfach ne Struktur ausdenken mit Protokoll + 
Daten und der ESP hat es einfach via IR-Diode mit der richtigen 
Modulationsfrequenz raus. Würde es per MQTT oder so realisieren und er 
ESP subscribed dann das topic und übersetzt es dann in IR

: Bearbeitet durch User
Autor: Gerd E. (robberknight)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Mit IRMP und dem zugehörigen IRSND kannst Du den Anlernen und 
Senden-Teil ganz einfach lösen.

Von der Umsetzung her am schnellsten dürfte es sein die STM32-Variante 
vom IRMP mit USB zu nehmen und das an einen RasPi (oder ähnliches) 
anzuschließen.

Autor: Julian F. (julian_fr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timmo H. schrieb:
> Der ESP32 hat auch ne Ethernet MAC eingebaut.
Danke!

Timmo H. schrieb:
> Würde es per MQTT oder so realisieren und er ESP subscribed dann das topic und 
übersetzt es dann in IR
MQTT hab ich bei meinem letzten Versuch auch verwendet. Das werde ich 
dann denk ich beibehalten.


Könnt ihr mir noch Namen oder Links zu Sender und Empfänger geben, die 
ich hierfür brauche? Das wäre super! Das ganze dann an einen ESP 
anzuschließen sollte ich dann hinbekommen. :D

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Die c‘t hatte mal so ein Projekt vor (15) Jahren gemacht.

https://www.heise.de/ct/artikel/LIRC-Box-288924.html

Autor: Chr. M. (snowfly)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Du könntest hier schauen wie der es gemacht hat;
https://github.com/mdhiggins/ESP8266-HTTP-IR-Blaster

Autor: Chr. M. (snowfly)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Julian F. schrieb:
> leider bin ich mit den verschiedenen Infrarotsendern und -empfängern
> etwas überfordert. Vielleicht kann mir ja hier jemand weiterhelfen.

Nicht dass ich Ahnung hätte, aber ich versuchs mal:
Senden:
IR-Leds gibt es in ein paar verschiedenen Wellenlängen
und Abstrahlwinkeln.
Internet hilft bei Wellenlänge, Winkel musst du selbst wissen.
Werden gerne mit 100mA gepulst betrieben --> Datenblatt

Empfangen:
Es gibt diese TSOPS die schon ein decodiertes Signal ausgeben
(ohne Trägerwelle) auch für verschiedene Grundfrequenzen
(Typisch 38kHz)
https://www.google.com/search?client=firefox-b-d&q=+tsop+ir

Das es schon 100erte fertige Geräte gibt die alles schon können
ist dir bekannt?

Viel Spass beim Basteln.

: Bearbeitet durch User
Autor: Frank M. (ukw) (Moderator) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Netzwerkfähige Variante von IRMP und IRSND:

Remote IRMP

Diese verwendet einen Wiznet W5100 Ethernet-Controller statt WLAN.

Autor: Julian F. (julian_fr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die ganzen Antworten! Ich werde mir die Verlinkungen am 
Wochenende mal genauer anschauen.

Chr. M. schrieb:
> Das es schon 100erte fertige Geräte gibt die alles schon können
> ist dir bekannt?
Alles was ich bisher gefunden habe konnte entweder zu wenig oder zu viel 
(und war dann dementsprechend kostspielig). Wenn hier jemand ein 
(günstiges) Gerät empfehlen kann, dass wirklich alle meine Anforderungen 
erfüllt, würde ich das wohl dem selbst basteln vorziehen und die Zeit in 
andere Projekte stecken, für die es keine fertige Lösung zu kaufen gibt.

Autor: Joachim S. (oyo)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Julian F. schrieb:
> Alles was ich bisher gefunden habe konnte entweder zu wenig oder zu viel
> (und war dann dementsprechend kostspielig). Wenn hier jemand ein
> (günstiges) Gerät empfehlen kann, dass wirklich alle meine Anforderungen
> erfüllt, würde ich das wohl dem selbst basteln vorziehen und die Zeit in
> andere Projekte stecken, für die es keine fertige Lösung zu kaufen gibt.

Dann nimm das GitHub-Projekt, das snowfly verlinkt hat.
Das passt wirklich perfekt zu Deiner Anforderungsliste.

Mal interessehalber: Weisst Du eigentlich, an was es damals, bei Deinem 
eigenen Versuch, so etwas umzusetzen, gescheitert ist?
Ich würde instinktiv darauf tippen, dass Du das zu reproduzierende 
Infrarot-Signal von einem Infrarot-Empfänger wie den TSOPs bekommen 
hast, und dieses Signal dann einfach 1:1 auf einen GPIO-Port ausgegeben 
hast, an dem eine Infrarot-LED angeschlossen war. Das funktioniert so 
aber nicht, weil man das Signal erst noch auf ein ca. 38kHz-Signal 
aufmodulieren muss.

Diesen Fehler hatte ich nämlich ursprünglich bei einem ähnlichen 
Vorhaben gemacht, daher würde mich interessieren, ob andere Leute 
instinktiv den gleichen Fehler machen... :)

Autor: Julian F. (julian_fr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joachim S. schrieb:
> Mal interessehalber: Weisst Du eigentlich, an was es damals, bei Deinem
> eigenen Versuch, so etwas umzusetzen, gescheitert ist?
> Ich würde instinktiv darauf tippen, dass Du das zu reproduzierende
> Infrarot-Signal von einem Infrarot-Empfänger wie den TSOPs bekommen
> hast, und dieses Signal dann einfach 1:1 auf einen GPIO-Port ausgegeben
> hast, an dem eine Infrarot-LED angeschlossen war. Das funktioniert so
> aber nicht, weil man das Signal erst noch auf ein ca. 38kHz-Signal
> aufmodulieren muss.
Das ganze ist schon ca. ein halbes Jahr her und wenn ich damals gewusst 
hätte, wo genau das Problem liegt hätte ich auch nicht aufgegeben.
Die verwendeten Komponenten sind jedenfalls diese hier:
Empfänger:
https://www.banggood.com/10pcs-Universal-IR-Infrared-Receiver-Head-With-Iron-Shell-TL1838-VS1838B-1838-38Khz-p-1211280.html?cur_warehouse=CN
Sender:
https://www.banggood.com/3pcs-38KHz-Infrared-IR-Transmitter-Sensor-Module-For-Arduino-p-1389143.html?rmmds=search&cur_warehouse=CN
Controller:
WeMos D1 Mini

Zusätzlich natürlich noch Widerstände, Board und Wires.

Damals haben wir (Kumpel und ich) das einfach irgendwie verkabelt und 
versucht das Signal von der Fernbedienung auszulesen. Als das irgendwann 
funktioniert hat (= es kamen reproduzierbare Werte in der Konsole an), 
haben wir versucht das was wir ausgelesen haben wieder mit dem Sender zu 
senden, der Fernseher blieb aber aus.
Ob das auslesen schon nicht richtig funktioniert hat, oder ob nur das 
senden das Problem war weiß ich leider nicht.

Aufmoduliert haben wir jedenfalls nichts, hätte man das hier auch 
gemusst? Wir haben ja einen 38khz Empfänger verwendet?

Autor: Joachim S. (oyo)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Julian F. schrieb:
> Sender:
> 
https://www.banggood.com/3pcs-38KHz-Infrared-IR-Transmitter-Sensor-Module-For-Arduino-p-1389143.html?rmmds=search&cur_warehouse=CN
>
> Damals haben wir (Kumpel und ich) das einfach irgendwie verkabelt und
> versucht das Signal von der Fernbedienung auszulesen. Als das irgendwann
> funktioniert hat (= es kamen reproduzierbare Werte in der Konsole an),
> haben wir versucht das was wir ausgelesen haben wieder mit dem Sender zu
> senden, der Fernseher blieb aber aus.
> Ob das auslesen schon nicht richtig funktioniert hat, oder ob nur das
> senden das Problem war weiß ich leider nicht.
>
> Aufmoduliert haben wir jedenfalls nichts, hätte man das hier auch
> gemusst? Wir haben ja einen 38khz Empfänger verwendet?

Der Empfänger ist okay. Der liefert an seinem Daten-Ausgang ein Signal, 
bei der die 38kHz-Trägerfrequenz bereits herausgefiltert ist.

Der Sender ist das Problem - bei dem steht zwar ebenfalls etwas von 
"38kHz", aber das ist imho Mumpitz - auf diesem Modul befindet sich 
lediglich eine einzige gewöhnliche IR-Sendediode. Wenn man diese 
Sende-Diode an einen Output-Pin anschliesst, und dort einfach 1:1 den 
gleichen digitalen Signalverlauf ausgibt, den man an dem Input-Pin 
aufgezeichnet hat, an dem der Daten-Ausgang des IR-Empfängers hängt, 
dann funktioniert das nicht, weil dieser digitale Signalverlauf noch auf 
eine 38kHz-Trägerfrequenz aufmoduliert werden muss. Ohne das klappt es 
nicht. Diese 38kHz-Trägerfrequenz kann bspw. durch PWM erzeugt werden.

Es könnte natürlich sein, dass bei euch auch noch ein anderes Problem 
vorlag, aber schon aus obigem Grund hätte es gar nicht funktionieren 
können, wenn ihr das eingelesene Signal einfach 1:1 ausgegeben habt.

Wie gesagt, genau das gleiche Problem hatte ich damals anfangs auch - 
ich hatte glaube ich sogar exakt das gleiche IR-Sendemodul :)

Autor: Julian F. (julian_fr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich Glück habe, liegt der Controller so noch irgendwo rum um ich 
kann das mal ausprobieren.
Wo kann ich denn nachlesen, was man dafür genau machen muss?

Edit: Oder kann ich auch einfach einen anderen Sender kaufen, der das 
von sich aus macht? Wenn ja, auf was muss ich da achten, damit ich nicht 
wieder einen falschen erwische?

: Bearbeitet durch User
Autor: Joachim S. (oyo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Julian F. schrieb:
> Wenn ich Glück habe, liegt der Controller so noch irgendwo rum um ich
> kann das mal ausprobieren.
> Wo kann ich denn nachlesen, was man dafür genau machen muss?
>
> Edit: Oder kann ich auch einfach einen anderen Sender kaufen, der das
> von sich aus macht? Wenn ja, auf was muss ich da achten, damit ich nicht
> wieder einen falschen erwische?

Letztlich geht es bei diesem aufmodulieren auf eine 38kHz Trägerfrequenz 
darum:
In den Zeiträumen, in denen die IR-Sendediode tatsächlich 
senden/leuchten soll (also in den Zeiträumen, in denen der Daten-Pin 
eures IR-Empfänger einen Low-Pegel ausgegeben hat), darf diese 
IR-Leuchtdiode nicht dauerhaft leuchten, sondern muss sozusagen mit 
38kHz "blinken".
In den anderen Zeiträumen, also wenn die IR-Leuchtdiode gerade nicht 
senden/leuchten soll (was den Zeiträumen entspricht, in denen der 
Daten-Pin eures IR-Empfängers einen High-Pegel ausgegeben hat), ist sie 
tatsächlich einfach ausgeschaltet.

Bei Mikrocontrollern erledigt man das i.d.R. in Software, per PWM. Man 
schliesst die IR-Leuchtdiode an einen PWM-fähigen IO-Pin an, und 
konfiguriert PWM so, dass auf diesem IO-Pin ein PWM-Signal mit 
38kHz-Frequenz bei einem Duty-Cycle von 50% ausgegeben wird. In den 
Zeiten, in denen gesendet wird, schaltet man dieses PWM-Signal ein; in 
den anderen Zeiten, in denen nichts gesendet wird, sorgt man dafür dass 
das PWM-Signal nicht ausgegeben wird.

Alternativ könnte man es aber auch in Hardware machen. Wenn man nach 
"infrared 38khz ne555" googlet, findet man diverse Schaltungen, die das 
mit Hilfe eines 555-Timer-ICs erledigen.
Ich habe auch ein fertiges IR-Sendemodul gefunden, das eine derartige 
Schaltung mit 555-Timer-IC enthält:
Ebay-Artikel Nr. 163541016912
Das könntest Du vermutlich als Ersatz für euer KY-005-IR-Sendemodul 
anschliessen und es würde funktionieren.
Ich konnte dafür auf die Schnelle allerdings nur Anbieter aus Asien 
finden, mit entsprechend langer Lieferzeit.

Das war auf die Schnelle allerdings auch das einzige käufliche 
IR-Sendemodul mit integrierter 38kHz-Trägerfrequenz, das ich finden 
konnte.
Fast alle Lösungen, bei denen ein Mikrocontroller Signale von 
IR-Fernbedienungen sendet, erzeugen das 38kHz-Trägersignal halt in 
Software, weil das für einen Mikrocontroller üblicherweise kein Problem 
ist, und man sich dadurch zusätzliche Bauteile spart. Ausserdem hat das 
den Vorteil, dass man die Trägerfrequenz auch einfach per Software 
ändern könnte, während die Hardware-Lösungen fest auf eine bestimmte 
Trägerfrequenz eingestellt sind.

Der Sourcecode der (offenbar recht beliebten) "Arduino-IRremote"-Library 
könnte ein Ansatz sein, wie man das in Software, per Hardware-PWM, 
erledigt:
https://github.com/z3t0/Arduino-IRremote/blob/master/irSend.cpp

Autor: Chr. M. (snowfly)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Julian F. schrieb:
> Alles was ich bisher gefunden habe konnte entweder zu wenig oder zu viel

Ich dachte an diese Dinger:
https://de.aliexpress.com/item/Original-Broadlink-RM-Mini3-Universal-Intelligente-WiFi-IR-4G-Drahtlose-Fernbedienung-ber-IOS-Android-Smart-Home/32870991072.html
https://de.aliexpress.com/item/Geeklink-Smart-Home-Automation-WIFI-IR-4G-Universal-Remote-Controller-iOS-Android-Voice-Control-Arbeitet-mit/32959728827.html
https://de.aliexpress.com/item/Broadlink-RM-PRO-RM33-Smart-Fernbedienung-Smart-Home-Automation-Hub-Controller-WiFi-IR-RF-Schalter-F/32967165671.html
https://de.aliexpress.com/item/Smart-Home-Automation-Geeklink-Extension-Intelligent-Controller-Wireless-Remote-Control-Wifi-Extender-IOS-android-IR-RF/32720054831.html
https://de.aliexpress.com/item/2016-Orvibo-Smart-Home-Automation-System-WiFi-IR-RF-Remote-Control-Switch-XiaoFang-PK-Allone-Control/32772503900.html
https://de.aliexpress.com/item/2017-Orvibo-Allone-pro-IR-RF-WIFI-Smart-Home-Automation-Intelligent-Universal-Controller-Wireless-Smart-Remote/32802986952.html
https://de.aliexpress.com/item/Xiao-mi-mi-Universal-Intelligente-Smart-Fernbedienung-WIFI-IR-360-Grad-f-r-mi-TV-Klimaanlage/32975029334.html
https://de.aliexpress.com/item/Sonoff-WiFi-IR-Remote-IR-Control-Hub-Wi-Fi-Aktiviert-Infrarot-Universal-fernbedienung-Controller-F-r/32975029072.html

Zu viel können stört ja nicht. :)
Der Haken ist dass die alle auf Cloud benutzung ausgelegt sind.
Bei vielen ist aber eine alternative Ansteuerung oder Firmware
möglich.
Da muss man sich halt durchlesen...

Eigenbauprojekte habe ich auch schon sehr viele gesehen, von TV-B-Gone 
mit minimal Hardware
 bis zu Raspberrys und es gibt, glaube ich, auch NAS mit IR-Hardware. Da 
gibt es bestimmt Docker
Container dafür.:)

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.