De out-of-the-box ondersteuning van RGB ledstrips in Domoticz is helaas teleurstellend. Met deze blogpost laat ik je zien hoe je RGB ledstrips toch goed kunt implementeren in je domotica systeem en smart home!

Schakel je RGB(W) ledstrip in, verander de kleur en felheid vanuit domoticz met behulp van een simpele schakeling, WiFi en ESPeasy!

Benodigdheden voor het aansluiten van een RGB LED strip op een ESP8266

Er zijn enorm veel soorten en maten ledstrips te koop. Vaak zijn het 5 meterse RGB ledstrips. Ze zijn te koop bij de Aldi, Lidl, Action, Kruidvat, Trekpleiser, bol.com en natuurlijk gewoon de bouwmarkten. Ze zijn tegenwoordig overal wel te koop.

Voorbeeld van mijn RGB ledstrip die ik gebruik in combinatie met een ESP8266 en Domoticz

De inhoud van de verpakking bevat vaak een stekkeradapter (Let op! niet altijd, er zijn ook alleen strips te koop om bijvoorbeeld je set die je al hebt uit te breiden!) en een aansturingskastje met afstandbediening met presets van kleuren. Met de oplossing die we gaan maken hebben we uiteindelijk alleen de ledstrip nodig en de adapter. De besturing zal via domoticz, icm ESPeasy en WiFi lopen. Dus, om de ledstrip met WiFi te besturen en toe te voegen aan je (Domoticz) domotica systeem, heb je nog nodig:

Bestel maar, bestel maar, bestel maar….

  • Wemos D1 mini, een ESP8266 WiFi chip met USB2serial converter op een compact bordje. Je hoeft alleen maar te verbinden met USB, eenmalig software te installeren (flashen). Werkt daarna volledig via WiFi. Gaat automatisch in flash mode enz.. Vergeet niet dat je een micro USB kabel nodig hebt.
Wemos D1 mini ESP8266
  • 3 stuks TIP31C transistoren, voor iedere kleur één stuks. Het is ook handig om koellichaampjes mee te bestellen. Maak je gebruik van een RGBW strip, dan heb je er dus 4 nodig, heb je een warmwitte of een andere enkele kleur ledstrip, dan heb je maar 1 TIP31C transistor nodig.
TIP31C Transistor 100V 3A
  • 1x 12v -> 5v converter L7805(CV). Deze heb je nodig als je de ESP op dezelfde voedingsspanning wilt aansluiten als de ledstrip. In mijn geval was de ledstrip 12V DC met een maximale stroom van 3A dus heb ik de L7805 gekozen. Deze spanningsconverter zet 12V om naar 5V, 1.2A waarop de Wemos werkt. Hij wordt wel wat warm dus ook voor deze kun je het best een koellichaampje mee bestellen.
L7805CV spanningsconverter

Overige componenten die je wel kunt gebruiken

Het is handig om aan de ledstrip male headers te solderen en op het printplaatje vrouwelijke. Zo heb je een nette stekker verbinding die je los kunt halen voor onderhoud (firmware update) of het oplossen van andere problemen. Je kunt ook schroefterminals gebruiken, maar dan ben je wat meer ruimte kwijt op je printplaat.

Female headers

Voor de 12V aansluiting is het mooi als je de bestaande stekker aan de adapter kunt blijven gebruiken. Je hebt dan een DC PCB mount nodig, passen de stekker en de PCB mount niet op elkaar, maak dan gebruik van schroefterminals.

Schroefterminals
DC PCB Jack mount female

Let op dat de onderdelen ook de maximale stroom aankunnen. Een lange ledstrip kan aardig wat stroom vragen! De bovenstaande onderdelen werken goed voor een 12V RGB ledstrip van 5 meter.

Verder heb je nog wat soldeerspullen nodig zoals een stuk printplaat (raster 2.54mm), tin, soldeerbout, wat draad en geduld 🙂

Prototype PCB 2.54mm

Tip voor smarthome eigenaren met twee linkerhanden

Om dit project te voltooien heb je enige elektronica en soldeerervaring nodig. Heb je dat niet? Kijk dan eens naar de mooie Yeelight Ledstrips van Xiaomi. Yeelight werkt out of the box met Domoticz en hoef je niet te solderen!

Aansluitschema RGB ledstrip op de ESP8266

RGB ledstrip aansluitschema op Wemos D1

Check altijd of de functies (IN/OUT/GND) van jouw aansluitpinnen overeen komen met de aansluitpinnen van de tekening hierboven.

ESPeasy flashen op de Wemos D1 mini

Om de RGB ledstrip aan te kunnen sturen met WiFi en domoticz gaan we ESPeasy flashen. Hiermee kun je straks alles heel simpel bedienen en instellen.

Omdat ESPeasy standaard geen goede ondersteuning bied voor ledstrips (alleen de basic PWM functies), kun je het beste een aangepaste en zelf gecompileerde versie van ESPeasy flashen.

Vind je het zelf compileren te lastig? Hier kun je een aangepaste versie downloaden. Deze versie heb ik gemaakt voor een Wemos D1 mini maar werkt ook voor andere modules die op een 4MB esp8266 gebaseerd zijn (zie reacties). Ik ben niet verantwoordelijk voor enige vorm van schade of het bricken van je apparaat!

WemosD1mini-4096-ESPeasy-RGBstrip

Plaats bovenstaand bestand in dezelfde map als onderstaande flashtool en selecteer de juiste COM poort.

Flashtool ESP8266

Ga daarna hieronder verder.

PWM

De ESP gebruikt PWM (Pulse Width Modulation) om de niveaus van de kleuren te regelen.

Wanneer we de led aansturen met een PWM-signaal dan zal de led op hoge snelheid aan- en uitschakelen. Wanneer de gebruikte frequentie hoog genoeg is dan zal de traagheid van het oog ervoor zorgen dat het lijkt dat de led zachter brandt. (bron: Wikipedia)

Waarom kiezen voor aangepaste firmware?

Met ESPeasy kun je out-of-the-box al PWM commando’s sturen. Voor iedere pin (=kleur) moet je een apart commando geven:

IP-adres espeasy/control?cmd=pwm,PIN NR,WAARDE 0-255 

bijvoorbeeld om pin 12 (dat is bijvoorbeeld rood) aan te zetten:
IP-adres espeasy/control?cmd=pwm,12,255

Uit:
IP-adres espeasy/control?cmd=pwm,12,0

Om wit te maken moet je dus 3 commando's geven (alle 3 de kleuren op voluit)
IP-adres espeasy/control?cmd=pwm,12,255
IP-adres espeasy/control?cmd=pwm,13,255
IP-adres espeasy/control?cmd=pwm,14,255

Je moet dus per kleur de waarde (0 t/m 255) sturen via de URL. Omdat ik met één klik de kleuren wil aanpassen met domoticz moet ik met één URL alle kleuren tegelijk kunnen aanpassen. Met de standaard ESPeasy versie lukt dat dus niet zonder allerlei scripts. Daarom hebben we de aangepaste versie geflashed.

RGB Ledstrip instellen in ESPeasy

Als het flashen en configureren van de aangepaste versie gelukt is, kun je ESPeasy instellen dat het de ledstrip kan gaan aansturen. Hoe je de basisinstellingen doet lees in mijn blogpost “Hoe flash je ESPeasy op een Wemos D1 mini”. Ga in je browser naar de pagina van ESPeasy.

  • Klik op het tabblad devices
  • Klik bij regel 1 op Edit
  • Kies bij device voor RGB Ledstrip
Kies voor de RGB Ledstrip Plugin
  • Vul de juiste poorten in waarop je de kleuren aangesloten hebt.
Kies de juiste GPIO poorten per kleur
  • Vergeet ook niet “enabled” aan te vinken. “Send to controller” hoef je niet in te vullen. Dat werkt (nog) niet.
  • Klik op submit
  • Je kunt de ledstrip nu aansturen via een URL commando. Enkele voorbeelden: (vervang de puntjes door het IP adres van je ESP!)

Ledstrip uit: ../control?cmd=RGB,0,0,0

Rood: ../control?cmd=RGB,255,0,0

Groen: ../control?cmd=RGB,0,255,0

Blauw: ../control?cmd=RGB,0,0,255

Wit ../control?cmd=RGB,255,255,255

Je kunt dus nu met één URL commando een kleur maken ipv 3 aparte commando’s te sturen. Het eerste cijfer staat voor Rood, dan Groen, dan Blauw. Met de waarde 0 staat de kleur uit, met de waarde 255 staat hij vol aan. Zo kun je de kleuren mixen. Met de RGB kleuren mixer onderaan deze pagina kun je zelf kleuren maken!

Andere RGB commando’s

De plugin die we gebruiken heeft ondersteuning voor nog meer commando’s! Hieronder zie je een lijstje:

  1. RGB,<red 0-255>,<green 0-255>,<blue 0-255>
  2. HSV,<hue 0-360>,<saturation 0-100>,<value/brightness 0-100>
  3. HSL,<hue 0-360>,<saturation 0-100>,<lightness 0-100>
  4. HUE,<hue 0-360>
  5. SAT,<saturation 0-100>
  6. VAL,<value/brightness 0-100>
  7. DIMM,<value/brightness 0-100>
  8. OFF
  9. CYCLE,<time 1-999> time for full color hue circle; 0 to return to normal mode

LED Strip toevoegen aan Domoticz

Domoticz heeft out-of-the-box ondersteuning voor RGB ledstrips. Die ondersteuning lijkt mooi, maar het werkt voor geen meter. De kleur wordt niet opgeslagen in de database en wordt alleen naar het apparaat zelf verzonden. We gebruiken een niet officieel ondersteund apparaat. Daarom wordt het commando niet in het juiste formaat naar de ledstrip verzonden, en dan gebeurd er dus niks. We kunnen ook geen script eromheen bouwen omdat de kleur niet opgeslagen wordt. We gaan dus zelf aan de slag, met een andere benadering.

  1. Maak een “Keuzeschakelaar” dummy aan.
Keuzeschakelaar domoticz
  • Ga naar het schakelaar overzicht en klik op aanpassen en maak (bijvoorbeeld) de volgende opties aan:
Selector overzicht met kleuren ledstrip
  1. Off
  2. Blauw
  3. Groen
  4. Rood
  5. Wit

Geef als “script url” de volgende URL’s op: (waarbij de puntjes: http://jouw ip adres van esp is/)

../control?cmd=RGB,0,0,0
../control?cmd=RGB,0,0,255
../control?cmd=RGB,0,255,0
../control?cmd=RGB,255,0,0
../control?cmd=RGB,255,255,255

Keuzemenu met kleuren van je ledstrip

Het werkt!

Is het gelukt, of werkt het nog niet helemaal lekker? Laat het in een reactie weten!

De ledstripcontroller kun je nog verder uitbreiden! In de woonkamer is het handig om de temperatuur te meten of het licht door middel van een luxmeter, zodat je je ledstrip op basis van het aanwezige licht in en uit kan schakelen zodra je thuis bent!

Doe mee met de conversatie

23 reacties

  1. gaaf, dit ga ik zeker een keer proberen. ik ben nu bezig met een enkel RGB led op een wemos D1 mini met een WS2812b RGB Shield. dit lukt me van geen kanten. ondersteuning is er wel met neopixel maar ik snap er nog niet veel van. ik kom zeker nog eens langs je site.

    1. Beste Dinesan,

      Leuk dat je reageert! Ik heb het artikel bijgewerkt met een bin file voor een Wemos D1 mini. Zou je het willen proberen en willen vertellen of het wel/niet gelukt is?!

      Groet Wouter

  2. Hoi Wouter,

    Ook ik krijg deze firmware niet geflashed (Wemos D1 Mini Lite)
    Net als Dinesan krijg ik direct na het aanklikken van de Flash-knop de melding “Flash Failed.”

    Zelf compilen lukt niet met de plugin die momenteel in de playground staat.

    Kun je ons verder helpen?

    Groet,
    Eric

    1. Hoi Eric,

      Ik zie het bij mij ook gebeuren. Ik krijg het ook niet zo een twee drie meer voor elkaar om het opnieuw te compileren. Ik ga kijken of ik de firmware van de wemos kan back uppen naar een bin bestand.

      Ik laat het weten

      Wouter

    2. Hoi Eric,

      Het is mij gelukt om het flashgeheugen van mijn Wemos D1 mini weg te schrijven naar een bin bestand. Ik heb het bin bestand weer terug geflashed op een andere schone Wemos en kreeg daar netjes de juiste versie met RGB ledstrip ondersteuning te zien! Ik heb ‘m naar factory settings gereset zodat je ‘m op de normale manier kunt configureren. Het bin bestand wat nu in het artikel staat kun je dus gebruiken voor een 4MB Wemos D1 mini.

      Succes! Laat je het weten als het gelukt is?!

      Wouter

  3. Wouter,
    bij het compileren voor een standaard ESP8266 module krijg ik de volgende fouten, kun jij een aanwijzing geven waar het fout gaat?

    ==================================
    D:\ESPEasy-2.0\ESPEasy\_P010_BH1750.ino:5:23: fatal error: AS_BH1750.h: No such file or directory

    #include

    ^

    compilation terminated.

    Meerdere bibliotheken gevonden voor “Servo.h”
    Gebruikt: D:\arduino-1.8.5P230\portable\packages\esp8266\hardware\esp8266\2.3.0\libraries\Servo
    Niet gebruikt: D:\arduino-1.8.5P230\libraries\Servo
    Meerdere bibliotheken gevonden voor “SD.h”
    Gebruikt: D:\arduino-1.8.5P230\portable\packages\esp8266\hardware\esp8266\2.3.0\libraries\SD
    Niet gebruikt: D:\arduino-1.8.5P230\libraries\SD
    exit status 1
    Fout bij het compileren voor board Generic ESP8266 Module

    ======================================

    m.vr.gr. Johan

    1. Beste Johan,

      Wat ik zo zie is dat hij as_bh1750.h mist in de map. Misschien iets met libraries?
      Twee weken geleden heb ik voor een andere volger ook geprobeerd de bestanden te compileren maar het is mij helaas niet gelukt. Ik kreeg ook dit soort vage meldingen. Daarom ben ik tot de bin file oplossing gekomen. Waarschijnlijk werkt de bin file ook wel voor andere esp8266 modules van 4mb maar ik durf het niet met zekerheid te zeggen. Als je aandurft kun je het proberen!

      Groet Wouter

  4. Wouter het is gelukt de bin file via de flash tool op een ESP 12E te zetten. het weg schrijven ging wel langzaam.
    Heb het eerst via de OTA optie van uit een reeds eerder geflashte bin file geprobeerd,maar dit ging niet goed.

    bedankt voor bin file. Johan

  5. Dag Wouter,

    Bedankt voor je werkinstructie! Ik ben er denk ik heel eind mee op weg geholpen. Heb je aangepaste BIN-file met succes op een NodeMcu V3 geflashed en ben gestart met het bouwen op gaatjesboard bezig. Maar heb RGBWW-ledstrip en dus ook 4 stuks TIP31C. De plugin ingesteld op R(D7), G p[ (D6) en B op (D5) en W op (D4). Uit je aansluitschema heb je voor die laatste geen koppeling getekend voor de aansturing van de witte led. Hij lijkt te verbinden aan de 7805 en de 12 V-stekker…. Kun je me daar verduidelijking over geven?

    1. Hallo Pieter,

      Goed dat alles tot nu toe gelukt is! Het plaatje van het aansluitschema is voor een rgb ledstrip op 12v. Het eerste zwarte blokje met gele, zwarte en oranje draad is de 7805 spanningsconverter. Dan komen de 3 TIP’s voor elke kleur 1. Aangezien je een RGBWW ledstrip hebt moet je inderdaad een extra TIP hebben. Het linker pootje kun je inderdaad op een willekeurige andere D-pin aansluiten. Het middelste pootje naar de strip en het rechter pootje aan de GND. Ga je er zo uit komen?

      Groet Wouter

  6. H Wouter,

    Ja, dat lukt wel. Maar er staat dus een onvolkomenheid in je aansluittekening want je legt de voeding voor witte leds direct aan de 12 Volt adapter…

  7. Ook hier een werkende situatie met RGBWW-ledstrip en dus 4 stuks TIP31.. Het was even zoeken met de voeding ledstrip.. (bruine getekende draad).
    Bedankt!

    1. Hallo Pieter,

      Je kunt de commando’s niet tegelijk gebruiken. Er zijn mijn inziens twee opties:

      1. Eerst een commando sturen om een kleur te bepalen met het rgb commando, daarna het VAL commando om te dimmen.

      2. Je kunt ook om de leds te dimmen gewoon een commando met lagere waarden sturen in de RGB url. Dus stel ik wil wit maken, dat is rgb, 255,255,255. Dan staan alle kleuren voluit aan. Stuur je nu ipv daarvan rgb, 127,127,127, branden alle leds nog maar voor de helft, terwijl de kleur er nog steeds wit uit ziet. Dat kun je natuurlijk voor alle kleuren doen, zolang de verhouding maar hetzelfde blijft.

      Succes!
      Wouter

  8. Is dit stappenplan ook te gebruiken met een witte led-strip? Zo ja, hoe sluit ik deze dan aan? Selecteer ik dan ook in esp de rgb-strip als device? Hoe dim ik dan bijv?

    1. Hoi remco,

      Met een witte strip kun je dit stappenplan ook gebruiken! Het wordt zelfs makkelijker.

      Je kunt 2 van de 3 TIP’s weglaten, de rest is hetzelfde. In de software kun je gebruik maken van de standaard PWM functie van ESPeasy en hoef je niet de aangepaste firmware te flashen. Zelf heb ik ook een witte strip in gebruik, misschien een leuke toevoeging op dit artikel..

      Groet Wouter

  9. Hoi Wouter,

    Ik probeer je BIN file te flashen naar een Wemos D1 Mini Pro (16 Mb ! en externe antenne) maar krijg na enkele seconden de melding flash failed. Nu lukt het flashen van een ‘standaard’ BIN file, geschikt voor 4096 bytes moeiteloos naar deze 16 Mb Wemos. Heb je een tip hoe dit wel kan werken ?

    Groet, Sven

    1. Dag Sven,

      Ik heb zo even geen idee helaas… Misschien dat er in de bin file een controle zit die het flashen tegenhoud.
      Je zou kunnen proberen om alles zelf te compileren. Daar heb ik ook een blogpost over geschreven.

      Groet Wouter

Laat een reactie achter

Laat weten wat je van dit artikel vindt!

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.