Arduino Home Light Dimmen

10

Der Trockenbau beginnt gerade im Kellerprojekt meiner Familie zu steigen. Ich habe mich mit Lichtsteuerungssystemen für Privathaushalte befasst. Einige von denen, die ich gesehen habe, waren über 2.000 Dollar. Ich denke, es würde viel mehr Spaß machen (und kostengünstiger sein!), Mein eigenes Arduino-basiertes System zu implementieren.

Das eigentliche Problem liegt in der tatsächlichen Steuerung der Lichter. Jede Lichtgruppe muss von einem schalterbasierten Dimmersystem gesteuert werden. Es wäre viel einfacher, wenn der Mikrocontroller der einzige Kontrollpunkt wäre. Leider ist dies nicht der Fall. Ich gehe davon aus, dass ich einen Dimmer verwenden muss, mit dem ein externes Gerät eine Schnittstelle herstellen kann. Dies würde das Problem vollständig vermeiden, da sowohl der Schalter als auch Arduino die Lichter steuern könnten, während der Arduino die Lichter über den Dimmerschalter steuern würde.

Kann jemand eine bessere Lösung / einen besseren Ansatz empfehlen oder einen Dimmer vorschlagen, der eine Art „Remote“ -Schnittstelle hat?

Update 01.03.2013: Ich habe mich schließlich für eine Insteon-basierte Lösung mit einem benutzerdefinierten Schild von Good Robot entschieden . Es funktioniert hervorragend und kann zur Steuerung von Insteon verwendet werden, nicht nur von Lichtern. Ich werde hier eine Antwort posten, wenn ich die Gelegenheit habe, etwas Nützliches aufzuschreiben.

Kevin Mark
quelle

Antworten:

4

Ich habe vor ungefähr 10 Jahren ein ganzes Haus mit X10 eingerichtet, und während es funktionierte, könnte es etwas schuppig sein. Wenn ich es noch einmal tun würde, würde ich mir modernere Produkte wie Insteon ansehen . Insteon soll einen Großteil der Flakiness lösen, die X10 hat.

Ich würde nicht versuchen, die AC-Steuermodule des Geräts (Dimmer, Fernschalter usw.) selbst zu bauen, da die Arbeit mit Netzspannungen sehr gefährlich ist, es sei denn, Sie wissen wirklich, was Sie tun.

ducksauz
quelle
Danke für den Insteon Link. Es scheint, dass es eine Art Insteon-Protokoll gibt, mit dem ich mit ihren Dimmern kommunizieren kann. Ist es eine Variation von X10?
Kevin Mark
Nach einigen weiteren Recherchen sehen Insteon-Dimmer wirklich wie der richtige Weg aus. Es sieht so aus, als könnte ich ihnen zumindest X10-Signale senden . Ich habe herumgegoogelt, um Dokumentationen oder Beispielprojekte zu finden. Ich habe noch nichts gefunden.
Kevin Mark
Ich habe das Insteon-Kit noch einmal gelesen. Es ist X10-kompatibel, da es mit X10 koexistiert. Es hat eine höhere Datenrate, alle Geräte sind Repeater und alle Nachrichten werden bestätigt.
ducksauz
Es gibt ein gutes Whitepaper hier: insteon.net/about-whitepapers.html
ducksauz
Vielen Dank. Dies sollte sich in dem unglücklichen Fall als nützlich erweisen, dass ich manuell mit dem INSTEON-Protokoll kommunizieren muss. ;)
Kevin Mark
4

DMX512 wird häufig zur Steuerung der Bühnenbeleuchtung verwendet. Da EIA-485 verwendet wird, sollte die Hardware und Software auf einem Arduino mit einem geeigneten Schild recht einfach zu implementieren sein. Hier ist ein Arduino DMX-Projekt.

Es sind kostengünstige DIY-DMX-Dimmer-Fernbedienungen erhältlich. Hier ist eine, die einen ATmega8515 AVR verwendet, ein ähnliches Gerät wie das des Arduino. Ich würde gerne einen viel kleineren, billigeren Controller verwenden. Die Dimmerschnittstelle zu den Lampen, das "Netzteil", wird ebenfalls beschrieben. Es ist ein ziemlich schönes Projekt.

Leon Heller
quelle
Dies ist zwar wahr, aber ich glaube nicht, dass es diese Frage beantwortet. Kevin würde einen "DMX-Dimmer" benötigen, der den DMX aufnimmt und eine Phasenschnitt-Netzwellenform ausgibt.
Martin
1
Ich neige dazu, meine Antworten ein bisschen nach dem anderen zu schreiben und sie zu ergänzen, wenn ich an mehr Dinge denke.
Leon Heller
DMX ist ziemlich cool zu spielen, wird sich aber wahrscheinlich als übertrieben für das erweisen, was ich tue. Zumal es sich um ein In-Wall-System handelt.
Kevin Mark
4

Ich habe mit X10 und Insteon gespielt - sie funktionieren, aber meine Erfahrung mit dem Hacken war überwältigend.

Also baue ich mein Hausautomationssystem komplett mit XBee-Funkgeräten. Der ZigBee Home Automation- Standard ist offen und recht einfach zu implementieren (wenn Sie mit vorhandenem HW kompatibel sein möchten). Aber Sie müssen diesen Weg nicht gehen, Sie können Ihr eigenes Protokoll einführen (zum Beispiel mit binärem JSON - das ist, was ich tue). Die Radios sind nicht billig (~ 25 $), aber die Benutzerfreundlichkeit lohnt sich meiner Meinung nach. In vielen Fällen benötigen Sie nicht einmal einen Mikrocontroller - XBees verfügen über eigene digitale und analoge E / A. Bisher habe ich einige Geräte mit XBee gebaut - Thermostat, Bewegungssensor, X10-Gateway und Garagenparkassistent / Auto-Anwesenheitssensor. ZigBee-Funkgeräte können Mesh-Netzwerke bilden, sodass die Abdeckung und der Stromverbrauch hervorragend sind.

Der Bau eigener Dimmer wäre jedoch teuer (die einzige Option, die ich finden konnte, war die Verwendung des Velleman K8064-Moduls - ~ 35 US-Dollar). Wenn Sie also einen Dimmer benötigen, würde ich entweder Insteon oder X10 verwenden. Ich habe ein paar X10-Lampenmodule in meinem Haus und um sie zu steuern, verwende ich die serielle X10 PRO-Schnittstelle PSC04 (für ~ 10 US-Dollar ist es schwer zu schlagen), die an Arduino ( X10-Bibliothek für Arduino ) angeschlossen ist.

Sudarkoff
quelle
Dies ist im Allgemeinen eine großartige Idee, aber ich bin mir nicht sicher, wie ich dies in eine Lösung für mein Problem umsetzen könnte. Leider brauche ich sowohl einen physischen Dimmer als auch eine externe Steuerung. Insteon passt die Rechnung, aber es ist ziemlich teuer. Wie ich bereits sagte, dachte ich darüber nach, Insteon-Schalter zu verwenden, aber ein Arduino zu verwenden, um Insteon-Signale abzufangen. Der Insteon-Controller, den Sie auf seiner Website kaufen können, ist primitiv und sehr teuer.
Kevin Mark
Ich habe ein paar X10-Lampenmodule in meinem Haus, die ich mit Arduino steuere, das an einen seriellen X10-Controller angeschlossen ist. (Hier ist die X10-Arduino-Bibliothek, die ich verwende: arduino.cc/en/Tutorial/X10 ) AFAIK, Insteon unterstützt X10, sodass Sie in der Lage sein sollten, dasselbe Ergebnis zu erzielen.
Sudarkoff
Tatsächlich. Das ist definitiv das, was ich tun werde, um anzufangen. Idealerweise würde ich das Insteon-Protokoll anstelle des alternden und unzuverlässigen X10 verwenden.
Kevin Mark
2

Wenn Sie trotzdem Kabel und neue Leuchten installieren möchten, würde ich die Installation von LED-Leuchten in Betracht ziehen. Sie sparen nicht nur langfristig Geld aufgrund niedrigerer Stromkosten, sondern auch Geld bei der Installation der Verkabelung. Da LEDs Spannungen unter 24 V verwenden, ist der elektrische Code sehr lasch. Sie müssen nicht an jeder Steckdose dicke (teure) Kupferdrähte installieren, sondern viel billigere 20-18 AWG-Kabel (ich habe sogar 23AWG in einem CAT6-Kabel verwendet). Es gibt viele Optionen für die Hochleistungs-LED-Ansteuerung von einem Arduino. Mein Favorit wäre dieser. Bis zu 128 können von einem einzigen Arduino aus gesteuert werden. Der Code zur Steuerung ist sehr einfach. Nachdem Sie dies getan haben, fügen Sie dem Arduino ein Ethernet-Schutzschild und ein grundlegendes Javascript hinzu. Die Steuerung Ihrer Lichter ist dann so einfach wie der Besuch einer Webseite auf einem Computer oder Smartphone. Sie können sogar eingehende Port 80-Anfragen an das Schild weiterleiten und es Ihnen ermöglichen, es zu steuern, während Sie nicht da sind (vielleicht um Gauner abzuschrecken). Außerdem hätten Sie eine unabhängige Dimmsteuerung für jedes Licht im Keller (wenn Sie beispielsweise einen Film ansehen, können Sie nur zwei Lichter hinten einschalten und sie wirklich dunkel lassen).

charliehorse55
quelle
Das ist eigentlich eine ziemlich gute Idee. Leider ist die Verkabelung bereits abgeschlossen, sodass eine selektive LED-Beleuchtung nicht mehr möglich ist. Ich werde dies für zukünftige Projekte berücksichtigen!
Kevin Mark
Die gesamte Leistung eines Stromkreises erfolgt über einen Schalter (um die Beleuchtung steuerbar zu machen). Könnten Sie nicht einfach das Arduino am Schalter platzieren und die dicke Verkabelung für die LEDs verwenden (Overkill, aber es würde immer noch funktionieren). Es sei denn, Sie haben bereits Leuchten / Glühbirnen gekauft?
Charliehorse55
Ich nehme an, das könnte funktionieren. Da ich sowohl "traditionelle" Dimmerschalter als auch eine Mikrocontroller-Steuerung haben muss, muss ich dann meine eigenen Wanddimmer herstellen, die sich in den Arduino einhängen?
Kevin Mark
Sie möchten sowohl traditionelle Glühlampen als auch LEDs vom Arduino aus betreiben? Leicht gemacht. Die meisten dieser 6-Dollar-Dimmer, die Sie im Baumarkt kaufen können, verwenden einen 10k-Topf für das Dimmer-Zifferblatt. Öffnen Sie das Gerät und ersetzen Sie die Kabel für den 10k-Topf durch Kabel für einen digitalen Topf. Der digitale Pot kann vom Arduino über I2C gesteuert werden. Wenn es ein einfaches Ein- / Ausschalten ist, können Sie mit dem Arduino einen 5-V-Mosfet ansteuern, um eine 24-V-Steuerung für einen Magneten anzusteuern.
Charliehorse55
Gut zu wissen. Wenn ich LED-Leuchten implementiere, werde ich wahrscheinlich diese oder eine ähnliche Methode verwenden.
Kevin Mark
2

Ich habe für eine Firma gearbeitet, die druckknopfgesteuerte Dimmer hatte. Sie müssen alle Wandschalter durch Drucktasten mit einem Schließerkontakt (normalerweise offen) ersetzen. Der Vorteil ist, dass Sie einfach alle Kontrollpunkte parallel schalten und dem Mikrocontroller ein einziges logisches Signal zuführen können. Sie können die Versorgungsspannung des Mikrocontrollers und einen Pull-up-Widerstand verwenden, aber besonders bei langen Drähten werden Sie viel Rauschen wahrnehmen und möglicherweise auch einen Spannungsabfall haben. Lassen Sie die Drucktasten besser mit einer höheren Spannung (z. B. 24 V) laufen und teilen Sie diesen Pegel entsprechend dem des Mikrocontrollers.

Eine mögliche Funktionsweise:
Wenn Sie eine Taste länger als beispielsweise eine halbe Sekunde drücken, wird ein Dimmzyklus (erneut) gestartet. Solange eine Taste gedrückt wird, werden Sie mit einer bestimmten Geschwindigkeit gedimmt, warten eine Sekunde auf den Maximalwert und beginnen mit dem Dimmen, bis sie ausgeschaltet sind. Danach startet der Zyklus neu. Der Mikrocontroller muss sich nicht nur den aktuellen Pegel merken, sondern auch, ob die letzte Aktion oben oder unten war.
Durch kurzes Drücken der Taste (weniger als eine halbe Sekunde) wird zwischen Aus und dem letzten gedimmten Wert umgeschaltet.

Dies ist nur eine mögliche Funktionalität. Sie können dies ändern. Beachten Sie jedoch, dass Sie nur einen Impuls (variabler Länge) als Signal haben.

stevenvh
quelle
Ich mag die Idee und es ist eine interessante Art, es zu tun, aber es wird ein bisschen zu teuer (zeitlich) für die Verwendung in meinem Keller. Herkömmliche Dimmer, die X10 oder INSTEON verwenden können, scheinen die günstigste Lösung für mein Projekt zu sein.
Kevin Mark
@ Kevin - ehrlich gesagt finde ich es selbst nicht die benutzerfreundlichste Lösung, aber das Produkt meines früheren Arbeitgebers scheint sich gut zu verkaufen. Hauptgrund ist wahrscheinlich die einfache Verkabelung und kein Bedarf an Intelligenz außerhalb des Dimmers.
Stevenvh
Ich bin damit einverstanden, dass es alles andere als benutzerfreundlich oder intuitiv ist, aber ich finde es vom konzeptionellen Standpunkt aus interessant. Vereinfachen Sie das Backend im Wesentlichen, indem Sie den gesamten physischen Betrieb vereinfachen.
Kevin Mark
1

Vielleicht möchten Sie sich X10 ansehen. Ich habe es schon eine Weile nicht mehr verwendet, aber seit ich es das letzte Mal verwendet habe, weiß ich, dass es mindestens eine serielle Schnittstelle gab, vielleicht sogar eine drahtlose, damit Sie nicht wirklich an die Stromleitungen gehen müssen mit Ihrer Hardware. Es gibt (waren) Module, in denen Sie ein Relais geschlossen haben und ein Ein oder Alles ausschalten konnten. Für schwach oder hell benötigen Sie mehr Kontrolle.

Oldtimer
quelle
Ich denke, meine beste Wahl ist es, einen X10-kompatiblen Lichtschalter / Dimmer zu finden.
Kevin Mark