Ne vegyél drágán vezérlőket. Csak egy ESP-re és 3 MOSFET-re van szükséged, hogy okos RGB LED szalagod legyen.
Már lassan 10 éve történt, hogy meglepett édesapám egy 10m-es RGB LED szalaggal. Ez a tipikus infra távirányítós, olcsó, kínai 5050 RGB strip.
Mivel ez egy infrás cucc, fel lehet okosítani infra adókkal, mint pl. a Broadlink RM termékeivel. Ennek ugye van egy nagy hátránya: nincs semmilyen visszajelzés arról, hogy az eszköz tényleg fogadta-e azt, amit a távirányító kiadott.
Sokszor persze ez félrement, emiatt már scriptekkel hívtam, ami pl. 3x ismételte meg a parancsokat, hogy tuti vegye őket a vezérlő vevője. Ezzel meg az volt a gond, hogy néha „félreértette” őket, pl. teljesen más színben kapcsolt be vagy rosszabb esetben fade modeban, amikor az összes színt áttűnéssel váltogatja.
Meguntam, hogy ilyen instabil, úgyhogy gondoltam kiváltom ESPHome-mal.
Hardver
A LED szalagok vezérléséről
Szükséged lesz értelemszerűen egy LED szalagra ehhez a projekthez. Nagyon fontos, hogy közös anódú legyen, azaz olyan, ahol a különböző színű LED-ek közös pontja pozitív.
Ha megnézed a LED szalagod, azt kell látnod az érintkezők feliratainál, hogy az R-G-B-n kívül + vagy VCC szerepel, semmiképpen sem – vagy GND.

Szerencsére a közös anódú LED szalagok az elterjedtebbek, ugyanis sokkal könnyebb és olcsóbb őket vezérelni. Az ilyen szalagok vezérléséhez N típusú FET-ek használhatóak, amikből találsz bőven olyat, amit 3V-tal is tudsz kapcsolni. Közös katódú szalagokat ellenben P típusú FET-ekkel tudsz kapcsolni, amik nem a legideálisabbak pl. ESP32-höz, mert magas a küszöb feszültségük (Vgs(th)) (4V+).
MOSFET
Az ESP GPIO-i ugyebár 3.3V-ot és 20mA-t tudnak magukból kipréselni. Egy rövidebb LED szalag már simán megehet 1A-t, ráadásul jó eséllyel legalább 5V-ra van szüksége. Az én LED szalagom 2A-es tápegységgel érkezett és 12V-os. Szükség van tehát valamire, amivel egy másik áramkört lehet kapcsolni. Az optocsatoló nem jó választás, mert azon nagyon kevés áram tud átfolyni.
Barátunk ehhez a feladathoz a MOSFET. Ez egy tranzisztor, ami pont erre való, amit szeretnénk itt csinálni: gyengébb áramú áramkörrel nagyobbat kapcsolni.

Az én projektjeimhez az IRLZ44NPBF jó választásnak tűnt, ezért rendeltem belőle egy nagy kupaccal. Amire figyelned kell, ha nem ezt veszed:
- legyen N típusú
- ID (drén áram) értékébe férjen bele a LED szalag áramigénye
- VDSS (drén-forrás feszültség) értékébe férjen bele a LED szalag tápjának feszültsége
- VGS(th) maximuma legyen 3.3V alatt
Áramkör

Ez a design tetszőlegesen bővíthető annyi MOSFET-tel, amennyi GPIO-d elérhető, így mindenféle LED szalaggal használhatod:
- egy színű szalag esetén elég lesz 1 darab,
- állítható színhőmérsékletű (hideg és fehér csatorna) szalagnál 2 darab,
- RGB-nél 3,
- RGBW-nél 4
- és RGBWW-nél 5 db MOSFET-re van szükséged.


Összerereltem ezt is egy univerzális nyákra, bekerült egy kis dobozba.
Szoftver
light:
- platform: rgb
name: "Bed Light Strip"
red: o_mosfet_1
green: o_mosfet_0
blue: o_mosfet_2
output:
- platform: ledc
id: o_mosfet_0
pin: GPIO0
frequency: 19531
max_power: 40%
- platform: ledc
id: o_mosfet_1
pin: GPIO1
frequency: 19531
max_power: 40%
- platform: ledc
id: o_mosfet_2
pin: GPIO2
frequency: 19531
max_power: 40%
3 PWM kimenetre és egy RGB fény komponensre van szükséged. A PWM kimenetek a MOSFET-ek gate-jeire vannak kötve.

Kész is az okos RGB fény az ágy alá.