über das Anfertigen kleiner praktischer Gegenstände, das manuelle Bearbeiten von Materialien und den damit verbundenen Umgang mit gefährlichen Werkzeugen

PhotonLamp – Designerlampe mit WS2812b LEDs und MQTT Anschluss

Vor einigen Jahren haben wir eine Designer Lampe erstanden deren Lampenschirm die Form einer Zigarre aus Milchglas hatte. Uns gefiel dabei das spezielle Design des Schirms und die allgemeine Erscheinung.

Fertige Lampe

Das Licht der Lampe war zwar über einen Fußschalter dimmbar, allerdings auch sehr ungleichmäßig, da im inneren der Lampe nur fünf Kerzenbirnen entlang einer Stange verteilt waren. Bei der hellsten Einstellung des Lichts schienen sogar die einzelnen Birnen durch. Irgendwann liefen mir mal WS2812b LED Streifen über den Weg und schnell war die Idee geboren: Die Lampe sollte „entkernt“ und die Old-School Beleuchtung aus E14 Glühbirnen durch High-Tech RGB LEDs ersetzt werden. Um den WAF zu erhöhen sollte sie natürlich auch an die openHAB Heimautomatisierung angebunden werden. Als spezielles Gimmick kommt am oberen Ende noch ein Ultraschall-Sensor zum Einsatz über den man durch „Hand auflegen“ die Helligkeit der Lampe regeln kann.

 

Teil 1: Die neuen „Innereien“ der Lampe – Stückliste

Sockel der Lampe mit Photon in Gehäuse

Fertige Lampe – ohne Schirm

Da ich schon ein paar Projekte mit dem Photon-Microcontroller von Particle (https://particle.io) gemacht habe, kommt dieser auch hier zum Einsatz. Insgesamt habe ich für das Projekt die folgenden Teile verwendet:

  • 1x 90cm Rohr mit einem M6 Gewinde an einem Ende
  • 1x Particle Photon
  • 1x HC-SR04 Ultraschall-Sensor
  • 1x AC/DC 5V/2A Netzteil mit Klinkenstecker
  • Klinkenbuchse für den Einbau in den Sockel der Lampe
  • 4x WS2812b LED Streifen mit 27 LEDs (Dichte: 30 LEDs/m, 3m Länge)
  • 1x Designer Lampe

Teil 2: Die Verkabelung

Schaltplan

Wie man an der Skizze sehen kann, ist die Verkabelung relativ einfach: Das Netzteil wird mit den VIN und GND am Photon sowie mit + und – am unteren Ende des ersten LED Streifens. Auch der HC-SR04 Sensor wird mit den entsprechenden Pins an den Strom angeschlossen, der Pin TRIGGER mit dem Pin D2 und der Pin ECHO mit dem Pin D3 am Photon verbunden. Der DI (=“Data In“) am ersten LED Streifen wird mit dem Pin D4 am Photon verbunden.

Teil 3: Der „harte“ Teil – Zusammenbau

Altes „Innenleben“

Stromanschluss im Sockel

Hier ist nochmal das Original des Innenlebens zu sehen mit den fünf E14 Fassungen für die Kerzenbirnen. An die Stelle dieses Gestänges tritt ein gleich langes Rohr, welches mit seinem M6 Gewinde an dem einen Ende in den Sockel der Lampe geschraubt werden konnte.

Auf dem rechten Bild sieht man eine Detailaufnahme des neuen Stromanschlusses der Lampe. An dieser Stelle wurde im Original das 220V Kabel vom Fuß-Dimmer in den Sockel zu den E14 Fassungen geführt. Das Loch im Sockel hat genau die richtige Größe zur Aufnahme einer 2,5mm Klinkenbuchse.

 

 

 

 

Ultraschall Sensor

An das neue Rohr habe ich vier LED Streifen mit jeweils 27 WS2812b LEDs angebracht. Da die Streifen selbstklebend sind, musse ich sie nur an ein paar Stellen mit Kabelbindern fixieren, so dass sie auch dauerhaft halten. Ganz oben auf dem Rohr kann man im Bild links den HC-SR04 Sensor erkennen, dessen Anschlusskabel werden in dem Rohr nach unten geführt und dort an Strom und Controller angeschlossen. Die vier Streifen sind im Zick-Zack verbunden, d.h. an dem ersten Streifen ist unten an DI der Photon und an +/- das Netzteil angeschlossen, am oberen Ende werden DO vom ersten Streifen mit DI des zweiten Streifens sowie +/- beider Streifen miteinander verbunden. Bei Streifen zwei wird dann unten DO mit DI von Streifen drei verbunden usw.

Der Ultraschall Sensor ist übrigens bei aufgesetztem Lampenschirm nicht mehr sichtbar, da das neue Rohr etwas unterhalb der Oberkante des Schirms endet.

 

Teil 4: Der „weiche“ Teil – Firmware auf Github

Ultraschall Sensor

Die Firmware zu diesem Projekt habe ich auf Github veröffentlicht:

https://github.com/happenpappen/PhotonLamp

Sie kann sicherlich einfach für ähnliche Projekte mit wenigen Anpassungen verwendet werden. Für die Anbindung an einen MQTT Server muss im Unterordner „src“ die Datei „MQTT_credentials.h“ mit diesen Einträgen angelegt werden:

#define MQTT_HOST ""
#define MQTT_USER ""
#define MQTT_PASSWORD ""

Für das Aufsetzen z.B. eines Mosquitto Servers auf Raspian oder in einem Docker Container gibt es zahlreiche Anleitungen, die man leicht mit der bevorzugten Suchmaschine finden kann, daher spare ich mir das an dieser Stelle…

Teil 5: Die Firmware – Funktionen über MQTT

Ich verwende einen Docker Container mit Mosquitto (http://www.mosquitto.org) auf einer QNap NAS als MQTT server. Die Nachrichten sind so aufgebaut, dass die Firmware Nachrichten mit der Device ID des Photons veröffentlicht und auch unter dieser Nachrichten erwartet:

/[device id]/#

Wenn man mit „mosquitto_sub“ dieses Topic abonniert, sollte man Nachrichten wie folgt sehen, wenn sich der Photon erfolgreich verbinden konnte:

/[device id]/state/DisplayMode 8
/[device id]/state/Brightness 250
/[device id]/state/ForgroundColor 100,023,014
/[device id]/state/BackgroundColor 034,006,034
/[device id]/state/MaxDistance 92
/[device id]/state/LastDistance 92
/[device id]/state/CurrentDistance 92
/[device id]/state/FirmwareVersion 0.6.3

Da ich ab und an an der Firmware schraube, können sich die Ausgaben von Version zu Version unterscheiden – „Use the source Luke“ ;-)…

Der Spaß geht los, wenn man über MQTT Nachrichten der Form:

/[device id]/set/[parameter] [value]

versendet.  Darüber lässt sich das Lichtmuster sowie eine Vordergrund- und eine Hintergrundfarbe setzen.

  • Um die Farben zu ändern:
/[device id of Particle Photon]/set/ForgroundColor/[red],[green],[blue]
/[device id of Particle Photon]/setBackgroundColor/[red],[green],[blue]

Anstelle von [red], [green] und [blue] müssen die Dezimalwerte der gewünschten Farbe eingesetzt werden.

  • Um das angezeigte Muster auszuwählen lautet die Nachricht:
/[device id of Particle Photon]/set/DisplayMode [value between 1 and 11]

Derzeit gibt es die folgenden Muster, die teilweise leicht angepasste Demos aus der verwendeten FastLED Bibliothek sind:

  1. Noise
  2. RainbowCycle
  3. NoisePlusPalette
  4. SingleColor
  5. Cylon
  6. Rain
  7. Fire
  8. HorizontalSplit
  9. HorizontalDoubleSplit
  10. VerticalSplit
  11. Spiral (wird noch entwickelt)
  • Um die Helligkeit zu setzen:
/[device id]/set/Brightness [value between 1 and 100]

Wobei der schönere Weg die Helligkeit einzustellen, natürlich das „Hand auflegen“ ist ;-).

1 Kommentar

  1. Fab

    Cooles Projekt! Gefällt mir. Sogar der WAF wurde beachtet. 😀

Schreibe einen Kommentar

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