Witajcie moi drodzy.
Zapraszam na krótki test włącznika/ściemniacza do puszki Tuya/SmartLife sterowanego przez WiFi, model WF-DS01. Przedstawię tutaj jego wnętrze, omówię jak jest zbudowany, narysuję jego schemat a na koniec pokażę też na oscyloskopie jak wygląda regulacja mocy triakiem. Zwyczajowo sprawdzę też jak ma się w jego przypadku sytuacja z alternatywnym firmware open source.
Zakup ściemniacza WiFi Tuya/SmartLife
Produkt znalazłem pod hasłem Wifi Dimmer Switch EU Plug Wall Light Touch Switch TUYA/Smart Life APP for Alexa za około 20$ (na nasze 80 zł). Warto tego produktu szukać też po nazwie modelu: WF-DS01. Zakupu dokonałem już po 1 lipca 2021, czyli po wprowadzeniu doliczania VAT do przesyłek, lecz i tak z zakupem nie było problemu (dodatkowa kwota doliczana jest jeszcze przy kupnie przedmiotu).
Zrzut ekranu z oferty:
Dostępne są dwa kolory produktu.
Specyfikacja według sprzedawcy:
Cytat:
Size: 86 x 86 x 35 mm
Colors: Black, White,
Material: Alloy+Crystal Glass
Warranty: 1 year
Certification: ce,CCC ,RoHS
Mechanical Life: 100000 Times
Working Voltage: 110 V-240 V AC
Relative Humidity: 10% ~ 93%
Energy Consumption: 0.02W
Working Temperature: -20 ℃~+70℃
Grafiki promocyjne:
Schemat podłączenia:
Powiązane tematy
Na temat produktów z WiFi opartych na ESP (bądź podobnych układach) napisałem już kilka tematów. Głównie pokazuję tam wnętrza.
Opisuję też tam proces programowania takiego włącznika oraz użycie go z aplikacją producenta (Blitzwolf, SmartLife, Tuya, eWeLink) lub Tasmotą.
Polecam zapoznać się z tymi tematami, nie będę powtarzać wszystkich informacji kilka razy a z reguły dotyczą one wszystkich tego typu produktów.
Lista poniżej:
- BW-LT30 czyli adapter WiFi na żarówkę - test, teardown i wgrywanie firmware ESP (tutaj z przykładem Hello World dla ESP na Arduino IDE)
- Gniazdo elektryczne sterowane przez WiFi - BW-SHP8 - uruchomienie i testy (oparte o moduł TYWE2S)
- Test i wnętrze BW-SS3, czyli włącznika światła na WiFi od Blitzwolfa (oparty o moduł TYWE3S)
- Gniazdo/wtyk z WiFi PS-16-M i aplikacja eWeLink/Coolkit - test i teardown (w środku siedzi luzem ESP8285)
- SmartLife switch - test, wnętrze i programowanie włącznika światła na WiFi (podobny włącznik, ale bez RF i opis programowania go w Arduino poprzez kabelki)
- Włącznik SC3-01 SmartLife i wgrywanie firmware ESP przez WIFI (tuya-convert/OTA) (tym razem programowanie przez WiFi, bez potrzeby otwierania obudowy, bez lutowania kabelków)
- Włącznik WiFi QTouch wpinany tylko w przewód L - test, wnętrze, schemat (ciekawy włącznik, który zrealizowany jest na tyrystorze a nie na przekaźniku, ale też ma w środku ESP8285)
- WiFi SmartLife ściemniacz jednokolorowego paska LED - test, wnętrze, schemat (ciekawy sterownik paska LED na tranzystorze MOSFET i WB3S)
- SmartSwitch Tuya WL-SW01_16 16A WiFi - test, wnętrze (WB2S) (nieco większy przekaźnik na większy prąd)
- Sonoff Basic ZBR3, czyli słynny przekaźnik w wersji na Zigbee. Wnętrze, schemat (małe urozmaicenie od WiFi)
- Czujnik otwarcia drzwi/okna WiFi - test, wnętrze, integracja z resztą urządzeń (czujnik oparty o moduł XR809/XR2)
- Zigbee termometr/higrometr z LCD TS0201 RSH-Z-Bee-HS01 Tuya (zasilany bateryjnie wyświetlacz temperatury/wilgotności, tym razem na Zigbee)
- Wnętrze zegara/termometru/higrometru TH06 i inżynieria wsteczna jego protokołu (kalendarzyk na WB3S i nieco o przetwarzaniu pakietów z danymi w formacie binarnym poprzez program w języku C)
- Czterokanałowy przekaźnik WiFi Tuya SmartLife 4CH 10A [schemat] (nieco większy sterownik, niestety na WB3S)
- Własny otwarty firmware dla XR809 kompatybilny z Tasmota HTTP/Home Assistant (szczegółowy opis jak stworzyć własny wsad dla czujnika drzwi na XR809)
Dodatkowo, temat o Tasmocie i wersji DIY przekaźnika WiFi:
- ESP8266 i Tasmota - sterowanie przekaźnikiem WiFi krok po kroku
Dodatkowo polecam temat o Home Assistant (który może kontrolować zbiór tego typu urządzeń):
Tutorial Home Assistant - konfiguracja, WiFi, MQTT, Zigbee, Tasmota
Przesyłka, zawartość zestawu
Zamówienie złożyłem 24-07, paczka została awizowana (nie zmieściła się do skrzynki) 10-08. Paczuszka wysłana z Belgii.
Włącznik jest w pudełeczku, tylko lekko zabezpieczony przed uszkodzeniem:
Model produktu: WF-DS01
Zawartość zestawu:
Instrukcja:
Wsparcie Tasmoty
W tematach z tej serii często sprawdzałem czy dany produkt wspiera Tasmotę, czyli alternatywny, open-source firmware dla ESP i modułów na nim bazujących.
Tutaj tego nawet sprawdzać nie muszę, gdyż WF-DS01 widnieje dumnie jako wspierany i jest nawet dla niego przygotowany szablon Tasmoty:
https://templates.blakadder.com/WF-DS01.html
Szablon:
Kod: text
Dodatkowo wymaga on wpisania komend:
Backlog Ledtable 0; TuyaMCU 21,2
I powinien działać. Jeśli ktoś ma z nim jakieś problemy, to proszę pytać, spróbuję pomóc. Tymczasem przechodzę już do oglądania wnętrza.
Komenda TuyaMCU bierze się tu stąd, że w środku tego włącznika są zasadniczo dwa mikrokontrolery - jeden z nich to ESP, odpowiada za komunikację przez WiFi, a drugi obsługuje wejścia i wyjścia (tutaj: ściemnianie) i komunikuje się z ESP poprzez UART za pomocą specjalnego protokołu Tuya, który Tasmota na szczęście już wspiera.
Wnętrze WF-DS01
Frontowy panel po prostu trzyma się na zatrzask, wystarczy podważyć go płaskim śrubokrętem:
Wnętrze składa się z dwóch płytek. Płytka z modułem WiFi (TYWE3S) trzyma się tylko na dwóch rzędach goldpinów (jeden z nich jest tylko i wyłącznie zastosowany jako mocowanie mechaniczne):
Płytka kontrolera podpisana jest YDM_WIFI_SV6 FR4 94V0 T=1.2MM 20201231.
Mamy tu pewnie wersję, datę produkcji, a też typ laminatu (FR4). T to pewnie skrót od Thickness, grubość płytki.
Teraz zdjęcie z "ciekawszej" strony, z czytelnymi oznaczeniami układów:
Jest tu TYWE3S - moduł WiFi od Tuya oparty na ESP8266, wiadomo.
CR302 - kontroler przycisków dotykowych w obudowie SOP-16 (wspiera aż do 8 przycisków), raczej bez niespodzianek:
No i MM32F003 - 32-bitowy mikrokontroler oparty o rdzeń ARM Cortex M0.
Czyli niestety tu mamy dwa programowalne układy, zmiana firmware ESP/TYWE3S da nam pełną kontrolę nad włącznikiem tylko jak zaimplementujemy tam wsparcie ich komunikacji, czyli właśnie ten wspomniany TuyaMCU protokół.
Druga płytka, ta na której znajdują się elementy na napięcie sieciowe, mały zasilacz flyback oraz triak do kontroli jasności.
W środku obudowy trzymają ją trzy śrubki.
Rzuca się miejsce na warystor (podpisane VR), sprzedawca oszczędził i go nie umieścił na płytce, a szkoda, bo jego rolą jest ochrona przeciwko przepięciami.
Biały element MOC3052 w obudowie DIP-6 to optotriak, służy do sterowania triakiem:
Służy on do izolacji triaka znajdującego się po stronie 230V od strony niskiego napięcia.
No i sam triak, na radiatorze:
JST24B-800CW w obudowie TO-220F, to mała odmiana, bo w poprzednich produktach tego typu (seria QTouch) widziałem tylko triaki montowane powierzchniowo, bez dodatkowego radiatora (choć wylewka miedzi trochę ciepła też odprowadzała).
Spód płytki:
Mamy tu przede wszystkim prosty zasilacz flyback zrealizowany na DP2525 (układ z PSR, Primary Side Regulation, sprzężenie zwrotne/napięcie odniesienia brane ze strony pierwotnej, ten transoptor obok jest do innego celu):
Przykładowa aplikacja DP2525 (na płytce tu jest nieco inaczej, producent oszczędził i pominął drugi kondensator elektrolityczny oraz dławik):
Oprócz tego dalej jest regulator LDO AMS1117 3.3 zapewniający stabilne 3.3V dla TYWE3S:
I jest transoptor, EL357N, podłączony bezpośrednio do diody D3, nie bierze on udziału w zasilaniu układu, lecz pozwala zbadać narastanie sinusoidy napięcia sieciowego przy zapewnieniu separacji galwanicznej (potrzebne jest do ściemniania by wiedzieć kiedy włączyć triak):
Schemat WF-DS01
Schemat narysowałem w oparciu o płytkę i noty katalogowe elementów ze środka.
Nazwy elementów na schemacie zgadzają się z nazwami elementów na płytce, przykładowo DB1 to Diode Bridge 1 (mostek prostowniczy), SCR1 to Silicon Controlled Rectifier, itp. Wartości podobnie, wartości rezystorów zamontowanych powierzchniowo naniosłem na schemat bez ich odkodowywania.
Można tu wyróżnić moduł zasilacza impulsowego w topologii flyback na DP2525, moduł wykonawczy z triakiem, oraz sekcję z transoptorem (podłączonym do sieci przez diodę prostowniczą i rezystory o dość dużej rezystancji), potrzebną do tego by mikrokontroler wiedział kiedy zaczyna się cykl sinusoidy z sieci.
Na schemacie płytki niskiego napięcia pominąłem podłączenie diod LED, gdyż uznałem je za mało interesujące:
Tu widzimy TYWE3S (czyli moduł z ESP) który odpowiada tylko za komunikację WiFi, MM32FF003 który obsługuje całą funkcjonalność (sterowanie triakiem na bazie ustawionego % jasności i cyklu sinusoidy), CR302 który obsługuje przyciski dotykowe no i wyprowadzone też piny PA14 PA13 od MM32F003 służące pewnie do jego programowania (ale jego programować nie musimy, starczy że wsad ESP będzie obsługiwać protokół komunikacji z nim).
Protokół komunikacji TYWE3S z MM32F003, wsad ESP
W celu podsłuchania komunikacji tych dwóch układów musiałem zasilić płytkę logiki (TYWE3S i pozostałe układy) z własnej płytki stykowej z układem LDO. Nie należy podłączać się z przejściówką USB-UART do włącznika który jest na potencjale sieci.
Przejściówka USB-UART w trybie 3.3V, podpięte 3.3V, masa, TX i RX:
RX na TXD0 od TYWE3S.
Po uruchomieniu i wybraniu Baud 9600 w konsoli UART zobaczyłem:
To samo ale już po capture, w XVI32:
Widać nagłówek pakietu i jego zakończenie (255, 0xff).
Pakiet pojawia się co sekundę. Komunikacja jest binarna. To "U" to charakterystyczna znak dla protokołu TuyaMCU. W ASCI litera U ma kod 0x55.
Z podobnym protokołem miałem do czynienia tutaj:
https://www.elektroda.pl/rtvforum/topic3819498.html
O TuyaMCU można poczytać na stronie Tasmoty:
https://tasmota.github.io/docs/TuyaMCU/
są też tam przykładowe pakiety, one też zaczynają się od bajtu o wartości 0x55:
Również opisane są dokładniej role bajtów i struktura pakietu:
Skoro protokół jest znany, to może spróbujmy zgrać wsad (bo jeszcze nie parowałem tego urządzenia ze swoim WiFi, więc jak zgram wsad to mogę go dać na forum).
Aby zgrać wsad tylko dodałem połączenie GPIO0 do masy i odłaczyłem i podpiąłem zasilanie (by zbootować ESP z GPIO0 na masie). Zgrałem poprzez esptool.py:
O dziwo poszło bez problemów, a myślałem, że będę musiał zwierać pin RESET od drugiego mikrokontrolera do masy bądź go wylutowywać (bo on zajmuje linie UART).
Poniżej umieszczam wsad do pobrania:
Krótki test parowania i działania
Na koniec wypada jednak sprawdzić czy i jak działa ten włącznik w aplikacji. Wybrałem SmartLife.
Parowanie przebiega bez problemów:
Steruje się też dość wygodnie, ale ciekawe jest to, że każde włączenie/wyłączenie światła (przez aplikację i normalnie dotykowo) wykorzystuje animacje ściemniania/podjaśniania. Światło nie gaśnie od razu, lecz np. stopniowo zmniejsza się aż do wyłączenia. Producent najwyraźniej uznał, że coś takiego będzie wyglądać atrakcyjnie i nowocześnie.
Oscylogramy regulacji triakiem
Myślę, że warto jeszcze zobrazować początkującym jak wyglądają przebiegi na wejściu i wyjściu z takiego włącznika.
Na wejściu mamy oczywiście sinusoidę z sieci, ale na wyjściu?
Zaraz zobaczymy, ale najpierw uwaga - wszelkie operacje przy napięciu sieciowym są śmiertelnie niebezpieczne, jak również mogą skutkować uszkodzeniem oscyloskopu (oscyloskop ma wspólne GND które też podłączone jest do PE z gniazda, więc badając układ możemy zrobić zwarcie).
Do testów tu użyłem transformatora separacyjnego.
Włącznik zgaszony - na wejściu (kanał 2) sinusoida, wyjście (kanał 1) martwe:
Po włączeniu - 100% mocy - dwa te same przebiegi nałożone na siebie:
75% mocy:
50% mocy:
25% mocy:
5%:
Bardzo ładnie widać jak sterownik "obcina" sinusoidę. MM32FF003 przez wspomniany wcześniej transoptor z diodą bada kiedy zaczyna narastać sinusoida, potem odczekuje ustalony czas, a potem załącza triak. Tak reguluje moc świecenia żarówki.
Krótki test działania z Tasmotą
(akapit dodany później po pytaniu użytkownika)
Ostatecznie przetestowałem też ten włącznik z Tasmotą, dokładniej wersją 9.5.0 stąd:
http://ota.tasmota.com/tasmota/release/
Z programowaniem przewodowo jest zero problemów:
Przy wklejaniu template trzeba zaznaczyć Activate:
Jeśli coś zrobimy źle, to potem nam w konsoli nie zadziała komenda:
Backlog Ledtable 0; TuyaMCU 21,2
Nie zadziała, czyli otrzymamy "Unknown command". Ale to nie oznacza, że mamy złą wersję Tasmoty, ani że źle wpisaliśmy, po prostu ta komenda działa tylko gdy mamy wybrany Template już i rodzaj urządzenia jako ten o kodzie 54 (Tuya MCU). Można to sprawdzić tutaj:
I końcowo Tasmota prezentuje się tak:
Działanie Tasmoty na filmiku (i jej responsywność):
Zapowiedź kolejnej części
Troszkę już tych włączników omówiłem, dlatego w następnej części z tej serii zajmę się czymś zupełnie innym, a mianowicie kamerą HD WiFi, też od Tuya:
Podsumowanie
Ten ściemniacz jest nieco lepszym wyborem niż jego odpowiednik z serii QTouch. Produkt z tematu jest oficjalnie wspierany przez Tasmotę (mamy do niego gotowy szablon), opiera się o moduł TYWE3S (to plus, bo QTouch ma bezpośrednio na PCB układ ESP), jak również można go łatwo zaprogramować i nie trzeba nic odlutowywać ani zwierać RESET drugiego układu do masy. No i pewnie tuya-convert (sposób przez WiFi/OTA) też dla niego działa.
Trochę nie podobają mi się te skrajne oszczędności na zabezpieczeniach, tutaj to nawet warystora producent nie zamontował (a miejsca na PCB na niego jest).
Chyba, że mi się akurat trafił bez warystora a inne z tej serii go maja?
W każdym razie - pod Tasmotę i własny wsad jest to znacznie lepsza opcja.
Zostaje tylko pytanie na ile awaryjny ten włącznik jest, ale tego nie mogę ocenić bo dopiero co go kupiłem, wiec tu zapytam Was - czy ktoś korzysta z tego typu ściemniaczy i może ma jakieś doświadczenia z ich awaryjnością?
Załączam noty katalogowe mniej znanych układów ze środka oraz oryginalne firmware włącznika (ciekawscy mogą je chociażby zdekompilować w IDA) które zgrałem z niego przed parowaniem (gdyż po parowaniu w pamięci flash ESP są wrażliwe dane, w tym SSID i hasło sieci WiFi często w plaintextcie).
Fajne? Ranking DIY Pomogłem? Kup mi kawę.
