logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wnętrze kontrolera paska LED WiFi - LTK5050/30RGB-WF/5, konfiguracja pilota IR, wnętrze zasilacza

p.kaczmarek2 09 Wrz 2024 12:35 1464 1
  • Cztery kontrolery paska LED połączone przewodami.
    Wraz z kolegą @DeDaMrAz kupiliśmy kilka kontrolerów paska LED Tuya aby przerobić je do działania z Home Assistant. Pokażę tu jak zmienić im wsad, skonfigurować ich GPIO oraz również jak obsłużyć zdarzenia IR (pilot) w OpenBeken. Dodatkowo zajrzymy też do środka zasilacza - jak bardzo oszczędził na nim chińczyk?

    Zacznijmy od prezentacji zestawu. Tyle otrzymujemy za 18€:
    Zestaw LED RGB Prosto z pilotem, opakowanie
    Oznaczenie:
    Prostokątne pudełko z oznaczeniami i kodem kreskowym.
    W środku jest też pasek LED i pilot, a nawet zasilacz:
    Zestaw z kontrolerem paska LED Tuya i zasilaczem w pudełku
    Pilot w zestawie ma bateryjkę.
    Zestaw LED z kontrolerem, pilotem i zasilaczem

    Wnętrze, wgrywanie OpenBeken, GPIO
    Obudowa jest na zatrzask. Zaglądamy do środka:
    Moduł sterownika LED z okablowaniem na ciemnym tle Płytka drukowana SHY690-V1.4 z podłączonymi przewodami
    W środku jest moduł CBU, czyli BK7231N. Oto CBU pinout:
    Widok z góry modułu CBU z pinami i wymiarami
    Jego wyprowadzenia (z dokumentacji Tuya; nietłumaczone):
    Pin numberSymbolI/O typeFunction
    1P14I/OCommon GPIO, which can be reused as SPI_SCK (Correspond to Pin 11 of the IC)
    2P16I/OCommon GPIO, which can be reused as SPI_MOSI (Correspond to Pin 12 of the IC)
    3P20I/OCommon GPIO (Correspond to Pin 20 of the IC)
    4P22I/OCommon GPIO (Correspond to Pin 18 of the IC)
    5ADCI/OADC, which corresponds to P23 on the internal IC (Correspond to Pin 17 of the IC)
    6RX2I/OUART_RX2, which corresponds to P1 on the internal IC. (Correspond to Pin 28 of the IC)
    7TX2I/OUART_TX2, which is used for outputting logs and corresponds to P0 of the internal IC (Correspond to Pin 29 of the IC)
    8P8I/OSupport hardware PWM (Correspond to Pin 24 of the IC)
    9P7I/OSupport hardware PWM (Correspond to Pin 23 of the IC)
    10P6I/OSupport hardware PWM (Correspond to Pin 22 of the IC)
    11P26I/OSupport hardware PWM (Correspond to Pin 15 of the IC)
    12P24I/OSupport hardware PWM (Correspond to Pin 16 of the IC)
    13GNDPPower supply reference ground
    143V3PPower supply 3V3
    15TX1I/OUART_TX1, which is used for transmitting user data and corresponds to Pin 27 of the IC. For the MCU solution, please refer to CBx Module.
    16RX1I/OUART_RX1, which is used for receiving user data and corresponds to Pin 26 of the IC. For the MCU solution, please refer to CBx Module.
    17P28I/OCommon GPIO (Correspond to Pin 10 of the IC)
    18CENI/OReset pin, low active (internally pulled high), compatible with other modules (Correspond to Pin 21 of the IC)
    19P9I/OCommon GPIO (Correspond to Pin 25 of the IC)
    20P17I/OCommon GPIO, which can be reused as SPI_MISO (Correspond to Pin 14 of the IC)
    21P15I/OCommon GPIO, which can be reused as SPI_CS (Correspond to Pin 13 of the IC)
    Test pointCSNI/OMode selection pin. If it is connected to the ground before being powered on, enter the firmware test mode. If it is not connected or connected to VCC before being powered on, enter the firmware application mode. Correspond to Pin 19 on the internal IC.

    Wgrywamy na niego OpenBeken:
    https://github.com/openshwprojects/OpenBK7231T_App
    Zgodnie z instrukcją Flashera:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    Można też obejrzeć nasze filmiki instruktarzowe, zwłaszcza te pod BK7231N:
    https://www.youtube.com/watch?v=L6d42IMGhHw&l...CZDbczAXT94BuSGrd_GoM&ab_channel=Elektrodacom
    W ten sposób wykonaliśmy najpierw kopie wsadu wszystkich czterech urządzeń, dostępną tutaj:
    https://github.com/openshwprojects/FlashDumps/commit/dd22f9c6b013a32e96f7e23ccbd2e5c719571104
    a potem wgraliśmy OBK.

    Szablon OpenBeken:
    Kod: JSON
    Zaloguj się, aby zobaczyć kod

    Tutorial wgrywania szablonu:



    Wszystko działa, również z Home Assistant, patrz instrukcja parowania OBK:




    Testy pilota
    Zaczęliśmy od testów z Flipperem Zero, chociaż OBK by też dało radę. Pilot korzysta z NEC. Oto podgląd kilku podstawowych klawiszy:
    Czerwony:
    Ekran Flipper Zero pokazujący kody IR w trybie NECext
    Zielony:
    Ekran interfejsu NECExt na urządzeniu z wyświetlaczem graficznym.
    Niebieski:
    Interfejs użytkownika urządzenia Flipper Zero z opcjami NECext
    Biały:
    Interfejs urządzenia z wyświetlonymi kodami NEC: A i C.
    W OBK z kolei wystarczy ustawić rolę IRRecv dla odpowiedniego pinu oraz wykonać startDriver IR:
    
    Info:MAIN:Time 771, idle 121038/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 0 (32 bits) took 0ms
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 1 (0 bits) took 0ms
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 1 (0 bits) took 0ms
    Info:MAIN:Time 772, idle 131402/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:MAIN:Time 773, idle 133434/s, free 75232, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 3/38 
    Info:MAIN:Time 774, idle 150269/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 0 (32 bits) took 0ms
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 1 (0 bits) took 0ms
    Info:MAIN:Time 775, idle 137090/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:MAIN:Time 776, idle 127325/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 0 (32 bits) took 0ms
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 1 (0 bits) took 0ms
    Info:MAIN:Time 777, idle 127220/s, free 75232, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 3/38 
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 0 (32 bits) took 0ms
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 1 (0 bits) took 0ms
    Info:MAIN:Time 778, idle 125833/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:MAIN:Time 779, idle 123395/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 0 (32 bits) took 0ms
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 1 (0 bits) took 0ms
    Info:MAIN:Time 780, idle 133632/s, free 75448, MQTT 0(48), bWifi 1, secondsWithNoPing 1, socks 2/38 
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 0 (32 bits) took 0ms
    Info:IR:IR MQTT publish IR_NEC 0xFBE2 0x1C 1 (0 bits) took 0ms
    Info:MQTT:mqtt_host empty, not starting mqtt
    

    Też działa! Kody IR są poprawnie widziane.
    Tak można zebrać kody IR, potem trzeba przypisać im działania.
    Zgodnie z dokumentacją:
    https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/commands.md
    oraz z naszym filmikiem:



    utworzyliśmy autoexec.bat:
    
    startDriver IR
    
    //all LED's ON
    addEventHandler2 IR_NEC 0xFBE2 0x26 led_enableAll 1
    //all LED's OFF
    addEventHandler2 IR_NEC 0xFBE2 0x25 led_enableAll 0
    
    //setting RGB
    //RED
    addEventHandler2 IR_NEC 0xFBE2 0x1C led_basecolor_rgb FF0000
    //GREEN
    addEventHandler2 IR_NEC 0xFBE2 0x52 led_basecolor_rgb 00FF00
    //BLUE
    addEventHandler2 IR_NEC 0xFBE2 0x53 led_basecolor_rgb 0000FF
    //WHITE
    addEventHandler2 IR_NEC 0xFBE2 0x2 led_basecolor_rgb FFFFFF
    
    //setting brightness 
    addEventHandler2 IR_NEC 0xFBE2 0x5A add_dimmer 5 
    addEventHandler2 IR_NEC 0xFBE2 0x10 add_dimmer -5
    

    Skrypt steruje sterownik IR a potem dodaje obsługę zdarzeń IR_NEC gdzie wpisane są przechwycone informacje o wysyłanych komendach. Odpowiednie komendy są mapowane na polecenia dla OBK, by np. ustawić dany kolor albo włączyć/wyłączyć pasek.

    Wnętrze zasilacza
    Znów klejona obudowa. Patrzymy:
    Wnętrze budżetowego zasilacza z elementami elektronicznymi. Płytka PCB z komponentami elektronicznymi z wnętrza zasilacza
    Kompletna klasyka. Tak jak zwykle. Prosty rezystor bezpiecznikowy na wejściu i zintegrowany kontroler flyback PSR (Primary Side Regulation). Tylko uzwojenie pomocnicze do zasilania z diodą prostowniczą oraz gasik (na drugiej diodzie i z tym zielonym kondensatorem). Po stronie wtórnej dioda Schottkiego i jeden kondensator (mam nadzieję, że low ESR):
    Fragment dokumentacji technicznej z opisem układu ZS292XDM.
    Schemat typowej aplikacji elektronicznej.
    Po prostu to samo co zwykle.


    Podsumowanie
    Całkiem niezły zestaw, ale zasilacz jak zwykle budżetowy.
    Wsad jest łatwo zmienić, a OpenBeken po wgraniu ogarnie nawet pilota.
    Jest tam jeszcze mikrofon, ale nie mieliśmy potrzeby uruchamiać go z kolegą.
    Wszystkie paski przekonwertowaliśmy do Home Assistant i jesteśmy z nich zadowoleni.
    Swoją drogą, nie było jeszcze kontrolera paska LED na module CBU na naszym forum. To otwiera nowe możliwości modyfikacji. Można by np. podłączyć WS2812B do P16 dostępnego właśnie na CBU, a problematycznego przy CB2S/CB3S (nie jest tam wyprowadzony).
    Niestety tutaj też muszę troszkę ponarzekać - to kolejny produkt bez fizycznego przycisku. I co, jak zgubimy telefon (i pilot) to nie wyłączymy światła? Na szczęście po zmianie firmware można to łatwo naprawić:
    https://www.youtube.com/watch?v=vDh8Y_NDrb4&ab_channel=Elektrodacom
    No i też można po prostu skonfigurować np. włącznik światła (też z OBK) tak by sterował tym paskiem, ale o tym innym razem.
    Podsumowując - można zastanowić się nad takim zestawem, z Home Assistant na pewno da się go uruchomić 100% lokalnie.

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
REKLAMA