
Witajcie moi drodzy.
Przedstawię tu wnętrze LED smart 'żarówki' produkcji Tuya oferującej szeroki wybór barw, RGB oraz biel zimna i ciepła. 12W, E27. Pokażę na jakim układzie WiFi jest zrealizowana i jak można ją zaprogramować, uwolnić od serwerów Tuya i sparować np. z Home Assistant. Sprawdzę też jej pobór energii elektrycznej w trybie standby oraz w trakcie pracy. Temat oczywiście będzie dotyczyć mojego zamiennika Tasmoty - OpenBK7231T. Czy rzeczywiście będzie 12W? Sprawdźmy.
Zakup 'żarówki'
'Żarówkę' znalazłem pod hasłem "Tuya Wifi Smart Life Light Bulb Lamp E27 LED RGBCW Dimmable For Alexa/Google 18W", ale wybrałem wersję 12W. Zapłaciłem około 10$.

RGBCW oznacza tutaj Red Green Blue Cool Warm, czyli dostępne kolory - czerwony, zielony, niebieski, zimny (biały), ciepły (biały).
'Żarówka' ta do pracy wymaga tylko dostępu do naszego domowego WiFi i aplikacji Tuya - nie potrzeba żadnego huba, bramki.


Oprócz całej palety kolorów 'żarówka' oferuje automatyzacje Tuya (timery, scenariusze, itp) oraz różne kolorowe animacje, też w rytm muzyki.

Siłą rzeczy też mamy kontrolę nad jej jasnością:

Test z aplikacją producenta
Najpierw przetestowałem 'żarówkę' z aplikacja Tuya, czyli bez zmieniania wsadu ze środka.
Parowanie jest bardzo proste. Mój iPhone od razu wykrył nowe urządzenie, żarówka migała w trybie parowania po pierwszym podłączeniu:






Zero problemów. Tak wygląda kontrola koloru i jasności:







Kolory są wyraziste i jasne. Ale raczej aplikacja Tuya i jej chmura nas aż tak nie ciekawi, więc przechodzimy do wnętrza...
Wnętrze 'żarówki'
Dostanie się do środka okazało być się bardzo proste. Plastikową, mleczną kopułkę po prostu udało mi się zdjąć gołymi rękami, lekko wykonując ruch obrotowy.


Popatrzmy, które diody świecą kiedy:





Klej można usunąć łatwo nożem. Płytkę z diodami LED wystarczy podważyć. Nie jest ona przykręcona do reszty bazy 'żarówki'. Mam nadzieję, że nie będzie się przez to nadmiernie nagrzewać, ale to niby tylko 12W.



Moduł WiFi w środku oparty jest na BK7231N:



Pora dostać się głębiej. Jeśli chcemy tylko zaprogramować BK7231N to może nie być to konieczne, jeśli zmieścimy się lutownicą do jego padów RX/TX. W każdym razie, tylko jeden przewód zasilania jest przylutowany, drugi jest zaczepiony tylko o gwint:


Obejrzyjmy elektronikę ze środka:





Na wejściu mamy rezystor bezpiecznikowy (RF1 - Resistor Fusible 1?), mostek prostowniczy MB6S, potem są miejsca na dodatkowe kondensatory i dławik (tworzące filtr Pi?), oprócz tego jest jeden kondensator elektrolityczny na 400V i kontroler przetwornicy 802X A0KH, którego dokładniej nie analizowałem, chociaż widzę m. in. tam rezystor 1R0 (czyli jeden ohm), na którym może przetwornica mierzyć prąd (tzw. bocznik). ES2JF tam to ultraszybka dioda, może z gasika szpil od przetwornicy? Diody F7 (FR107) w SOD-123 obecne obok też są szybkie. Element oznaczony na płytce U2 (oznaczenie na elemencie nieczytelne) to pewnie regulator LDO zapewniający 3.3V dla modułu WiFi. Tranzystory przełączające kolory (jest ich pięć - po jednym na kanał R, G, B, W, C) oznaczone są N81Z, na ten moment nie znalazłem ich noty katalogowej (jak ktoś znajdzie to proszę o komentarz), ale przyznam, że w tym temacie bardziej skupiałem się na aspekcie programowania tej 'żarówki', o czym będzie za chwilę.
Sam moduł WiFi to XH-0068A produkcji sparkleiot com oparty o BK7231N:




Wyprowadzone mamy tu sygnały P0 i P1 oraz TXD i RXD. P0 i P1 to też w rzeczywistości UART, ale nie do programowania, lecz tylko wyjście debug logu:

Do programowania przyda się jednak tylko TXD i RXD. Ewentualnie też RST (ale możemy resetować poprzez odcięcie zasilania).
Na zdjęciach też widać jakie sygnały wychodzą z modułu WiFi na płytkę - m. in. P7, P8, P9, P6, P24. Piny PWM...
Programowanie BK7231N
Aby zaprogramować BK7231N musimy podłączyć zewnętrzne zasilanie (odłączyć oczywiście produkt od sieci), najlepiej 3.3V poprzez jakieś LDO własne (użyłem TC1264), gdyż 5V uszkodziłoby układ WiFi oraz podłączyć konwerter UART do pinów TX i RX z BK7231N.
Podłączenie zasilania:

Podłączenie RX i TX, proszę zwrócić uwagę na pobielenie padów i przewodów:




Sekcja zasilania i podłączenie na płytce stykowej (przewód 3.3V zrealizowany jest tak by było go łatwo odłączyć by wymusić reboot układu).


Dla BK7231N działa tylko programator napisany w Pythonie, BKwriter1.60 nie da tu rady.
Należy pobrać i zainstalować to narzędzie:
https://github.com/OpenBekenIOT/hid_download_py
Przygotować wsad w wersji QIO (nie UA!), samodzielnie skompilowany lub gotowiec stąd:
https://github.com/openshwprojects/OpenBK7231T_App
Następnie użyć komendy:
python uartprogram W:\GIT\OpenBK7231N\apps\OpenBK7231N_App\output\1.0.0\OpenBK7231N_app_QIO_1.0.0.bin --unprotect -d com9 -w --startaddr 0x0
Uruchamiamy programator z tą komendą:

Na tym etapie wykonujemy reboot układu (odcinamy i podłączamy zasilanie - czasem trzeba kilka razy by załapało):


Sukces. Po ponownym uruchomieniu powinna pojawić się otwarta sieć WiFi do konfiguracji firmware:

Podłączamy się do niej, jeśli DHCP nie zaskoczy to ustawiamy sobie jakieś IP typu 192.168.4.15 i wchodzimy na adres IP 192.168.4.1:

Role pinów są łatwe do przypisania - widać było wcześniej już jakie sygnały idą do PCB:

UWAGA: przy ustawianiu indeksów kanałów należy zachować porządek: 1 - czerwony, 2 - zielony, 3 - niebieski, 4 - zimny biały, 5 - ciepły biały
Ciąg dalszy konfiguracji (MQTT itp) jak według tych tematów:
Ogrodowy podwójny przekaźnik Tuya CCWFIO232PK - BK7231T - programowanie
Qiachip Smart Switch - BK7231N/CB2S - wnętrze, programowanie
Sam interfejs RGBCW (color picker) nie jest jeszcze w pełni gotowy.
Jeśli chodzi o ustawianie koloru za jednym razem to jest już komenda "color", która działa analogicznie jak w Tasmocie.
Jej syntax:
color #RRGGBB[CW][WW]
Kolor jest w formacie hex, kolejne bajty odpowiadają kolejnym kanałom. Wystarczy odpowiednio sformatować zapytanie po stronie Home Assistant i możemy ustawiać wszystkie kolory za jednym razem.
Przykład zapytania ustawiającego kolor czerwony:
color #FF0000
Jeśli chcemy wiedzieć jaki kolor ma jaki kod, to możemy znaleźć w sieci "RGB hex color picker".
Taką komendę też można wysłać przez MQTT, przykładowo z Home Assistant.
Czy taka żarówka może pomóc oszczędzać energię elektryczną?
Zacznijmy od podstaw. Pobór energii w standby, w trybie czuwania. Tu trzeba zaznaczyć, że jeśli mamy normalny włącznik od światła i wyłączymy całkiem światło w pokoju to oczywiście ten pobór też znika, ale to jednak zawsze jest parę groszy...

Weryfikacja drugim miernikiem:

Standby - 0.5W. Porównywalnie z innymi produktami "smart" (np. gniazdkami Blitzwolfa).
Teraz kolory:



I najciekawsze - wszystkie kolory na raz...

Pobór energii (nieco ponad 6W) wcale nie przypomina sumy poborów energii poszczególnych kanałów. Wygląda na to, że główny układ zasilania limituje prąd. Czyli z tej 'żarówki' nie wyciągniemy więcej niż 6W...
Test ściemniania:


Ściemnianie działa ok, bardzo praktyczna opcja. Pozwala chociażby zmniejszyć zużycie mocy do 2W przy jednoczesnym zachowaniu pewnego dopuszczalnego poziomu oświetlenia w pokoju.
Dla porównania - wnętrze zwykłej 'żarówki' LED
Najpierw 'żarówka' 13W (nominalnie):

Dwie spalone diody LED, oczywiście to można naprawić:

Wnętrze:







Mostek prostowniczy MB10FH, kontroler stałoprądowy LED BP2861:

Druga, 14W:


PCB z diodami przykręcone do radiatora:


Znacznie lepsze chłodzenie, cała obudowa tu odprowadza ciepło, ta pierwsza to chyba 13W ma tylko napisane na obudowie.






Podobny układ. BP2833D, o dziwo w THT.

Inne sposoby kontroli RGBCW w żarówkach Tuya
Na koniec jeszcze wspomnę, że w niektórych innych żarówkach Tuya kontrola RGBCW odbywa się poprzez interfejs I2C. Na płytce z LEDami jest dedykowany do nich kontroler (już ze zintegrowanymi tranzystorami) a BK7231N (bądź T, lub inny) komunikuje się z nim poprzez I2C. To jest dopiero w kolejce do opracowania - mój firmware też będzie to wspierać. Przykładem takiego kontrolera może być SM2135:

O tym jednak będzie w innym temacie.
Podsumowanie
"Żarówka" ta (w cudzysłowie, gdyż nie jest to żarówka, tylko się przyjęło tak nazywać LEDy i pod taką nazwą są reklamowane) nie ma obiecanego 12W, lecz tylko 6W. Większej mocy się z niej nie wyciśnie, gdyż ograniczać musi ją układ zasilania diod, nawet w sytuacji gdy poprzez własne firmware wymuszę 100% wypełnienia na wszystkich kanałach (R, G, B, C, W). Nie jest to jednak zaskoczeniem, przy takim słabym chłodzeniu chyba te 12W to by była jednak przesada.
W standby pobiera 0.5W (bo moduł WiFi ciągle pracuje), podobnie zresztą jak inne produkty tego typu (WiFi gniazdka, kontakty, itp).
Oprócz tego, nie jest tak źle... widzę pewien potencjał w takiej żarówce. Kolory raczej się nie przydadzą w praktyczny sposób, ale np. zmiana temperatury światła (zimne do pracy, ciepłe do wypoczynku) to już jest coś, a możliwość ściemniania (np. w ramach oszczędności energii lub na późny wieczór) też jest czymś, z czego raczej można korzystać na co dzień.
W środku jest BK7231N - czyli mój firmware ją wspiera. Z dostępem do środka jest troszkę zabawy, ale da się ją zaprogramować i nie zniszczyć obudowy.
Wiem, że nie przedstawiłem tutaj pełnej jej integracji (brakuje wygodnego, graficznego wyboru kolorów), ale to dodam dopiero w nadchodzącej aktualizacji mojego projektu.
Zapraszam do śledzenia:
https://github.com/openshwprojects/OpenBK7231T_App
Zastanawiam się, ile ta 'żarówka' podziała. Czy ktoś z forumowiczów korzysta z tego typu 'żarówek', np. jako alternatywa do wymiany włączników światła na te 'smart' i podzieli się doświadczeniami?
Załączam ciekawy materiał na temat BK7231.
Cool? Ranking DIY