Hallo zusammen,
wer Interesse an einer smarten LED-Lampe hat, findet hier Code und
Hobbybastler-kompatible Bauanleitung. Funktioniert vom Prinzip natürlich
auch mit anderen Lampen(formen):
https://github.com/ghmartin77/SmartLEDLamp
Features:
- Einfarbig im vollen RGB-Farbraum (8 Bit/Kanal, allerdings
eingeschränkt auf die Leuchtfähigkeiten der verwendeten Stripes, die
sicher nicht volle 8 Bit Differenzierung hergeben)
- Diverse, konfigurierbare Farbanimationen: Feuer, Lava-Lampe, Blobs,
Regenbogen... (VU Meter vorbereitet aber im Code auskommentiert)
- Steuerbar per IR-Fernbedienung oder Weboberfläche (läuft im ESP)
- Durch simple Web-API auch einfach in Home Automation Tools wie OpenHAB
integrierbar.
Viele Grüße
ghmartin77
das hier kann man dann weglassen, da dann automatisch gezogen:
//#include <IRremoteESP8266.h>
womit baust du das ganze? In der Doku steht ja nur "compile & upload"...
:)
Die Arduino-IDE jedenfalls will das so wie oben haben; kann mir aber
kaum vorstellen, dass andere IDEs das irgendwie automagisch hinbekommen.
Baue mit Eclipse und ArduinoCDT-Plugin.
Für die ArduinoIDE sollte kompilieren aber auch gehen, wenn man
LEDLamp.cpp in SmartLEDLamp.ino (oder wie auch immer passend zum
enthaltenen Ordner) umbenennt.
Dein Compile-Fehler liegt an der "falschen" Lib; s. Doku:
IRemoteESP8266 - https://github.com/sebastienwarin/IRremoteESP8266
Hatte bei meiner ersten Antwort (im anderen Thread) leider etwas zu fix
auf die markszabo-Variante geschossen. Hatte seinerzeit aber die oben
und in der Doku genannte Variante genommen (mittlerweile hat die andere
aber für die ESP8266-Unterstützung nachgezogen, so dass man drauf
portieren könnte).
Grüße
ghmartin77
ghmartin77 schrieb:>> Dein Compile-Fehler liegt an der "falschen" Lib; s. Doku:> IRemoteESP8266 - https://github.com/sebastienwarin/IRremoteESP8266
s. Screenshot ;-)
Und das dürfte auch die "gepflegte" Version sein...
>> Hatte bei meiner ersten Antwort (im anderen Thread) leider etwas zu fix> auf die markszabo-Variante geschossen. Hatte seinerzeit aber die oben> und in der Doku genannte Variante genommen (mittlerweile hat die andere> aber für die ESP8266-Unterstützung nachgezogen, so dass man drauf> portieren könnte).>> Grüße> ghmartin77
Jan L. schrieb:> s. Screenshot ;-)>> Und das dürfte auch die "gepflegte" Version sein...
Jepp, Recht hast Du...
Und den Fork, den ich von sebastienwarin genommen habe, scheint (heute)
steinalt zu sein: Gemäß Github "277 commits behind markszabo:master" :)
Die kompiliert allerdings problemlos mit dem Code wie im Repository
(i.e. mit IRemoteESP8266.h-Include, aber ohne IRrecv.h-Include)
Vielleicht ist die von Dir beschriebene Änderung alles, was man tun
muss, um auf die frische markszabo-Lib zu migrieren. Wenn Du bestätigen
kannst, dass das läuft (nicht nur kompiliert), aktualisiere ich gern
Code und Doku.
Grüße
ghmartin77
ghmartin77 schrieb:> Jan L. schrieb:>> s. Screenshot ;-)>>>> Und das dürfte auch die "gepflegte" Version sein...>> Jepp, Recht hast Du...>> Und den Fork, den ich von sebastienwarin genommen habe, scheint (heute)> steinalt zu sein: Gemäß Github "277 commits behind markszabo:master" :)>> Die kompiliert allerdings problemlos mit dem Code wie im Repository> (i.e. mit IRemoteESP8266.h-Include, aber ohne IRrecv.h-Include)> Vielleicht ist die von Dir beschriebene Änderung alles, was man tun> muss, um auf die frische markszabo-Lib zu migrieren. Wenn Du bestätigen> kannst, dass das läuft (nicht nur kompiliert), aktualisiere ich gern
Habe leider keinen WS2801 zur Hand, da läuft also derzeit noch nix...
Und auf LPD8806 umstellen scheint für mich eine Nummer zu gross zu sein,
da du neben der FastLED Lib ja auch noch die von Adafruit einsetzt, und
zwar deren netten Matrix-Modus. Den gibt‘s sonst wohl eher selten.
Da muss ich wohl mal einen 2801 bestellen.
> Code und Doku.>> Grüße> ghmartin77
Jan L. schrieb:> Und auf LPD8806 umstellen scheint für mich eine Nummer zu gross zu sein
Ist doch nur Code... No Respect :) Probier einfach mal rum... Patch
anbei könnte tun... (Rotation-Feature der LEDMatrix-Klasse ist
allerdings kaputtgeschrieben und vermutlich musst du den Code passend zu
deiner Stripe-Montage justieren, aber das sieht überschaubar aus).
Good Luck!
Grüße
ghmartin77
Kurze Rückmeldung: Funktioniert ‚im Prinzip‘ (mit LPD8806)!
- musste Fastled von RGB auf GRB umstellen, dann liessen sich die
richtigen Farben auf der virtuellen Remote einstellen
- in config.html reagiert blau bei der Kalibrierung irgendwie gar nicht,
bleibt dunkel
- bei einigen Effekten ist mir unklar, ob das so richtig ist, oder bei
der Ansteuerung am Stripe noch bissel entstört werden müsste :). In der
Doku werden ja ‚resistors and caps‘ erwähnt, leider nicht, wofür genau
die sich empfehlen würden. Das Bild der Rückseite der Platine hilft
leider nicht wirklich...
(allerdings ist der Stripe bri mir noch am Stück, daher werden einige
Effekte eh‘ noch nicht richtig erkennbar sein)
Habe bislang einfach nur Data und Clock per Pullup auf 5V gelegt, das
scheint soweit zu tun...
Cool, freut mich :)
Zur Beschaltung guck doch mal hier:
https://github.com/ghmartin77/SmartLEDLamp/tree/master/PCB
Caps und Resistors hab ich nur zur Spannungsstabilisierung respektive
Anschluss des IR-Sensors genutzt. Die Stripes hängen über einen
Level-Shifter direkt an den Pins des ESPs (allerdings WS2801). Sollte
für die LPDs genauso gehen. Je nachdem, wieviel Widerstand Du beim
Verlöten der LED-Streifen (an Clock und Data) "einbaust", kannst Du das
ganze auch ohne Levelshifter ohne Probleme betreiben. Data und Clock auf
High zu ziehen hab ich in noch keinem Verschaltungsplan gesehen. Sicher,
dass das so soll?
Ob die Darstellung der Effekte richtig ist, wäre noch rauszufummeln...
Wenn Du allerdings die "Reinfarben" Rot, Grün, Blau sauber dargestellt
bekommst, dann ist der Rest (sollte da noch was verschoben sein/auf dem
Kopf stehen) nur noch ein bissel Mathe in LEDMatrix::update().
Apropos Mathe: Der Code ist auf 4 Streifen a 40 LEDs ausgelegt (i.e.
eine 5m Rolle mit 160 LEDs geht genau auf). Ist das für Deine LPDs die
gleiche Menge?
Thema Kallibrierung: Hab gerade mal durch den Code gestöbert. Warum Blau
nicht funktionieren sollte, erschließt sich mir noch nicht. Guck ich mir
später mal an...
Grüße
ghmartin77
ghmartin77 schrieb:> Cool, freut mich :)>> Zur Beschaltung guck doch mal hier:> https://github.com/ghmartin77/SmartLEDLamp/tree/master/PCB
ah, hatte ich übersehen, danke...
(wobei der "Schaltplan" wohl mit Vorsicht zu geniessen ist - zumindest
der IR-Anschluss sieht bissel buggy aus...;-)
> Caps und Resistors hab ich nur zur Spannungsstabilisierung respektive> Anschluss des IR-Sensors genutzt. Die Stripes hängen über einen> Level-Shifter direkt an den Pins des ESPs (allerdings WS2801). Sollte> für die LPDs genauso gehen. Je nachdem, wieviel Widerstand Du beim> Verlöten der LED-Streifen (an Clock und Data) "einbaust", kannst Du das
Der LPD klappt wohl auch "regulär" mit 3.3V
> ganze auch ohne Levelshifter ohne Probleme betreiben. Data und Clock auf> High zu ziehen hab ich in noch keinem Verschaltungsplan gesehen. Sicher,> dass das so soll?
Nee, das hat nix gebracht - ist wieder weg.
>> Ob die Darstellung der Effekte richtig ist, wäre noch rauszufummeln...> Wenn Du allerdings die "Reinfarben" Rot, Grün, Blau sauber dargestellt> bekommst, dann ist der Rest (sollte da noch was verschoben sein/auf dem> Kopf stehen) nur noch ein bissel Mathe in LEDMatrix::update().> Apropos Mathe: Der Code ist auf 4 Streifen a 40 LEDs ausgelegt (i.e.> eine 5m Rolle mit 160 LEDs geht genau auf). Ist das für Deine LPDs die> gleiche Menge?
Ja, hatte mich zwar erst verzählt (und einen neuen #define LED_NUM
eingeführt), letztlich sind's aber auch zufällig 160 LEDS.
>> Thema Kallibrierung: Hab gerade mal durch den Code gestöbert. Warum Blau> nicht funktionieren sollte, erschließt sich mir noch nicht. Guck ich mir> später mal an...
Bin nicht sicher, ob das so gewollt ist, aber offenbar muss man vor
dem Aufruf der config.html (zum Kalibieren) erstmal in der control.html
auf "weiss" stellen. Ich hatte wohl zuerst irgendwas anderes aktiv, und
dachte, die config.html stellt beim Kalibrieren automatisch was
Sinnvolles ein. Ist wohl nicht so, daher fehlte zufällig dann blau.
Mit "weiss" vorher eingestellt, klappt das nun.
Jan
>> Grüße> ghmartin77