Lichtsteuerung

Im Chaosdorf ist seit zwei Wochen eine Lichtsteuerung fest installiert. Dieser Artikel soll zeigen, dass so etwas selbst zu bauen deutlich einfacher ist, als man sich anfangs vorstellt, und noch nichtmal nennenswerte Geldmengen benötigt.

Grundsätzlich gibt es nur drei Voraussetzungen:

  • Eine Möglichkeit, Ausgänge digital zu schalten
  • 230V-Relais vor den zu schaltenden Verbrauchern
  • Keine Angst vor Netzspannung

In unserem Fall sind diverse Raspberry Pies schon für andere Zwecke im Raum vorhanden, so dass wir einfach ein paar GPIO-Pins für Lichtsteuerungszwecke benutzen können. Wer keinen Raspberry Pi zur Hand hat, kann genau so gut eine r0ket, einen Arduino oder beliebiges anderes AVR- / ARM-Gefrickel benutzen. Solange man irgendwie Daten reinkippen und digitale Ausgänge rauskriegen kann, ist alles möglich.

Da ein Raspberry Pi nur 3.3V und sehr geringe Ströme schalten kann und keinen Schutz gegen Kurzschluss oder Überspannung besitzt, sind die GPIO-Pins nur mit Optokopplern verbunden. Diese sorgen für eine galvanische Trennung von der 12V-Schaltspannung, so dass Verdrahtungsfehler schlimmstenfalls ein paar Transistoren oder AVRs töten, und nicht die deutlich teureren Raspberry Pies.

In der ersten Version hat jeder GPIO-Pin genau einen Verbraucher gesteuert, d.h. jeder Pin führt zu einem Optokoppler, der seinerseits 12V und einen Transistor (bis 700mA Schaltstrom) kontrolliert. An diese 12V kann man dann entweder ein Relais oder direkt einen Kleinverbraucher (LEDs etc.) hängen. Die Schaltung ist extrem simpel und funktioniert entsprechend gut, hat aber den Nachteil, dass man die verfügbaren GPIO-Pins (Pro Gerät 12 Stück ohne Sonderfunktionen und 9 mit) irgendwann alle belegt hat, und nicht 30€ für einen weiteren Raspberry Pi ausgeben möchte, nur um 12 weitere Verbraucher zu schalten.

Der einfachste Ansatz, um mehr Verbraucher steuern zu können, ist ein Schieberegister — Es braucht 4 Dateneingänge und kann damit (da Schieberegister auch einen seriellen Ausgang haben und dadurch verkettbar sind) beliebig viele Ausgänge schalten. Alternativ nimmt man sich einen kleinen AVR (z.B. ATTiny2313) zur Hand und implementiert ein Schieberegister in Software, das nur noch zwei Eingänge (einmal Daten, einmal Takt, und eine spezielle Daten+Takt-Kombination um die eingegebenen Daten auf die Ausgänge zu übernehmen) braucht. Das Protokoll ist sehr an I2C angelehnt und sowohl im AVR als auch auf dem Raspberry Pi sehr leicht zu implementieren. Vorteil beider Varianten ist, dass man die Optokoppler schon vor dem Schieberegister anbringen kann, so dass man nur noch zwei bzw. vier Stück braucht. AVRs und Schieberegister sind dank DIP-Sockeln schnell austauschbar, falls mal etwas schiefgeht.

Mit einem dieser Ansätze hat man nun 12V, die meisten Lampen, Drucker und sonstige Geräte bevorzugen aber 230V. Was noch fehlt, ist also ein Kabel von der Schalthardware zum Verbraucher, und dort ein 230V-Relais mit ausreichender Schaltleistung. Falls das Relais auf eine geätzte Platine gelötet ist, ist dabei der Sicherheitsabstand zwischen einzelnen 230V-Leiterbahnen und v.a. auch zwischen 230V- und 12V-Bahnen zu beachten (5mm sind empfehlenswert), im Falle einer Loch- oder Streifenrasterplatine sollten unbedingt die Kupferflächen zwischen Leiterbahnen mit einem Messer abgeschabt werden. An die 12V-Seite kommt ein langes Kabel und parallel dazu eine Diode in Sperr-Richtung (um die Spannungsstöße, die die Relaisspule beim ausschalten produzieren kann, abzufangen), auf die 230V-Seite eine einfache Schraubklemme. Bei fest installierten Verbrauchern reicht es, die Phase zu schalten, Erde und Nullleiter können permanent verbunden sein. Die ganze Konstruktion kommt dann in eine Aufputz-Verteilerdose, wird irgendwo festgeschraubt und fertig.

Die Materialkosten halten sich erstaunlich gering:

  • 30€ für einen Raspberry Pi
  • Erste Version: <1€ pro Verbraucher für die Steuerschaltung (Platine, Optokoppler, Transistor, Anschlussklemme)
  • Mit Schieberegister: <6€ pro 12 Verbraucher (Platine, 2 Optokoppler, ATTiny2313, Transistoren, Widerstände, Anschlussklemmen)
  • Ca. 5€ pro Verbraucher für Kabel, Relais und Verteilerdose

Ein paar Fotos und Schaltpläne finden sich in der Gallerie, die Steuersoftware bekommt später einen eigenen Blogpost.

C++-User-Group Treffen im Chaosdorf am Mi, 20.03.2013

Am Mi. den 20. März trifft sich die C++ User-Group NRW und Interessierte zu einem Themenabend zu C++.

Der Talk wird ein einfaches Beispiel für einen simplen Allokator liefern, aber auch zeigen wie man einen Allokator für Shared Memory implementieren kann. Diesen Talk wird es in leicht anderer Form auch auf der ACCU geben!

Ab 19 Uhr beginnt das Treffen im Chaosdorf, der Talk beginnt dann um 20 Uhr.

Für die Privatsphäre demonstriert

Heute fanden an vielen Orten auf der Welt Aktivitäten zum Internationalen Tag für die Privatsphäre statt. In Europa, Südamerika, USA und Australien gingen die Menschen auf die Straße, um auf ihr Recht auf Privatsphäre aufmerksam zu machen. Dem haben wir uns angeschlossen und eine Demonstration in Düsseldorf angemeldet.

Unserem Aufruf folgten etwa 60 Menschen aus unterschiedlichen Gruppierungen, die der Auftaktkundgebung lauschten und sich zu einem Demonstrationszug durch die Stadt aufmachten. In der Vorbereitung war uns nicht klar, wie viele Menschen auftauchen werden und wir hatten auf eine größere Gruppe gehofft. Angesichts der Dezentralität und der niedrigen Temperaturen verstehen wir jedoch die für Düsseldorfer Verhältnisse relativ kleine Gruppe, auch verglichen mit der Demonstration gegen Acta im vergangenen Sommer, die Tausende auf die Straße brachte.

Den Anfang machte ein Mitglied unseres Clubs, mit einer Erklärung zu unserer Motivation. Bei einem Zwischenstopp gab ein Vertreter der PARTEI eine Rede, am Ende sprachen drei Menschen ihre eigenen Ansichten zur Thematik vor der Gruppe aus. Außer den üblichen Guy-Fawkes-Masken waren Fahnen der Piratenpartei und FAU sichtbar. Der Nachmittag verlief ohne Zwischenfälle.

idp13_02