Witajcie, dzisiaj przedstawię kolejny kontroler paska LED RGB, tym razem nieco bardziej rozbudowany niż te omawiane poprzednio. WX300P oferuje sterowanie przez WiFi z aplikacji Tuya, sterowanie pilotem IR, dwa przyłącza na paski RGB oraz efekty świetlne w rytm muzyki (dźwięk odbierany jest poprzez mikrofon na płytce).
Pasek ten też zrealizowany jest na dość ciekawym mikrokontrolerze, ale o tym na końcu.
Oczywiście głównym celem zabawy będzie programowanie modułu (a właściwie mikrokontrolera) ze środka, ale o tym opowiem w następnym temacie. Ten tutaj temat to będzie tylko test i analiza wnętrza tego kontrolera LED.
Zakup WX300P
Tym razem zakup z Chin, na szczęście obyło się bez cła. Produkt znalazłem pod hasłem "Tuya WiFi Smart RGB LED Strip Controller 4Pin 5-24V APP Control Work With Alexa", choć można szukać też po nazwie modelu. 4Pin oznacza oczywiście 4 przewody, RGB i masa.
Niecałe 10$ (już z przesyłką).
Zestaw nie zawiera samych pasków LED, tylko sam kontroler.
Oto grafiki promocyjne:
Zestaw zawiera sam kontroler i pilot, bez pasków i zasilacza!
Zawartość paczki
Paczkę listonosz włożył do skrzynki. Widać było, że budżetowa wysyłka.
Niby wszystko ok, pilot nawet ma zabezpieczoną bateryjkę folią by się nie wyładowała w magazynie...?
A jednak nie. Tam nie ma bateryjki. Trzeba samemu kupić CR2032 lub podobną. Tego się nie spodziewałem:
Instrukcja z informacjami o parowaniu (np. poprzez wyłączenie zasilania kilkukrotnie lub wciśnięcie długie przycisku On na pilocie IR:
Wnętrze kontrolera
Tym razem ciekawość była silniejsza i zacząłem od zaglądnięcia do środka. Obudowę trzeba podważyć, niestety jeden zaczep mi się wyłamał, ale i tak pozostałe będą trzymać.
Płytka oznaczona SHY680 20210907_V1.2, widać pady od UART (log lub programowanie?), pad RESET...
Wyjmujemy płytkę:
Tu jest już kilka niespodzianek.
1. Co tu robią ukryte przyciski? Nie są wyprowadzone na zewnątrz. Trzeba to sprawdzić.
2. Układ zrealizowany jest na W800-C400, czyżby kolejny kandydat do programowania?
Oprócz tego na płytce mamy:
- trzy tranzystory MOSFET 3400AD (oczywiście wraz z rezystorami bramkowymi, itp)
- osprzęt od W800C400, jego rezonator kwarcowy 40MHz
- osprzęt od antenki WiFi która jest w postaci ścieżki na PCB
- mikrofon
- przetwornice step down dającą 3.3V dla układu WiFi (można poznać chociażby po cewce 4R7 - 4.7uH), oznaczenie GBE0H
- drobny element o oznaczeniu 321 który typuję, że jest wzmacniaczem mikrofonowym
Jeśli ktoś rozszyfrował oznaczenia któregoś z elementów to proszę o komentarz, tymczasem już przechodzę do tego co mnie najbardziej interesuje
Sercem układu jest mikrokontroler WinnerMicro W800-C400, oferujący zarówno łączność przez WiFi jak i przez Bluetooth.
Układ ten posiada dostępne SDK na Github i wygląda na to, że można go łatwo programować.
Sam układ kosztuje około 10 zł:
W sprzedaży są też płytki startowe pod niego, po około 20 zł:
Zainteresuję się nim w następnym temacie z serii.
Podłączenie paska LED
Pierwszy pin (oznaczony strzałką) to zasilanie (wspólne dla wszystkich kanałów). Pozostałe to RGB, zgodnie z kolorami przewodów:
Krótki test z aplikacją Tuya
W instrukcji jest SmartLife, ale te aplikacje to i tak "przemalowany" ten sam system, więc w dużej mierze są między sobą kompatybilne.
Na początku włączyłem Bluetooth, urządzenie już było widziane:
Urządzenie zresetowałem trzymając na pilocie On tak długo aż czerwone diody zaczną migać.
Parowanie poszło bez problemów.
Aplikacja posiada oczywiście te wszystkie timery, automatyzacje, które już opisywałem kilkukrotnie wcześniej:
Pilot też oczywiście działa bez zarzutów.
Co robią ukryte przyciski?
Są trzy, jeden to on-off, drugi zmienia tryb koloru, trzeci włącza tryb muzyczny.
Logi UART
Na padzie TX można posłuchać co się dzieje z urządzeniem - baud 115200.
Przykładowy log:
Spoiler:
[01-01 18:12:15 TUYA Notice][tuya_light_lib.c:462] current rst count: 1
tuya_light_init
channel : 0, pin:16 period:1000
channel : 1, pin:17 period:1000
channel : 2, pin:18 period:1000
[01-01 18:12:15 TUYA Info][tuya_device.c:201] ir_rx_init
[01-01 18:12:15 TUYA Notice][mf_test.c:278] have actived over 15 min, not enter mf_init
[01-01 18:12:15 TUYA Notice][tuya_main.c:315] mf_init succ
< TUYA IOT SDK V:2.5.9 BS:40.00_PT:2.2_LAN:3.3_CAD:1.0.2_CD:1.0.0 >
[FW]: TC0383_W800_STRIP3_RGB_P3 | [HW]: W800 | [SW]: V1.0.0 (Apr 10 2021 09:36:05)|[PID]:npuiw4khsyzclzhl
[01-01 18:12:15 TUYA Notice][tuya_device.c:116] free_mem_size:29752
[01-01 18:12:15 TUYA Notice][gw_intf.c:3761] serial_no is not set
[01-01 18:12:15 TUYA Notice][gw_intf.c:3787] gw_cntl.gw_wsm.stat:2
[01-01 18:12:15 TUYA Notice][gw_intf.c:3790] gw_cntl.gw_wsm.nc_tp:9
[01-01 18:12:15 TUYA Notice][gw_intf.c:3791] gw_cntl.gw_wsm.md:0
[01-01 18:12:15 TUYA Notice][gw_intf.c:3831] gw_cntl.gw_if.abi:0 input:0
[01-01 18:12:15 TUYA Notice][gw_intf.c:3832] gw_cntl.gw_if.product_key:npuiw4khsyzclzhl, input:npuiw4khsyzclzhl
[01-01 18:12:15 TUYA Notice][gw_intf.c:3833] gw_cntl.gw_if.tp:0, input:0
[01-01 18:12:15 TUYA Notice][gw_intf.c:3835] gw_cntl.gw_if.firmware_key:npuiw4khsyzclzhl, input:npuiw4khsyzclzhl
[01-01 18:12:15 TUYA Info][gw_mqc_cb.c:515] register mqc app callback
[01-01 18:12:15 TUYA Notice][tuya_bt_sdk.c:148] ty bt update product:npuiw4khsyzclzhl 0
p->uuid: 20
30 31 30 32 30 30 34 32 32 38 36 64 63 64 61 32 36 38 38 39
device_id_tmp: 16
00 10 02 00 01 02 08 81 8d 30 d2 82 18 82 09 ff
device_id_tmp2: 20
30 31 30 32 30 30 34 32 32 38 36 64 63 64 61 32 36 38 38 39
[01-01 18:12:15 TUYA Notice][tuya_ble_api.c:152] update product_id type:0 npuiw4khsyzclzhl 01020042286dcda26889 OmhmEatH7UyrVU74YRWhyczqpQC6rXTr
[01-01 18:12:15 TUYA Notice][tuya_device.c:157] device_init ok free_mem_size:29560
[01-01 18:12:15 TUYA Notice][tuya_hal_bt.c:348] WM_BT_ADAPTER_PROP_CHG_EVT
[01-01 18:12:15 TUYA Notice][tuya_hal_bt.c:342] WM_BT_ADAPTER_STATE_CHG_EVT
[01-01 18:12:15 TUYA Notice][tuya_hal_bt.c:152] tls_bt_gap_init
[01-01 18:12:15 TUYA Notice][tuya_hal_bt.c:348] WM_BT_ADAPTER_PROP_CHG_EVT
fast station connect v2:1020
[01-01 18:12:15 TUYA Notice][tuya_bt_sdk.c:157] ty bt update localkey
[01-01 18:12:15 TUYA Notice][tuya_ble_api.c:162] update login key len:6
[01-01 18:12:15 TUYA Info][mqc_app.c:215] mqc app start ...
NETIF_WIFI_JOIN_SUCCESS
NETIF_IP_NET_UP
[330]set static done.
device id key : 16
3f 31 99 18 72 f6 5f c6 e9 c7 df bf 08 9f 35 d8
[01-01 01:00:00 TUYA Notice][tuya_hal_bt.c:473] tuya_hal_bt_reset_adv
[01-01 01:00:00 TUYA Notice][tuya_ble_api.c:398] ble adv && resp changed
[01-01 01:00:00 TUYA Notice][mqtt_client.c:1330] mqtt get serve ip success
[01-01 01:00:00 TUYA Notice][tuya_tls.c:596] ret = 0
[01-01 01:00:00 TUYA Notice][mqtt_client.c:1368] mqtt socket create success. begin to connect
[01-01 01:00:00 TUYA Err][mqtt_client.c:1452] ret:1.
[01-01 01:00:00 TUYA Notice][mqtt_client.c:1414] mqtt socket connect success. begin to subscribe [smart/device/in/bfc6c65d509c5b4d51czzx]
[01-01 01:00:00 TUYA Err][mqtt_client.c:1452] ret:1.
[01-01 01:00:01 TUYA Notice][gw_intf.c:1104] get ap info: len:1020
[01-01 01:00:03 TUYA Notice][tuya_hal_bt.c:62] adv enabled(0)...
[01-01 01:00:03 TUYA Notice][tuya_ble_api.c:267] rev ble event 3
device id key : 16
3f 31 99 18 72 f6 5f c6 e9 c7 df bf 08 9f 35 d8
[01-01 01:00:03 TUYA Notice][tuya_hal_bt.c:473] tuya_hal_bt_reset_adv
[01-01 01:00:03 TUYA Notice][tuya_ble_api.c:398] ble adv && resp changed
[01-01 01:00:05 TUYA Err][uf_flash_file_app.c:266] uf_open netcfg_log err 8
errno is: 0
768 upolad log seq log: http | 2.5.10 | 01-01 00:00:17 | erc:0 | [20:atop.online.debug.log | 25:23] 0 1
[01-01 01:00:28 TUYA Err][httpc.c:532] tcp connect failed a3.tuyaeu.com:443 errno=113
[01-01 01:00:28 TUYA Err][http_inf.c:48] Open session failed: https://a3.tuyaeu.com/d.json?a=atop.online.debug.log&devId=bfc6c65d509c5b4d51czzx&et=1&t=10&sign=b2d0ad0d278a26c64a40ace4b1c5207a (-7)
[01-01 01:00:28 TUYA Err][iot_httpc.c:1045] Post Data Return Fail.23
[01-01 01:00:29 TUYA Err][gw_intf.c:5813] http_put_rst_log err:23 1
[12-31 17:00:32 TUYA Err][svc_online_log_mqtt.c:50] call mqc_custom_pub_sync((BYTE_T *)data, len, topic, qos, time_out) return -926
[12-31 17:00:32 TUYA Err][svc_online_log.c:233] call online_log_mqtt_publish_sync(p_log, strlen(p_log), s_log_ctx.logseq_topic, 1, 0) return -926
[12-31 17:00:33 TUYA Err][uf_flash_file_app.c:266] uf_open netcfg_log err 8
errno is: 0
[12-31 17:00:35 TUYA Err][uni_network.c:224] fail to gethostbyname 0
[12-31 17:00:35 TUYA Err][httpc.c:448] No entry for host a3.tuyaeu.com found. -2000
[12-31 17:00:35 TUYA Err][httpc.c:523] Socket creation for a3.tuyaeu.com:443 failed
[12-31 17:00:35 TUYA Err][http_inf.c:48] Open session failed: https://a3.tuyaeu.com/d.json?a=tuya.device.dynamic.config.get&devId=bfc6c65d509c5b4d51czzx&et=1&t=29&v=1.0&sign=097346f27b2477e5637dd9fe0639a274 (-15)
[12-31 17:00:35 TUYA Err][iot_httpc.c:1045] Post Data Return Fail.23
[12-31 17:00:35 TUYA Err][gw_intf.c:6077] op_ret:23
[12-31 17:00:36 TUYA Err][svc_online_log_mqtt.c:50] call mqc_custom_pub_sync((BYTE_T *)data, len, topic, qos, time_out) return -926
[12-31 17:00:36 TUYA Err][svc_online_log.c:233] call online_log_mqtt_publish_sync(p_log, strlen(p_log), s_log_ctx.logseq_topic, 1, 0) return -926
[12-31 17:00:36 TUYA Err][log_seq.c:762] upload loq seq logseq0 fail -926. try next time
[12-31 17:00:41 TUYA Err][uf_flash_file_app.c:266] uf_open netcfg_log err 8
errno is: 0
[12-31 17:00:44 TUYA Notice][mqtt_client.c:1765] three time outtime: mqtt close
[12-31 17:00:44 TUYA Notice][mqtt_client.c:820] close mqtt -->>
[12-31 17:00:44 TUYA Err][svc_online_log_mqtt.c:50] call mqc_custom_pub_sync((BYTE_T *)data, len, topic, qos, time_out) return -926
[12-31 17:00:44 TUYA Err][mqtt_client.c:710] tuya_hal_net_recv err:-3 errno:9
[12-31 17:00:44 TUYA Err][svc_online_log.c:233] call online_log_mqtt_publish_sync(p_log, strlen(p_log), s_log_ctx.logseq_topic, 1, 0) return -926
[12-31 17:00:44 TUYA Err][log_seq.c:762] upload loq seq logseq0 fail -926. try next time
[12-31 17:00:44 TUYA Notice][mqtt_client.c:864] close mqtt <<--
[12-31 17:00:44 TUYA Err][mqtt_client.c:1476] __mq_recv err op_ret:0 recv_len:0
[12-31 17:00:44 TUYA Notice][mqtt_client.c:1527] MQ_EXIT_ERR : mqtt close
[12-31 17:00:44 TUYA Notice][mqtt_client.c:820] close mqtt -->>
[12-31 17:00:44 TUYA Notice][mqtt_client.c:864] close mqtt <<--
[12-31 17:00:53 TUYA Err][httpc.c:532] tcp connect failed a3.tuyaeu.com:443 errno=113
[12-31 17:00:53 TUYA Err][http_inf.c:48] Open session failed: https://a3.tuyaeu.com/d.json?a=tuya.device.timer.count&devId=bfc6c65d509c5b4d51czzx&et=1&t=1546272035&v=4.0&sign=ba4bc40a3bb193e51ac6616f265b17e3 (-7)
[12-31 17:00:53 TUYA Err][iot_httpc.c:1045] Post Data Return Fail.23
[12-31 17:01:04 TUYA Err][httpc.c:532] tcp connect failed h3.iot-dns.com:443 errno=113
[12-31 17:01:04 TUYA Err][http_inf.c:48] Open session failed: https://h3.iot-dns.com/v1/dns_query (-7)
[12-31 17:01:04 TUYA Err][tuya_iot_com_api.c:110] custom dns fail.m2.tuyaeu.com
[12-31 17:01:04 TUYA Err][mqtt_client.c:1312] resolve mqtt host Fail:m2.tuyaeu.com
[12-31 17:01:12 TUYA Err][uni_network.c:224] fail to gethostbyname 0
[12-31 17:01:12 TUYA Err][mqtt_client.c:1312] resolve mqtt host Fail:m2.tuyaeu.com
[12-31 17:01:31 TUYA Err][httpc.c:532] tcp connect failed h3.iot-dns.com:443 errno=113
[12-31 17:01:31 TUYA Err][http_inf.c:48] Open session failed: https://h3.iot-dns.com/v1/dns_query (-7)
[12-31 17:01:31 TUYA Err][tuya_iot_com_api.c:110] custom dns fail.m2.tuyaeu.com
[12-31 17:01:31 TUYA Err][mqtt_client.c:1312] resolve mqtt host Fail:m2.tuyaeu.com
[12-31 17:01:39 TUYA Err][smart_frame.c:2284] mqtt async send fail -916
[12-31 17:01:39 TUYA Err][tuya_light_lib.c:1341] sf_obj_dp_report err:-916
[12-31 17:01:40 TUYA Err][smart_frame.c:2284] mqtt async send fail -916
[12-31 17:01:40 TUYA Err][tuya_light_lib.c:1341] sf_obj_dp_report err:-916
[12-31 17:01:43 TUYA Err][httpc.c:532] tcp connect failed h3.iot-dns.com:443 errno=113
[12-31 17:01:43 TUYA Err][http_inf.c:48] Open session failed: https://h3.iot-dns.com/v1/dns_query (-7)
[12-31 17:01:43 TUYA Err][tuya_iot_com_api.c:110] custom dns fail.a3.tuyaeu.com
[12-31 17:01:43 TUYA Err][smart_frame.c:2284] mqtt async send fail -916
[12-31 17:01:43 TUYA Err][tuya_light_lib.c:1341] sf_obj_dp_report err:-916
[12-31 17:01:43 TUYA Err][httpc.c:448] No entry for host a3.tuyaeu.com found. -1977
[12-31 17:01:43 TUYA Err][httpc.c:523] Socket creation for a3.tuyaeu.com:443 failed
[12-31 17:01:43 TUYA Err][http_inf.c:48] Open session failed: https://a3.tuyaeu.com/d.json?a=tuya.device.timer.astronomical.list&devId=bfc6c65d509c5b4d51czzx&et=1&t=1546272085&v=1.0&sign=0caee657482b6acbcb88b062bedadab9 (-15)
[12-31 17:01:43 TUYA Err][iot_httpc.c:1045] Post Data Return Fail.23
[12-31 17:01:43 TUYA Err][astro_timer.c:321] httpc_astro_timer_list error:23
[12-31 17:01:43 TUYA Err][astro_timer.c:397] astro timer update failed 23, next update time 43200s
[12-31 17:01:51 TUYA Err][httpc.c:532] tcp connect failed h3.iot-dns.com:443 errno=113
[12-31 17:01:51 TUYA Err][http_inf.c:48] Open session failed: https://h3.iot-dns.com/v1/dns_query (-7)
[12-31 17:01:51 TUYA Err][tuya_iot_com_api.c:110] custom dns fail.m2.tuyaeu.com
[12-31 17:01:51 TUYA Err][mqtt_client.c:1312] resolve mqtt host Fail:m2.tuyaeu.com
Urządzenie identyfikuje się jako:
Cytat:
< TUYA IOT SDK V:2.5.9 BS:40.00_PT:2.2_LAN:3.3_CAD:1.0.2_CD:1.0.0 >
[FW]: TC0383_W800_STRIP3_RGB_P3 | [HW]: W800 | [SW]: V1.0.0 (Apr 10 2021 09:36:05)|[PID]:npuiw4khsyzclzhl
Test mikrofonu
Dla zasady nagrałem jeszcze filmiki jak działa efekt świetlny sterowany muzyką.
Pierwszy filmik pokazuje reakcje na... uderzanie śrubokrętem o blat, a dwa kolejne to już normalne testy z legalną muzyką puszczaną z Youtube:
Podsumowanie
To chyba mimo wszystko najciekawszy pasek LED jaki do tej pory testowałem. Nie sądzę, by on w rzeczywistości miał te 144W które mi mignęło w instrukcji, ale i tak jest nieźle. Podwójne wyjście na pasek LED też jest wygodne. Podobają mi się również te 'ukryte' przyciski, szkoda, że nie wyprowadzili ich poza obudowę.
Same efekty świetlne sterowane muzyką według mnie są bardzo słabe, wręcz mam problem z odczuciem czy on rzeczywiście miga czasem wedle tej muzyki, czy miga sobie jak chce...
Aplikacji Tuya i ichniejszych automatyzacji już oczywiście nie omawiałem - było o tym wiele razy wcześniej.
Znajdujący się w środku mikrokontroler WiFi & Bluetooth W800-C400 z kolei da się programować. Jest dostępne całe SDK i toolset. Zamierzam to opisać szczegółowo za kilka dni w sekcji Artykuły i może podjąć próbę przeniesienia mojego OpenBeken na tę platformę.
Poniżej mała zapowiedź:
Tak, "Hello World" już działa... a nawet mają do tego "swoje" IDE (a właściwie Eclipse, klasyka)
Fajne? Ranking DIY Pomogłem? Kup mi kawę.
