In het eerste deel van de serie heeft u de basis gelegd om zelf een domotica te kunnen realiseren. Het tweede deel dient als inleiding op een mogelijk raamwerk om uw eigen sensoren en actuatoren met relatief veel moeite te integreren in deze automatisering. Voor het derde en vooralsnog laatste deel van deze serie bouw je je eigen bedieningspaneel voor verlichtingstoepassingen, programmeer je het en zie je ter inspiratie hoe het in de praktijk gebruikt zou kunnen worden.
Het project
Benodigde tijd: 5u (gevorderd)
Je hebt dit nodig:
- Het begrip van deel I en deel II
- LED-tape, diverse opties beschikbaar
- Tot drie PWM-uitgangen
- Tot twee uitgangen voor bijv. smart pixels (WS2812B)
- Schakelaars / bedieningselementen
- Tot drie ingangen (waarvan één analoog), bijv. voor knoppen of draaipotentiometers
- verschillende onderdelen
- D1-Mini
- 1x TXS0102
- 2x 0,1 uF (0603)
- TVS-Diode
- Thermische zekering
- Zekering
- Per PWM-kanaal: 1x MCP1415, 1x 10 kOhm (0603), 1x 100 Ohm (0603), 1x 1 uF (0603), 1x NMOS (TO-252) bijv. IRLR8726
- Per slim pixelkanaal: 1x 10 kOhm (0603), 1x 2n7002 (SOT-23), 1x PMOS (TO-252) bijv. DMP3028
- Per ingang: 1x 10 kOhm (0603), eventueel extra weerstanden voor de spanningsdeler
- Sommige LED-strips, waaronder WS2812B, RGB-LED’s of monochroom
- Soldeerstation en toebehoren (pincet en zijsnijders) voor de minimumafmetingen VSSOP-8
- de printplaat (plus Gerber en Drillfile in de download)
- Montageschema (“InteractiveBom.html”), code en andere bestanden (download)
EzLight – Functies en overzicht
Voor verlichtingsbesturingen kunt u veel verschillende producten van vele fabrikanten kopen. Wat ontbreekt is meestal de mogelijkheid om ze aan te passen of aan te passen aan uw eigen behoeften.
Het EzLight-Board moet een “One-Size-Fits-All” oplossing zijn, omdat het modulair is en gebaseerd op een controller die intensief wordt gebruikt in de doe-het-zelf-community.
Laten we meteen beginnen met het overzicht van dit kerncomponent, de ESP8266, die in de vorm van een D1 Mini op het moederbord wordt geplugd.
Dit bespaart u de kosten en moeite van het monteren van de printplaat.
U kunt kiezen of u de lichtsturing via WLAN op het domoticasysteem wilt aansluiten of dat u deze gewoon in stand-alone modus wilt bedienen.
De programmering kan worden gedaan met behulp van alle gebruikelijke methoden, van de Espressif SDK tot Arduino en praktische kaders zoals PlatformIO en ESPHome.
Er zijn drie GPIO’s voorzien voor manuele interactie met de controller. Twee ervan (pins D0 en D8) dienen puur als digitale signalen voor bijvoorbeeld knoppen, schakelaars of roterende encoders.
De derde GPIO A0 kan optioneel worden gebruikt als analoge ingang, waardoor het gebruik van digitale potentiometers of verschillende sensoren mogelijk is.
Natuurlijk is het ook mogelijk om deze pinnen als uitgang te gebruiken, maar houd rekening met de maximale stroom die elke uitgang kan leveren.
Er zijn twee verschillende soorten uitgangen die gebruikt kunnen worden voor het regelen van de verlichting. Ten eerste zijn er drie PWM-uitgangen die in een groep kunnen worden geconfigureerd voor bijvoorbeeld een RGB-lichtketen of individueel voor drie monochromatische lichtketens.
Het tweede type is bedoeld voor busgestuurde lampen zoals WS2812B. Twee snaren kunnen onafhankelijk van elkaar worden bediend.
Met de TXS0102-niveauconverter kan de 3,3 V-regelaar stabiel communiceren met de 5 V-tolerante leds.
Om de ruststroom te minimaliseren, bevindt zich in de voedingsspanning één MOSFET per string als ontkoppelaar.
Elke stroomuitgang kan worden gevoed vanuit een eigen spanningsbron, wat de mogelijkheden voor de gebruikte LED’s niet beperkt (belangrijk: GND is samengevoegd, dus ze hebben hetzelfde referentiepotentiaal).
Een constante stroomregeling is niet voorzien.
De Gerber-bestanden zijn hierboven te vinden onder “Het Project” in de downloadsectie.

De lichtshow begint
De verlichting van het bed bestaat uit twee elementen, een leeslampje langs de hoofdsteun en een sfeervolle achtergrondverlichting langs de onderkant van de bedrand.
In dit voorbeeld hoeft u dus maar één PWM en één WS2812B uitgang (PWM1 en WSLED1 assemblages) uit te rusten.
Zoals u waarschijnlijk al geraden heeft, zult u ESPHome gebruiken om de controller te programmeren. Aan de ene kant wilt u het via de Home Assistant Server kunnen bedienen, maar aan de andere kant wilt u ook een knop hebben om de afzonderlijke verlichting aan en uit te schakelen zonder smartphone.
De download die hierboven onder “Het project” is bijgevoegd, bevat een algemeen configuratiebestand voor ESPHome. Daar zijn alle elementen van de hardware voorgeconfigureerd. Voor de bedlampen kunt u dit sjabloon nemen en de overbodige knooppunten verwijderen en meer functies toevoegen.
Het bestand “bedlight.yaml” geeft mijn configuratie weer, die ik nu kort in delen zal introduceren.
Helemaal bovenaan is er de mogelijkheid om gemakkelijk namen te vervangen, zodat je niet op meerdere plaatsen hoeft te werken.
De ESPHome configuratie node moet correct zijn zonder verdere aanpassingen, zorg er alleen voor dat uw “secret.yaml” gevuld is met de juiste referenties (er staat ook een sjabloon voor in de bijgevoegde bestanden).
In het knooppunt Binary Sensors kunt u knoppen, schakelaars en eventueel het effect ervan definiëren.
In het geval van het bedlampje ziet het knooppunt er bijvoorbeeld zo uit:
binary_sensor:
- platform: gpio
id: button_2
pin:
number: D0
inverted: False
mode: INPUT
internal: True
on_multi_click:
- timing:
- ON for 0.1s to 0.5s
- OFF for at least 0.6s
then:
- light.toggle: monochrom_1
- timing:
- ON for 0.1s to 0.5s
- OFF for at most 0.4s
- ON for 0.1s to 0.5s
then:
- if:
condition:
- light.is_on: ws_led_1
then:
- light.turn_off: ws_led_1
else:
- light.addressable_set:
id: ws_led_1
red: 0%
green: 0%
blue: 80%
- light.turn_on: ws_led_1
on_press:
- delay: 1s
- while:
condition:
and:
- light.is_on: monochrom_1
- binary_sensor.is_on: button_2
then:
- light.dim_relative:
id: monochrom_1
relative_brightness: -2%
transition_length: 0.1s
- delay: 0.1s
De knop die is aangesloten op D0 wordt hier geconfigureerd. De “internal” variabele betekent dat de status van de drukknop niet wordt doorgegeven aan de Home Assistant.
In het subnode “on_multi_click” definieert u het gedrag. Als bijvoorbeeld de drukknop kort wordt ingedrukt (tussen 0,1 en 0,5s) en vervolgens wordt losgelaten, wordt de status van de “monochrome_1” uitgang omgeschakeld.
Met andere woorden: We schakelen het leeslampje aan en uit.
Met een dubbelklik wordt het onderlichaamslampje (ws_led_1) aan- en uitgeschakeld. Als het leeslicht te fel is, kan de helderheid worden gedimd door de knop ingedrukt te houden. Deze functie is gedefinieerd in “on_press”.
Met deze paar lijnen heeft u een relatief gecompliceerd bedieningsconcept geïmplementeerd en kunt u de verlichting aansturen!
In de volgende knooppunten worden de lichten gedefinieerd. Zoals reeds vermeld is het mogelijk om één van de twee opties te gebruiken voor de PWM-uitgangen:
light:
# Comment out if not needed
- platform: monochromatic
id: monochrom_1
name: ${pwmlight_1_name}
output: pwm_1
internal: False
# Comment out if not needed
- platform: monochromatic
id: monochrom_2
name: ${pwmlight_2_name}
output: pwm_2
internal: False
# Comment out if not needed
- platform: monochromatic
id: monochrom_3
name: ${pwmlight_3_name}
output: pwm_3
internal: False
of
#light:
- platform: rgb
id: rgb_1
name: ${rgblight_name}
red: pwm_1
green: pwm_2
blue: pwm_3
internal: False
De WS2812B biedt ook een aantal aanpassingsmogelijkheden.
Wilt u uw eigen lichteffecten toevoegen? Met de “effecten” node en de documentatie is dit geen probleem.
light:
- platform: fastled_clockless
chipset: WS2812B
name: ${smartledlight_1_name}
num_leds: 60
rgb_order: GRB
id: ws_led_1
pin: D1
power_supply: power_supply_ws_led_1
effects:
- random
- addressable_flicker
Aan het einde worden nog andere elementen gedefinieerd, bijv. de toewijzing van pinnen aan de uitgangen en het uitschakelen van de voedingsspanning voor WS2812B door het voedingsknooppunt.
Het resultaat
Nadat zowel de hardware als de firmware is voorbereid en de LED-strips zijn geïnstalleerd en bekabeld, is er slechts een
esphome bedlight.yaml run
en de controller is al geprogrammeerd.
Als laatste configureert u de Home Assistant en voegt u een ESPHome integratie met EzLight toe, zodat de show kan beginnen: