Infrarotfernsteuerung
Fernsteuerung von per Infrarot steuerbaren Geräter per Netzwerk
Ziel
Der Verstärker und der Beamer (und vielleicht noch weitere Geräte) des Bytewerks sollen per Netzwerk ferngesteuert werden.
Recherche
- http://fredboboss.free.fr/?p=240 und http://lirc.sourceforge.net/remotes/onkyo/Remote_Interactive
- http://www.remotecentral.com/cgi-bin/codes/onkyo/
- http://www.sbprojects.com/knowledge/ir/nec.php
- https://www.mikrocontroller.net/articles/IRMP (Informationen über das Empfangen/Senden von IR Fernbedienungssignalen mit Mikrocontrollern)
- Modellnummer des Verstärkers: TX DS474 → Service-Manual: http://www.manualowl.com/m/Onkyo/TX-DS474/Download/347629
Erkenntnisse aus dem Service Manual
- Aus dem Servicemanual geht hervor dass der RI-Port direkt mit einem Input-Pin am μC des Verstärkers verbunden ist. Daher sollte es möglich sein den Verstärker mit RI auch zu steuern. Ein erster Versuch der Steuerung des Verstärkers über den Remote Interactive-Port schlug jedoch fehl -- das Gerät zeigte keinerlei Reaktion.
- Es wird die Teilenummer des Infrarot-Receivers angegeben (GP1U281X). Datenblätter ähnlicher Infrarot-Empfänger legen eine maximale Empfindlichkeit für λ≈1000nm nahe, so dass 940nm-IR-LEDs hoffentlich funktionieren sollten.
Eine Aufzeichnung des IR-Signals der Fernbedienung zeigt gewisse Ähnlichkeiten zum NEC-Protokoll.
Durchbruch am 8. August 2014
Die Infrarotempfänger-Wundertüte vom Pollin enthielt einen Empfänger mit dem es möglich war die Signale unserer Verstärker-Fernbedienung zu empfangen.
- Anschluss des Sensors (LiteOn LTM-9034) an Labornetzteil und Oszilloskop zum Test.
- Anschluss des Sensors an das NetIO Board mit der folgenden Schaltung. Die verlinkte Schaltung verwendet zwar einen anderen IR-Empfänger, diese funktionieren aber im Prinzip alle gleich: für eine logische 1 wird der Ausgang auf low gezogen, andernfalls liegt Vcc an.
- Konfiguration von Ethersex mit IRMP: Ethersex mit einkompiliertem IRMP mit Unterstützung für das NEC-Protokoll und ECMD wurde auf das Board geflasht.
- Auslesen der Fernbedienungscodes per ECMD über TCP: `while read; do echo "irmp receive"; done | nc <ETHERSEX_IP> 2701` sendet für jede Betätigung der Enter-Taste den Befehl zum Ausgeben des letzten dekodierten Fernbedienungs-Codes an Ethersex.
Nach dem erfolgreichen Auslesen der Codes der Verstärker-Fernbedienung wurde ausprobiert ob die Beamer-Fernbedienung zufällig das selbe Protokoll spricht. Es stellte sich heraus dass sie dies tatsächlich tut, und auch ihre Codes wurden ausgelesen.
TODO/Roadmap/Etappenziele
- Bau und Erprobung eines Infrarot-Senders
- Speicherung der Fernbedienungscodes im JSON-Format, da dieses sowohl in Webanwendungen als auch in nativen Anwendungen genutzt werden kann
- Erstellung eines Webinterfaces und eines Python-Moduls