Witajcie, przedstawię tu wnętrze produktu znanego w sieci jako bazującego na ESP8266, ale w nowszych wersjach opartego o moduł z BK7231T, dokładniej na WB2L. Lampka tym razem ze złączem w standardzie GU10. Pokaże tu też procedurę zmiany jej firmware. Tym razem pady do programowania od modułu WiFi będą odsłonięte, więc uda się zmienić wsad bez wylutowywania całego modułu. Uwaga - wszystkim czytelnikom sugeruję zapoznać się z pierwszym tematem z serii:
Ledówka LED WiFi RGBCW Tuya - wnętrze, programowanie, BK7231N
Ten temat będzie niejako stanowić jego rozszerzenie, dużo procedur będzie wykonywanych w sposób analogiczny.
Zakup lampki Fcmila smart spotlight
Te lampki LED, zwane często niepoprawnie przez sprzedawców "żarówkami LED", są dość popularne w sieci i są dostępne w różnych sklepach internetowych. Kiedyś był budowane w oparciu o ESP8266, mają nawet gotowy szablon Tasmoty:
https://templates.blakadder.com/fcmila-spotlight-6w.html
Niestety z czasem producenci przerzucili się na BK7231T, więc przez długi czas nie dało się ich programować.
Cytat:
WARNING: New Tuya devices have replaced their Wi-Fi module with one incompatible with Tasmota!!!
Tuya-Convert might not be possible for this device since the template was added (2019-12-17).
Z tego też powodu tworzę swój OpenBeken (firmware w stylu Tasmoty na inne platformy) a Fcmila GU10 kupiłem, by go potestować.
Nie wiem jak Wy, ale sam nie korzystam w domu ze złącz GU10 do żarówek.
Tak się prezentuje opakowanie:
Zawartość zestawu:
Produkt już po wyjęciu z opakowania miał podważoną pokrywę. Czyżby producent jej nie domknął?
Instrukcja:
Wnętrze Fcmila
Mleczną pokrywę wystarczy podważyć nożem i już mamy dostęp do LEDów:
Elektronika jest na dłuższych kabelkach, można ją wyjąć:
Na wejściu widać rezystor bezpiecznikowy, mostek prostowniczy LX10N i kontroler przetwornicy beztransformatorowej KP3210SG:
Od spodu jest jeszcze element SMD o oznaczeniu HACAF - być może regulator LDO 3.3V bądź przetwornica step down dająca te 3.3V?
Do sterowania kanałami R, G, B, C i W służą osobne tranzystory o kodach A09T (czyli AO3400, MOSFET z kanałem typu N):
No i oczywiście jest moduł WiFI z BK7231T - WB2L:
Wgrywanie wsadu - bkWriter 1.60
Podobnie tak jak w poprzednich tematach z serii, przykładowo tutaj:
Ogrodowy podwójny przekaźnik Tuya CCWFIO232PK - BK7231T - programowanie
Tym razem jednak nie użyłem metody z pinem CEN/RST, tylko dokonywałem reboot układu poprzez odcięcie i podłączenie ponowne mu zasilania.
Potrzebny jest konwerter USB na UART w trybie 3.3V (rzetelny jest taki oparty o CH340G) i cztery przewody - 3.3V, masa, RX1 i TX1. Niestety sygnały od UART są na spodzie WB2L, jak na zdjęciach:
Oprócz tego - na płytce stykowej - regulator LDO 3.3V (by uzyskać 3.3V z 5V), konwerter USB na UART i osobne złącze na 5V do zasilania LDO (odłączenie zasilania będzie potrzebne by wykonać reboot układu już w trakcie pracy programatora, nie możemy zasilać regulatora LDO z tego samego portu USB w którym jest konwerter USB na UART, bo za duży prąd rozruchowy by resetował nam USB i przerywał programowanie na samym jego starcie):
Konfiguracja OpenBeken
Wszystko tak jak tutaj:
Lampka LED WiFi RGBCW Tuya - wnętrze, programowanie, BK7231N
Konfiguracja pinów:
Parowanie z Home Assistant
Kiedyś parowało się ręcznie:
Lampka LED WiFi RGBCW Tuya - wnętrze, programowanie, BK7231N
Ale teraz mamy w OpenBeken wsparcie Home Assistant Discovery:
Efekty:
Dodatek - OTA w OpenBeken
OpenBeken wspiera OTA, czyli aktualizację wsadu przez WiFi. Musimy mieć już wgrane OpenBeken na nasze urządzenie wcześniej. Są dwa tryby OTA.
- tryb poprzez link do pliku RBL (przykładowo z Githuba), to jest w Config->OTA:
- tryb poprzez "drag and drop" pliku (przeciągnięcie) na pole w przeglądarce, jest to w panelu Web App w zakładce OTA:
Dodatek - Safe Mode w OpenBeken
OpenBeken oferuje "tryb bezpieczny"/reset do trybu Access Point uruchamiany poprzez kilkukrotne (2-krotne dla trybu access point, 3-krotne dla trybu bez konfiguracji pinów) uruchomienie i wyłączenie zasilania urządzenia. Cykl pracy urządzenia po uruchomieniu musi być krótszy niż kilkanaście sekund. Urządzenie pamięta ile dokonało pełnych rozruchów i jeśli jest pod rząd kilka niepełnych rozruchów to zamiast łączyć się z naszym WIFI, tworzy otwartą sieć, co pozwala na jego odratowanie i zmianę jego ustawień jeśli coś popsuliśmy.
Trzykrotny taki cykl power-on/power-off uruchamia urządzenie też bez konfiguracji pinów i skryptów (na wypadek, gdyby to jakiś nasz skrypt lub ustawienie np. zawieszało urządzenie, to pozwala je wtedy odratować).
Dodatek - komendy i automatyzacje w OpenBeken
Na początek muszę bardzo mocno podkreślić, że OpenBeken jest kompatybilny z Home Assistant, więc wszystkie scenariusze z Home Assistant będą też u mnie działać.
To, co tutaj przedstawię, jest natomiast sposobem na automatyzacje bez udziału HA.
Zasadniczo potrzebne są trzy składniki.
- system zdarzeń, który pozwala wykonywać komendy w momencie naciśnięcia (lub podwójnego kliknięcia, lub przyciśnięcia na dłużej) przycisku:
setEventHandler OnClick 11 [command here]
setEventHandler OnHold 11 [command here]
setEventHandler OnDblClick 11 [command here]
- system sterowania kanałami (przekaźnikami i PWM) poprzez komendy:
setChannel 1 0
addChannel 1 -10
- system wysyłania komend do innych urządzeń, na ten moment poprzez GET:
SendGet http://192.168.0.112/cm?cmnd=Power0%20Toggle
Działa to nieco podobnie do Tasmota HTTP. System autoryzacji będzie dodany wkrótce (chociaż ogólne założenie jest takie, że automatyka raczej siedzi na osobnej sieci WiFi).
Oczywiście to wysłanie komendy "Power0%20Toggle" (swoją drogą, %20 to po prostu kod spacji w zapytaniu HTTP) wysyłać ma do żarówki drugie urządzenie z OpenBeken, a dokładniej jakiś przycisk. Tak można sparować żarówkę z przyciskiem bez zewnętrznego serwera (nawet bez HA).
Podsumowanie
Programowanie tej lampki okazało się być względnie proste. Łatwo jest dostać się do środka i złożyć ją z powrotem. Piny do programowania od modułu WB2L są dostępne i można przylutować kabelki.
Jest tu znacznie lepiej, niż w przypadku innych LED Tuya, które mają czasem zasłonięty spód modułu WB2L, przez co trzeba go odlutować by dostać się do TX i RX.
Jeśli z kolei zastanawiacie się jak zmienić wsad w sytuacji gdy port UART od programowania jest zasłonięty płytką, to rozwiązanie znajdziecie na tym filmiku.
To na razie tyle. Lampką mogę teraz sterować nawet poprzez Tasmota Device Groups (OBK je wspiera), jak również przez protokół DDP, ale o tym innym razem.
Fajne? Ranking DIY Pomogłem? Kup mi kawę.
