NALS: Network-Attached-LED-Stripe (Teil 1)

NALS – Network-Attached-LED-Stripe ist ein kleines Projekt um einen LED Stripe per Netzwerk steuern zu können. Mittlerweile sind diese Stripes sehr modern und günstig zu bekommen. Es gibt sie in diversen Ausführungen; einfarbig oder mehrfarbig, von wenigen Zentimetern bis mehrere Meter …

In diesem kleinen Projekt nutzen wir die farbige Variante mit 5m. Diese werden meist mit einer Infrarot Fernbedienung ausgeliefert. Über diese kann man die Farben als auch diverse Effekte des Gerätes steuern. Aber wie kann man das ganz nun aus dem Netzwerk her steuern? Und wofür?

Wofür?

Also mal abgesehen davon, dass man das ganze auch zu Hause nutzen könnte (Wohnzimmerbeleuchtung, Steuerung per iPhone oder sowas), war meine Idee eher in Richtung Monitoring bzw. Statusanzeige. Ganz konkret für Nagios und zur Signalisierung des Queue Status einer Telefon Warteschlange.

Beispiel

Die Signalisierung einer TelefonQueue ist bereits im Produktiven Einsatz. Anhand von Parametern wie angemeldete Agenten, Agenten im Gespräch, Agenten in Status Pause, wartende Anrufer … wird ein Verfügbarkeitswert errechnet. Dieser beschreibt wie viele Agenten effektiv verfügbar sind. Dieser Wert wird quasi in eine Farbe umgesetzt und den “Agenten” signalisiert, damit diese den Status der Queue kennen und ggf. entsprechende Maßnahmen ergreifen können.

also…

  • effektiv sind mehr als 1 Agent verfügbar -> grün
  • effektiv ist nur 1 Agent verfügbar -> gelb
  • effektiv ist kein Agent verfügbar -> rot
  • effektiv sind weniger als 0 Agenten verfügbar -> rot blinken

Für Nagios/Icinga würde man die Farben analog der Weboberfläche wählen.

Wie? Netzwerk -> Arduino -> Luft -> LED Stripe

Die Idee war am Ende, die Infrarot Fernbedienung durch ein Arduino Board zu ersetzen. Dieses Board wird mit dem Netzwerk verbunden und entsprechend angesprochen.

Für diejenigen die es nicht kennen: Das Arduino Board ist grob gesagt eine kleine Platine mit einem Controller und diversen I/O Ports. Es gibt diverse Erweiterungen – sogenannte Shields – für das Board. Mit diesen Shields werden die Fähigkeiten des Boards erweitert indem sie einfach aufgesteckt werden. Beispielsweise gibt es ein Ethernet Board – eine Netzwerkkarte für den Arduino. Programmiert wird der Arduino über eine eigene IDE (gibt es auf der Homepage) und USB Schnittstelle. Die verwendete Sprache ist recht simpel und lehnt sich an C an. Im Gegensatz zum RasperryPi läuft auf dem Arduino also kein richtiges Betriebssystem sondern lediglich ein “Script”. Das ganze nennt sich OpenSource Hardware. Die Spezifikationen für die Hardware sind frei verfügbar, die Software ist frei verfügbar. Es gibt eine große Community mit vielen interessanten Projekten. Dabei sind viele Projektbeschreibungen inkl. Schaltplänen etc. im Internet zu finden. Arduino ist recht günstig – ein Board kostet ca. 25€.

Warum denn überhaupt mit dem Arduino? Geht das nicht einfacher? Gibt es nicht schon was fertiges? Also ich hab nicht wirklich etwas gefunden. Anfangs dachte ich es müsste doch eine LED Steuerung über USB geben oder direkt über Netzwerk … aber nööö (oder in Preisregionen die es einfach uninteressant machen). Am Ende gefiel mir die Idee mit dem Arduino am besten, da es extrem flexibel ist – man programmiert es selbst – und es auch möglich ist mehrere dieser LEDs gleichzeitig zu steuern. Nebenbei war es auch sehr interessant sich genauer mit dem Arduino zu beschäftigen ;-).

Zusammengefasst: Das Arduino Board hängt im Netzwerk und wartet auf Befehle. Über einen Infrarot Sender am Arduino werden die Befehle (gewünschter Status der LEDs) an das LED Stripe weitergegeben. Am Ende kann der Arduino-Sender beispielsweise in der Netzwerkdose an der Wand eingesteckt sein und der LED Stripe an der Decke hängen. Mehrere – gleiche – Stripes können angesteuert werden … es müssen lediglich die Empfänger in Reichweite des Senders sein ;-)

Teile

  • 1x RGB LED Stripe mit Netzteil und Infrarot Fernbedienung
  • 1x Arduino Ethernet Board (ein Arduino mit integriertem Ethernet Shield; Achtung! USB2Serial Adapter nicht vergessen, da das Arduino Ethernet Board keinen direkten USB Anschluss hat)
  • (Alternativ ein Arduino + Ethernet Shield, dann ohne USB2Serial Adapter)
  • 1x Infrarot Empfänger (Standard Bauteil, bspw. von Conrad; wir hatten eines mit 950nm)
  • 1x Infrarot Sender Diode (Standard Bauteil, bspw. von Conrad; ebenfalls 950nm)
  • 1x 100 Ohm Widerstand
  • ein passendes 5V Netzteil für den Arduino (z.B. alte FritzBox o.ä.)

Schritte

  1. Infrarot Codes herausfinden, die der Empfänger des LED Stripes erwartet
  2. Sender programmieren (und bauen), Status per Script setzen

Im nächsten Artikel: Herausfinden der Infrarot Codes

10 Responses to NALS: Network-Attached-LED-Stripe (Teil 1)

  1. morgulbrut

    Einfach so als Frage. Wieso willst du die Teile über IR ansteuern? Hast du den ganzen Krempel schon bestellt? Soweit ich weis gibts auch für einiges weniger nur die LED-Strips zu kaufen. Die Farbsteuerung geht dann supersimpel über PWM.

    • Ronny

      Also ehrlich gesagt war das unser erster Plan. Damit kannte sich allerdings niemand aus und so sind wir auf die Idee mit Infrarot gekommen. Im Nachhinein muss ich sagen gefällt mir die auch besser für unsere Anforderung. Der Sender ist am Boden und die LED Leiste fast an der Decke.
      Auch – falls gewünscht – muss man sich nicht um die Effekte kümmern ;-)

      Solltest Du Infos haben wie man den anderen weg realisieren kann, dann würde mich das durchaus interessieren.

      • morgulbrut

        Also ich denk mal die IR Variante ist einiges schwieriger, da müsst ihr ja erst mal rausfinden was denn nun genau gesendet wird. Und wie sich das auf andere LED-Streifen übertragen lässt?

        Die Idee: über drei PWM-Ausgänge werden drei Transistoren geschaltet. An denen hängen dann der R,G und B Kanal des LED-Streifen. Ich kenn euren El-Tech Hintergrund nicht, aber letzlich ist ein PWM nix anderes als ein Rechtecksignal mit einem variablen Tastverhältnis (High zu Low). Dadurch wird lässt sich die durchschnittliche Leistung steuern, und damit die Helligkeit der R, G und B LEDs (RGB sind ja “nur” drei LEDs in einem Gehäuse).

        Hier noch ein gutes Tutorial auf Adafruit, inkl. Berechnungen http://learn.adafruit.com/rgb-led-strips/overview

      • Ronny

        Ich habe mir das mal angeschaut. Also ehrlich gesagt ist die IR Variante gar nicht so kompliziert. Das Problem bei unseren Überlegungen war, dass wir nicht wussten wie wir die 12V mit genügend Leistung an die LEDs bekommen. Laut dem Tutorial geht das mit den Mosfets. Wie hab ich allerdings auch nicht so ganz verstanden – ich bin kein Elektroniker ;-) Die Fragen von wegen reicht die Leistung, kann was überlastet sein … kann man sich mit der IR Methode komplett sparen.
        Ich denke beides hat seine Vor- und Nachteile :-)

      • morgulbrut

        Hab jetzt den Teil 2 überflogen. Dachte nicht dass es so problemlos geht ;) Eure Methode ist wohl doch einfacher. Hab da noch so ne RGB-LED Glühbirne rumfliegen, ich denke die wird bei Gelegenheit auch mal irgendwie verwendet ;).

        Ein Vorteil beim direkten Ansteuern ist sicher das sich direkt ein RGB Wert einstellen lässt. Aber vieleicht versteht das Teil ja auch mehr Befehle als die Fernbedienung senden kann ;).

      • Ronny

        Damit könntest Du sogar Recht haben. Es gibt auch Varianten mit Fernbedienungen die weitaus mehr Funktionen haben. Ich könnte mir vorstellen dass der Empfänger der gleiche ist und nur die FB eine andere.

  2. eck

    Sehr schön! Das geht nämlich genau in eine Richtung eines meiner ToDo-Projekte:

    - Ich möchte eine Ambilight-Ansteuerung aus dem VLC-Player nutzen bzw. dessen Atmo Modul.
    - Dazu habe ich diese billige Test-Hardware gefunden:
    LED RGB Lampe: Trophies Cocoon (E27, 5W, mit Fernbedienung)
    – Keine gute lampe, aber für den ersten Versuch genug.
    – Diese Lampe kann per Fernbedienung auf 15 Farben eingestellt werden.

    Und da kommt Dein Projekt mit der Lichtansteuerung per Fernbedienung nun ins Spiel. Ich werde das bei Dir mal beobachten und falls ich mit dem Projekt anfange, meine Erfahrungen mitteilen.

    Siehe dazu auch:
    - https://de.wikipedia.org/wiki/Ambilight

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>