ich lese hier immer mal sporadisch mit und träume seit meinem 14. Lebensjahr von einem eigenen Heimkino. Mittlerweile bin ich 35, immer noch ohne Heimkino, aber motivierter denn je.
Im Wohnzimmer habe ich zwar einigermaßen brauchbaren Ton, aber da wir aktuell in einem Mehrfamilienhaus wohnen, kann ich sowieso nicht richtig aufdrehen.
Seit Kurzem gibt es allerdings ein Licht am ende des Tunnels . Wir haben ein Grundstück erworben und planen aktuell einen Neubau mit passendem Heimkinokeller.
Da mir das alles aber viel zu lange dauert und ich nicht einfach tatenlos herumsitzen konnte, habe ich einfach mal mit einer Heimkinosteuerung angefangen.
Um meine wirren Gedanken mit etwas Struktur zu versehen, habe ich mir einige Anforderungen für die Steuerung überlegt:
Anforderungen
1. Die Steuerung soll die Möglichkeit bieten verschiedene Geräte zu steuern.
2. Die Steuerung soll die Möglichkeit bieten 230 Volt Geräte ein/aus zu schalten.
3. Die Steuerung soll die Möglichkeit bieten verschiedene Sensoren abzufragen (z.B. Taster zur Steuerung der Filmwiedergabe, usw.)
4. Die Verkabelung und Stromversorgung der Sensoren sollte mit möglichst wenig Kabeln erfolgen.
5. Die Steuerung soll die Möglichkeit bieten Motoren anzusteuern (z.B. für Leinwandmaskierung)
6. Die Steuerung soll per Fernbedienung oder Tablet erfolgen.
7. Das ganze sollte keine all zu großen Löcher ins Konto reißen.
Ohne vorhandenes Heimkino ist es schwer zu erahnen, was alles benötigt wird. Aus diesem Grund sollte das ganze möglichst generische sein. Spätere Änderungen sollten mit wenig Aufwand umzusetzen sein.
Ich wollte also etwas steuern. Steuern können andere auch und man muss ja nicht jedes Mal das Rad neu erfinden. So kam es, das sich nach ein wenig Recherche im Bereich der Heimautomatisierung vorbeigekommen bin. In dieser Ecke gibt es zahlreiche Lösungen, um unterschiedlichsten Geräte miteinander zu verbinden und regelbasiert steuern zu können.
Relativ schnell bin ich auf OpenHAB gestoßen, welches mir von Anfang an sehr gut gefallen hat.
Bei OpenHAB handelt es sich um eine Heimautomatisierungs-Software, die bereits zahlreiche Module für alle möglichen Geräte anbietet. So lassen sich die meisten gängigen SmartHome Geräte
einfach einbinden. Darüber hinaus ermöglicht OpenHAB eine einfache Erstellung von Benutzeroberflächen, sodass der Tabletsteuerung nichts im Wege steht.
Als nächstes habe ich mich umgesehen mit welchen kompatiblen Geräten ich die weiteren Anforderungen umsetzen kann. Es gibt genügend fertige Lösungen, um z.B. Steckdosen zu schalten, oder
Taster abzufragen, aber diese System standen in groben Widerspruch zur Anforderung bzgl. der Kosten. Was solls - Selbst ist der Mann - heißt es doch immer so schön. Ich kenne mich zwar einigermaßen mit Software
aus, aber vom Bereich der Elektrotechnik wusste ich nur, dass das Licht an geht, wenn man den Schalter drückt.
Aber es nützte ja nichts, das Problem musste gelöst werden. Daher recherchierte ich, wie man so etwas machen kann. Am Ende bin ich bei einer Lösung mit der seriellen Schnittstelle RS485 gelandet. Diese ist
zum Einen leicht umzusetzen und zum Anderen gibt es ein OpenHAB Modul, um mit dieser Schnittstelle kommunizieren zu können.
Zunächst eine Übersicht über das entstandene System:
Das ganze ist so aufgebaut, dass das Raspberry PI die Zentrale darstellt, auf der auch OpenHAB läuft. Das Raspberry PI ist mit meinem Heimnetzwerk verbunden und OpenHab kann so z.B.
per WLan mit dem Tablet gesteuert werden.
Am Raspberry PI wird ein USB -> RS485 Konverter verwendet, um mit dem RS485 Netz kommunizieren zu können. Von Dort geht es weiter zu einer Art Verteiler, der es ermöglicht unterschiedliche Module
mit dem RS548-Netz zu verbinden. Für die Verbindung verwende ich handelsübliche CAT5 Kabel, die ich gleichzeitig zur Kommunikation und für die Stromversorgung nutze. Dadurch wird für jedes
Modul nur ein Kabel benötigt.
Umsetzung der Module:
Auf den Modulen befindet sich jeweils ein Arduino Nano Board. Mir ist durchaus bewusst, dass ich auch gleich einen AVR 328p Mikrokontroller hätte nehmen können, aber
als ich mit dem Projekt angefangen habe, war mein Wissensstand noch nicht soweit. Wenn ich noch einmal neue Platinen fertigen sollte, dann mache ich vielleicht nochmal eine Version mit AVR 328p.
Durch die Verwendung der Arduinos ist zumindest das Flashen sehr einfach über USB möglich.
- Verteiler
Der Verteiler ermöglicht aktuell die Verbindung von 12 Modulen. Sollte ich mehr benötigen, so können mehrere Verteiler hintereinander geschaltet werden. Die Maximale Anzahl der Module ist aber durch RS485 auf 32 beschränkt.
Eine weitere "Einschränkung" ist, dass die maximale Kabellänge 500m beträgt. Für meinen Anwendungsfall sollte dies aber ausreichen. - Relais Steuerung
Dieses Modul kann bis zu 16 Ralais ansteuern. Darüber können z.B. Steckdosen oder Motoren angesteuert werden. Von diesem Modul werde ich wahrscheinlich zwei benötigen. Aufgrund der erwarteten Last durch die
Relais, sollte das Modul nicht all zu weit von dem Verteiler verbaut werden. Die Leiterbahnen sind für 12V DC-Sensitiv Finder-Module ausgelegt. Auch die CAT5 Kabel sollten das mitmachen, aber eben nur bei kurzen Strecken.
Da das Modul sowieso im Technikraum benötigt wird, ist das aber für mich kein Problem. - Sensor Platine
Diese Platine ermöglicht die Steuerung von bis zu 10 Sensoren. Drei der Eingänge sind analoge Eingänge mit denen z.B. auch ein Temperatursensor realisiert werden kann. Weitere 3 sind PWM Eingänge. Ich habe später
festgestellt, dass ich sogar mehr PWMs zur Verfügung gehabt hätte, aber da waren die Platinen schon bestellt. Vielleicht beim nächsten mal...
Zusätzlich befindet sich auf der Platine ein Spannungswandler von 12v auf 5v. Die Arduinos dürfen mit bis zu 12v betrieben werden, aber die meisten Sensoren, die ich gefunden habe sind eher für 5v ausgelegt. Die Anschlüsse
bestehen aus jeweils dem Eingang zum Arduino, Gnd und +5v.
Für die Steuerung können mit OpenHAB passende Benutzeroberflächen erstellt werden. Ich habe auf dem ersten Bild mal exemplarisch die 16 Relais eingefügt und zwei Sensoren abgefragt.
Das Schalten der Relais kann auch gescriptet werden, um z.B. alle Endstufen mit Zeitversatz zu schalten.
So, das war es eigentlich auch schon mit meinem kurzen Bericht. Ich danke allen, die bis hier durchgehalten haben und würde mich über Anregungen oder Fragen freuen.
So Long,
Jeremia