Witajcie moi drodzy.
Przedstawię tutaj wnętrze ogrodowego "inteligentnego" dwukanałowego przekaźnika Tuya/WiFi model CCWFIO232PK, który dostałem w ramach donacji od użytkownika @strigona z Kanady w celu uruchomienia na nim mojego firmware dla mikrokontrolerów z rodziny Beken. Temat będzie podzielony na dwie części - wnętrze produktu a potem podpięcie programatora i wgrywanie wsadu. Ale najpierw specjalne podziękowania dla @strigona - dziękuję, szablon pod ten produkt już został przeze mnie dodany do mojego firmware! Jeśli ktoś chce mi wysłać do testów jakiś inny produkt, to zapraszam na PW.
O co chodzi?
W ramach uzupełnienia polecam zapoznać się z powiązanymi tematami, m. in. z moją inicjatywą pisania własnego wsadu dla BK7231 (odpowiednika Tasmoty na ESP):
WB2S/BK7231 Tutorial - tworzymy własny firmware - UDP/TCP/HTTP/MQTT
[BK7231T] Mój serwer HTTP, konfigurator, wsparcie MQTT z Home Assistant
Samą aplikacje producenta (Tuya/eWeLink/Blitzwolf/SmartLife) opisywałem też w poprzednich tematach z serii. Tu jej tematu nie poruszę.
Dodatkowo: mój tutorial Home Assistant
Dodatkowo, bliźniaczy temat, ale produkcie z BK7231N (nie T!):
Qiachip Smart Switch - BK7231N/CB2S - wnętrze, programowanie
Testy z aplikacją Tuya, automatyzacje
Produkty Tuya testowałem na łamach tego działu już tyle razy, że "oczywistych" funkcjonalności po prostu tu już nie omówię. Odsyłam do poprzednich części - np. tutaj.
Zawartość zestawu i wnętrze produktu
Zestaw @strigona kupił w sklepie Costco. Jego zdaniem wcześniejsze wersje były oparte o ESP8266 i można z nimi było użyć Tasmoty, ale Tuya przerzuca się na układy od Beken...
Paczuszka przybyła do mnie po dość długim czasie:
Poczta Polska nie mogła jej przepuścić - nawet mimo oznaczenia jako "Gift" - i policzyła opłatę pocztową na jakieś 8.5zł, które zapłaciłem przy odbiorze (pani z poczty przyniosła przynajmniej do drzwi paczkę):
Zawartość zestawu:
Cóż, w Kanadzie mają inny standard gniazdek niż u nas. Urządzenie jest na 120V. Myślę, że jednak na 230V też by działało, lecz to trzeba sprawdzić po otwarciu (sprawdzić parametry wszystkich elementów oraz ich noty katalogowe, od kontrolera przetwornicy jaki tam jest, poprzez kondensatory aż po przekaźniki).
Obudowa jest skręcona śrubkami.
W środku mamy dwa przekaźniki, jeden przycisk oraz mikrokontroler 32-bitowy z WiFI BK7231T, ale po prostu umieszczony na głównej PCB urządzenia, a nie w postaci modułu takiego jak WB2S czy tam WB3S:
Na wejściu jest bezpiecznik, warystor, prosty filtr na dławiku:
Sam zasilacz jest beztransformatorowy - zrealizowany na ICW4008.
BK7231T - jego będziemy programować. Tuż obok widać regulator napięcia 3.3V, bo BK pracuje na 3.3V a przekaźnik na 5V (czasem na 12V).
Widać też dwa tranzystory sterujące przekaźnikami.
Od spodu mamy przygotowane pady pod sygnały do programowania, m. in:
- port UART1 (programowanie przez bootloader)
- port UART2 (wyjście debug log z informacjami co robi urządzenie)
- piny SPI (programowanie jeśli bootloader zawiedzie)
- pin CEN (resetowanie układu)
I to tyle - w następnym akapicie już lutujemy i programujemy.
Programowanie BK7231T moim firmware
Pobieramy ostatnie pliki binarne wsadu oraz BKwriter 1.60 z mojego repo:
https://github.com/openshwprojects/OpenBK7231T_App
https://github.com/openshwprojects/OpenBK7231T
Wszystkich operacji dokonujemy po odłączeniu produktu od sieci elektrycznej.
Podłączamy zasilanie z USB do LDO, pinout LM1117, 5V na VIN, masa do masy:
Przewody odizolowujemy, pobielamy, na 1117 dajemy troszkę topnika:
Lutujemy (czystym grotem lutownicy! czyścimy np. metoda z gąbką):
To samo dla 1RX, 1TX i CEN. Port 2TX 2RX jest tylko wyjściem debugowego logu, nie potrzebujemy go jeśli wszystko idzie ok:
Przed lutowaniem pobielamy też pady, też nanosimy topnik, też pobielamy końcóweczki przewodów (wcześniej odizolowane).
Podłączamy konwerter USB UART, tutaj lubiany przeze mnie HW-597 USB to TTL, w trybie 3.3V (zworka między VCC a 3V3), wraz z zasilaniem wyprowadzonym bezpośrednio z USB (nie zadziała z pinu podpisanego 5V gdyż on ma nieco inną rolę):
Uruchamiamy BKwriter 1.60.
Możemy zrobić kopię oryginalnego wsadu (przycisk Read), programowanie odbywa się analogicznie, po prostu najpierw wybieramy jaki wsad chcemy wgrać.
Więc, wybieramy jaki wsad chcemy wgrać (tutaj należy wybrać wersje UA) i rozpoczynamy programowanie (a właściwie to rozpoczynamy oczekiwanie na bootowanie BK):
Teraz, dopóki BKwriter aktywnie czeka na sygnał bootowania BK, tymczasowo łącze CEN z masą (tu jest akurat na pinie USB dongle), dosłownie na sekundkę:
Dopiero wtedy właściwe programowanie się rozpoczęło:
Sukces programowania:
Punkt dostępu BK jest już widoczny:
Podłączamy się do punktu WiFi utworzonego przez BK7231T.
Tu może zajść potrzeba ustawienia naszemu WiFi na sztywno IP np. 192.168.4.10, na wypadek gdyby DHCP nie działało:
Otwieramy stronę 192.168.4.1:
W Config ustawiamy co nam jest potrzebne (np. namiary na nasze domowe WiFi):
Po ustawieniu namiarów na nasze domowe WiFi resetujemy układ. Może też być potrzeba chwilowego odłączenia zasilania lub poczekania minuty, aż urządzenie dołączy do naszej sieci. Jego nowe IP możemy poznać na naszym routerze, w liście klientów DHCP:
Konfiguracja roli pinów, szablony i obsługa przycisków
Urządzenia smart mają różne konfiguracje przycisków, przekaźników i diod LED. Mogą być one podłączone do różnych pinów mikrokontrolera.
Do ustawienia roli poszczególnych wyprowadzeń służy podstrona "Configure Module":
Lewa kolumna to rola pinu (przycisk, przekaźnik, pwm), a prawa to kanał (indywidualny numer przekaźnika, pwm, itd).
Role pinów można poznać eksperymentalnie lub śledząc połączenia na płytce.
Niektóre urządzenia zostały już przeze mnie opracowane, więc istnieją dla nich gotowe konfiguracje - są one w zakładce "Quick config":
Urządzenie z tego tematu jest dość wyjątkowe, ponieważ posiada dwa przekaźniki i jeden przycisk. W oryginalnym wsadzie przekaźnikami można sterować osobno, ale tylko z poziomu aplikacji Tuya. Przycisk albo je oba włącza, albo wyłącza. W tym celu wprowadziłem rolę pinu: "Button Toggle All", która pozwala jednemu przyciskowi wyłączać/włączać wszystkie kanały urządzenia.
Podpięcie do Home Assistant
Docelowo mój wsad pozwala sterować dowolnym urządzeniem tego typu przez MQTT - polecam zapoznać się z zakładkami "configure MQTT" oraz "generate Home Assistant config". Działanie jest analogicznie jak w Tasmocie.
Więcej informacji
Więcej informacji o wsadzie i projekcie znajdziecie na oficjalnym repozytorium:
https://github.com/openshwprojects/OpenBK7231T_App
Podsumowanie
Zaprogramowanie tego sterowanego przez WiFi rozdzielacza nie byłoby możliwe bez mojego wsadu. Dla BK7231T nie ma żadnych alternatywnych firmware, a zamiana na ESP nie wchodzi w grę, bo tutaj nie ma układu WiFi wydzielonego na moduł taki jak WB3S, że można go zamienić na ESP12F, tylko wszystko jest na jednej płytce. Ciężko by było tam podpiąć luzem moduł a taka "rzeźba" już i tak by się nie opłacała.
Mimo wszystko, cała przeróbka poszła łatwo - aby wgrać mój wsad, wystarczy przylutować kabelki, uruchomić BKwriter 1.60 i gotowe.
Na koniec podkreślę, że procedura tu opisana działa dla BK7231T i modułów się na nim opierających, czyli WB2S, WB3S, itp.
Dla BK7231N (wersja N, nie T) procedura jest nieco inna, co opisałem tutaj.
Zostaje jeszcze kwestia pojedynczego przycisku - jeden przycisk dla obu przekaźników. Specjalnie pod to urządzenie zaimplementowałem dla niego rolę w konfiguratorze pinów ("Button Toggle All"). Trochę dziwne, że już skoro producent dał dwa przekaźniki to nie pokusił się o umieszczenie dwóch przycisków... ale może to dlatego, że co najmniej jeden przycisk jest niezbędny do wymuszenia parowania z Tuya (choć widziałem już urządzenia smart gdzie parowanie włącza się bez przycisków - poprzez szybkie włączanie/wyłączanie zasilania).
Teraz myślę, że można by ten przycisk wykorzystać jeszcze lepiej - każde kliknięcie mogłoby przełączać kombinacje przekaźników na kolejną (dwa przekaźniki dają 4 możliwe kombinacje on off), albo np. krótkie wciśnięcie mogłoby przełączać pierwszy przekaźnik, a długie (bądź podwójne) drugi. Być może dodam to w kolejnych rewizjach kodu... polecam śledzić moje repozytorium na Githubie.
A co do rzekomej cechy "outdoor" produktu, to nie oczekiwałbym za wiele. Zdecydowanie powinien być pod daszkiem, a pewnie z czasem i sama wilgoć mu zaszkodzi.
PS: Taka ciekawostka - widzę, że ten produkt (CCWFIO232PK) widnieje na stronie Tasmoty, jako "no longer supported" bo wcześniej w środku był moduł z ESP, a teraz jest Beken:
https://templates.blakadder.com/prime_CCWFIO232PK.html
Cóż, po mojej interwencji produkt jest znów 'supported' - ale tym razem to przez mój firmware.
Fajne? Ranking DIY Pomogłem? Kup mi kawę.
