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
kompiliert leider noch immer nicht:
1 | LEDLamp:44: error: 'IRrecv' does not name a type |
2 | |
3 | IRrecv irrecv(PIN_RECV_IR); |
ohne diesen "Fix":
1 | #include <IRrecv.h> |
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
cool, danke! Kompiliert auf Anhieb, werde jetzt mal was zusammenstöpseln und ausprobieren...
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.