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

Advertenties

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 ledstrip die ik gebruik in combinatie met een ESP8266 en Domoticz
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.

Advertenties

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
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
RGB Ledstrip Plugin ESPeasy
Kies voor de RGB Ledstrip Plugin
  • Vul de juiste poorten in waarop je de kleuren aangesloten hebt.
Kies de juiste GPIO poorten per ledstrip kleur
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
Keuzeschakelaar domoticz
  • Ga naar het schakelaar overzicht en klik op aanpassen en maak (bijvoorbeeld) de volgende opties aan:
Selector overzicht met kleuren ledstrip
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
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!

Advertenties

Doe mee met de conversatie

35 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

  10. Beste wouter, echt een leuk project.
    Ik heb het gebouwd en bijna alles is ok, alleen zodra ik probeer om wit te maken door 255,255,255. of 100,100,100 of wat dan ook met 3 gelijken dan gaat hij juist uit. ook doe ik b.v 200,225,255 dan is het wel bijna wit maar hoe dichter bij elkaar hoe minder vel hij brand.
    Zit me suf te piekeren hoe dit zou kunnen maar bedenk niets.
    Heeft U misschien enig idee?
    M.v.g George

    1. Hoi George,

      Dat is gek! Het werkt dus eigenlijk andersom! Heb je misschien ‘inversed logic’ aangevinkt staan in de config van het RGB device in ESPeasy? Dat zou het kunnen verklaren… 😀 En anders: wat voor voeding heb je er aan hangen?

      Groet Wouter

      1. Beste Wouter.
        ‘inversed logic’ staat uit, als ik hem aan zet werkt het precies anders om,
        maar het probleem blijft dan ook, bij 255,255,255 is dan alles uit maar met 0,0,0 ook.
        Vreemde is dat 0,255,255 of wat dan ook werkt gewoon perfect, maar zodra ik dus die 0 ga verhogen veranderd niet alleen de kleur maar word de sterkte minder tot bij 255 hij uit is.
        Met een ander script in de esp die een webpage maakt met kleuren werkt me schakeling wel, daar ligt het dus waarschijnlijk ook niet aan,
        Voeding is een zware lithium accu van 12 volt.
        Snap het dus echt niet, maar bedankt voor het meedenken.
        M.V.G George

        1. Hoi George,

          Ik begrijp het ook nog niet helemaal, maar goed dat het in ieder geval op een andere manier wel werkt. Zo kun je weer iets uitsluiten. Je zou kunnen proberen om via de PWM commando’s van espeasy de kleuren allemaal aan te zetten. Kijken wat er dan gebeurd. Ook je pin instellingen staan goed? Het lijkt erop dat het probleem in de kleur rood zit dan aangezien er, als je de eerste 0 verhoogd, gekke dingen gebeuren. Wat doet ie als je 255,0,0 doet? Dan zou de strip fel rood moeten gaan branden.

          Succes ik ben erg benieuwd!

          Wouter

          1. Nee het is nog vreemder 0,255,255 was voorbeeld, ik kan elke kleur maken.ook 255,255,0 of 255,0,255.
            Alleen als ik de 0 ga verhogen dan veranderd wel de kleur maar gaat hij ook zwakker branden. en als ze gelijk zijn is hij uit ook met 100,100,100 of 200,200,200
            Ik ga een nieuwe esp bestellen misschien ligt het daar aan.
            Als ik alleen de esp aansluit, en meet op de aansluitingen en ik zet hem op 0, 255,255 en dan meet op de open pennen meet ik 3.30 volt op de ene pin de andere 2.50 volt en Logisch op de andere niets.
            Zet ik hem op wit dus 255,255,255 dan gaan alle 3 de pinnen naar 0 volt, vandaar dat hij ook uit gaat
            Ook op andere gelijken bv 100,100,100 gaan ze naar 0 volt.
            M.V.G George

  11. Heb het geprobeerd met control?cmd=GPIO,16,1 enz dan gaat het wel goed, ligt dus ook niet aan de esp.

    1. Ja heel vreemd. Hoe lang is je strip? Kan de accu het benodigde amperage leveren? En een nieuwe wemos is misschien ook wel een goed idee.

      1. Heb er maar 50 cm aanhangen, dat is het probleem niet denk ik.
        Net ook nog geprobeerd met een ESP8266 seriële WIFI Witty cloud Development Board ESP-12F module MINI nodemcu,
        die ik had liggen, maar zelfs met alleen de on board rgb led zelfde probleem.
        Snap echt niet meer wat er fout gaat.

        1. Nee dat zal het probleem niet zijn inderdaad. Vreemd dat het met het andere bord ook mis gaat.
          Op welke pins zit de strip aangesloten? Heb je al een andere combinatie geprobeerd? Sommige pins hebben ook een andere dubbele functie.

          Heb je het pwm commando geprobeerd? Je schreef wel over het gpio commando.

          http:///control?cmd=PWM,13,500

          Waarbij 13 het pinnummer is en 500 de waarde van felheid tussen 0 en 1023.

          Lukt het dan om dat voor alle drie de kleuren op 1023 te zetten? In 3 aparte commando’s dan he.

          Wouter

          1. Ja andere pins heb ik geprobeerd, en control?cmd=PWM,13,500 lukt het om ze alle 3 de kleuren aan te zetten
            George

          2. Aha dan zit het misschien wel in die plugin. Heb je de wemos al opnieuw geflashed?

  12. Ja ook al gedaan, maar met de bin file dus dan kun je eigelijk niets instellen of veranderen volgens mij, ik ga nog proberen om er een blanke 4mb bin in te zetten en dan weer de bin van jou misschien dat dat helpt

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.

%d bloggers liken dit: