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

OpenBeken do listwy świetlnej (AM-RGB-LB-5) firmy Sky-Lighting z BK7231N i WS2812B

emarck 25 Lip 2025 13:54 1281 5

TL;DR

  • Przeróbka listwy świetlnej RGB Sky-Lighting AM-RGB-LB-5 na OpenBeken dla układu BK7231N i adresowalnych LED WS2812B.
  • Płytka PBL6231N-5523CD1 korzysta z Wi‑Fi Tuya, zasilania USB-A 5 V i 33 diod RGBIC sterowanych pilotem IR, aplikacją lub muzyką z mikrofonu.
  • CloudCutter nie zadziałał, bo firmware 1.1.16 z klasą oem_bk7231n_slide_strip_ty jest już załatany; flashowanie musi iść przez GND, 3V3, TX1 i RX1.
  • Konfiguracja OpenBeken uruchamia DDP, SM16703P, NTP i PixelAnim oraz odtwarza trzy statyczne wzory i animacje tęczy, ognia oraz spadającej gwiazdy.
  • Mikrofon na P23 nie jest jeszcze obsługiwany, a przycisk zasilania zyskał też regulację jasności i wybór jednokolorowych wzorów.
Wygenerowane przez model językowy.
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
📢 Słuchaj (AI):
  • Listwa świetlna RGB (AM-RGB-LB-5) firmy Sky-Lighting jest dostępna pod różnymi markami od około lipca 2024 roku, na przykład w Action DE i Amazon.de . Zazwyczaj jest on zintegrowany z inteligentnym domem za pomocą aplikacji LSC Smart Connect lub Smart Life.

    OpenBeken do listwy świetlnej (AM-RGB-LB-5) firmy Sky-Lighting z BK7231N i WS2812B

    Producent Sky-Oświetlenie
    Nazwa modelu RGB Light Bar
    Numer modelu AM-RGB-LB-5
    Nazwa płyty głównej PBL6231N-5523CD1


    Produkty

    Nazwa marki Battletron Sailsco
    Nazwa produktu LED Light Bar Light Bar 40cm RGBIC
    Numer produktu 6232000900 X00239890H
    GTIN-13 (EAN-13) 8712879162735


    Zasada działania

    Zasilanie jest dostarczane poprzez standardowe złącze USB Standard-A, ale zasilacz (5 V, 1 A) nie jest dołączony do produktu. Bezpośrednio na płytce drukowanej zastosowano mikrokontroler BK7231N firmy Beken, który łączy się z chmurą Tuya za pośrednictwem Wi-Fi i steruje paskiem świetlnym o długości 40 cm. 33 indywidualnie adresowalne diody LED RGBIC (WS2812B) mogą być obsługiwane za pomocą pilota na podczerwień, aplikacji lub muzyki przez mikrofon.


    Firmware miga

    Chociaż pasek świetlny może być obsługiwany tylko lokalnie za pomocą pilota zdalnego sterowania i w trybie muzycznym, nie można odłączyć się od chmury Tuya za pomocą CloudCutter. Wstępnie zainstalowane oprogramowanie układowe w wersji 1.1.16 z klasą oem_bk7231n_slide_strip_ty zostało już załatane przed znaną luką.
    Dlatego OpenBeken musi zostać sflashowany przez interfejs szeregowy (GND, 3V3, TX1, RX1).

    Zbliżenie na płytkę PCB PBL6231N-5523CD1 z trzema przyciskami i oznaczeniami pinów


    Konfiguracja oprogramowania

    Szablon OpenBeken:
    {
      "vendor": "Sky-Lighting",
      "bDetailed": "0",
      "name": "RGB Light Bar",
      "model": "AM-RGB-LB-5",
      "chip": "BK7231N",
      "board": "on PCB",
      "flags": "2251937252643840",
      "keywords": [
        "PBL6231N-5523CD1",
        "Action",
        "3207958",
        "Battletron",
        "6232000900",
        "Gaming",
        "LSC",
        "8712879162735",
        "Sailsco",
        "X00239890H",
        "Ambient",
        "LED",
        "RGBIC",
        "WS2812B",
        "Buttons",
        "IR Receiver",
        "IR Remote",
        "Microphone",
        "USB",
        "5V",
        "0.9A"
      ],
      "pins": {
        "8": "AlwaysHigh;0",
        "16": "SM16703P_DIN;0",
        "20": "Btn_SmartLED;0",
        "22": "Btn_ScriptOnly;3",
        "26": "IRRecv;0",
        "28": "Btn_ScriptOnly;2"
      },
      "command": "PowerSave 1",
      "image": "https://obrazki.elektroda.pl/9941091200_1753433119.webp",
      "wiki": "https://www.elektroda.com/rtvforum/topic4131618.html"
    }

    Zawartość pliku autoexec.bat:
    // Enable DDP (Distributed Display Protocol) driver
    startDriver DDP
    
    // Enable addressable LED (WS2812B) driver
    startDriver SM16703P
    
    // Init LEDs
    SM16703P_Init 33 GRB // 33 LEDs in GRB (Green Red Blue) order
    
    // Enable NTP (Network Time Protocol) driver
    startDriver ntp
    
    // Config local NTP server IP address
    //ntp_setServer 192.168.1.1 // OpenWrt
    //ntp_setServer 192.168.10.1 // LibreCMC
    ntp_setServer 192.168.178.1 // Fritz!Box
    
    // Config timezone
    //ntp_timeZoneOfs -05:00 // EST (Eastern Standard Time)
    ntp_timeZoneOfs +01:00 // CET (Central European Time)
    
    // Config location
    //ntp_setLatlong 38.895 -77.036667 // District of Columbia, United States
    ntp_setLatlong 52.518611 13.408333 // Berlin, Germany
    
    // Enable animation driver
    startDriver PixelAnim
    
    // Add names to the buttons
    //setChannelLabel 1 "Power" 1
    setChannelLabel 2 "Mode" 1
    setChannelLabel 3 "Music 1
    
    // Config animations (0 = Rainbow Cycle, 1 = Fire, 2 = Shooting Star, 3 = Comet, 4 = Theater Chase, 5 = Theater Chase Rainbow)
    setChannel 20 -1 // Initialize animation index
    setChannelLabel 20 "Animation Index"
    alias nextAnimation backlog addChannel 20 1 0 5 1; Anim $CH20 // Cycle animation index upwards
    alias previousAnimation backlog addChannel 20 -1 0 5 1; Anim $CH20 // Cycle animation index downwards
    setChannel 21 10 // Initialize animation speed
    setChannelLabel 0 "Animation Speed"
    alias adjustAnimationSpeed backlog addChannel 21 1 0 10 1; AnimSpeed $CH21 // Cycle animation speed
    
    // Config buttons
    SetButtonTimes 10 3 3
    addEventHandler OnClick 28 nextAnimation
    addEventHandler OnDblClick 28 previousAnimation
    addEventHandler OnHold 28 adjustAnimationSpeed
    
    // Config IR remote
    addEventHandler2 IR_NEC 0x0 0x45 led_enableAll 1 // On
    addEventHandler2 IR_NEC 0x0 0x47 led_enableAll 0 // Off
    addEventHandler2 IR_NEC 0x0 0x44 led_basecolor_rgb #FF0000 // Red
    addEventHandler2 IR_NEC 0x0 0x40 led_basecolor_rgb #00FF00 // Lime
    addEventHandler2 IR_NEC 0x0 0x43 led_basecolor_rgb #0000FF // Blue
    addEventHandler2 IR_NEC 0x0 0x7 led_basecolor_rgb #FF8000 // Some Orange
    addEventHandler2 IR_NEC 0x0 0x15 led_basecolor_rgb #00FF80 // Some SpringGreen
    addEventHandler2 IR_NEC 0x0 0x9 led_basecolor_rgb #00FFFF // Cyan
    addEventHandler2 IR_NEC 0x0 0x16 led_basecolor_rgb #FFFF00 // Yellow
    addEventHandler2 IR_NEC 0x0 0xD led_basecolor_rgb #FF00FF // Magenta
    addEventHandler2 IR_NEC 0x0 0x19 nextAnimation
    addEventHandler2 IR_NEC 0x0 0x18 led_basecolor_rgb #FFFFFF // White
    addEventHandler2 IR_NEC 0x0 0xC add_dimmer 20 // Brighter
    addEventHandler2 IR_NEC 0x0 0x5E add_dimmer -20 // Darker
    addEventHandler2 IR_NEC 0x0 0x8 backlog SM16703P_SetPixel 0 255 0 0; SM16703P_SetPixel 1 255 0 0; SM16703P_SetPixel 2 255 0 0; SM16703P_SetPixel 3 255 0 0; SM16703P_SetPixel 4 255 0 0; SM16703P_SetPixel 5 255 128 0; SM16703P_SetPixel 6 255 255 0; SM16703P_SetPixel 7 255 255 0; SM16703P_SetPixel 8 255 255 0; SM16703P_SetPixel 9 255 255 0; SM16703P_SetPixel 10 0 255 0; SM16703P_SetPixel 11 0 255 0; SM16703P_SetPixel 12 0 255 0; SM16703P_SetPixel 13 0 255 0; SM16703P_SetPixel 14 0 255 0; SM16703P_SetPixel 15 0 255 128; SM16703P_SetPixel 16 0 255 255; SM16703P_SetPixel 17 0 255 255; SM16703P_SetPixel 18 0 255 255; SM16703P_SetPixel 19 0 255 255; SM16703P_SetPixel 20 0 0 255; SM16703P_SetPixel 21 0 0 255; SM16703P_SetPixel 22 0 0 255; SM16703P_SetPixel 23 0 0 255; SM16703P_SetPixel 24 0 0 255; SM16703P_SetPixel 25 255 0 255; SM16703P_SetPixel 26 255 0 255; SM16703P_SetPixel 27 255 0 255; SM16703P_SetPixel 28 255 0 255; SM16703P_SetPixel 29 255 255 255; SM16703P_SetPixel 30 255 255 255; SM16703P_SetPixel 31 255 255 255; SM16703P_SetPixel 32 255 255 255; SM16703P_Start // 5 Red, 1 Some Orange, 4 Yellow, 5 Lime, 1 Some SpringGreen, 4 Cyan, 5 Blue, 4 Magenta, 4 White
    addEventHandler2 IR_NEC 0x0 0x1C backlog SM16703P_SetPixel 0 255 0 0; SM16703P_SetPixel 1 255 0 0; SM16703P_SetPixel 2 255 0 0; SM16703P_SetPixel 3 255 0 0; SM16703P_SetPixel 4 255 0 0; SM16703P_SetPixel 5 255 0 0; SM16703P_SetPixel 6 255 0 0; SM16703P_SetPixel 7 255 0 0; SM16703P_SetPixel 8 255 0 0; SM16703P_SetPixel 9 255 0 0; SM16703P_SetPixel 10 255 0 0; SM16703P_SetPixel 11 0 255 0; SM16703P_SetPixel 12 0 255 0; SM16703P_SetPixel 13 0 255 0; SM16703P_SetPixel 14 0 255 0; SM16703P_SetPixel 15 0 255 0; SM16703P_SetPixel 16 0 255 0; SM16703P_SetPixel 17 0 255 0; SM16703P_SetPixel 18 0 255 0; SM16703P_SetPixel 19 0 255 0; SM16703P_SetPixel 20 0 255 0; SM16703P_SetPixel 21 0 255 0; SM16703P_SetPixel 22 0 0 255; SM16703P_SetPixel 23 0 0 255; SM16703P_SetPixel 24 0 0 255; SM16703P_SetPixel 25 0 0 255; SM16703P_SetPixel 26 0 0 255; SM16703P_SetPixel 27 0 0 255; SM16703P_SetPixel 28 0 0 255; SM16703P_SetPixel 29 0 0 255; SM16703P_SetPixel 30 0 0 255; SM16703P_SetPixel 31 0 0 255; SM16703P_SetPixel 32 0 0 255; SM16703P_Start // 11 Red, 11 Lime, 11 Blue
    addEventHandler2 IR_NEC 0x0 0x5A backlog SM16703P_SetPixel 0 255 0 0; SM16703P_SetPixel 1 255 0 0; SM16703P_SetPixel 2 255 0 0; SM16703P_SetPixel 3 255 128 0; SM16703P_SetPixel 4 255 128 0; SM16703P_SetPixel 5 255 255 0; SM16703P_SetPixel 6 255 255 0; SM16703P_SetPixel 7 128 255 0; SM16703P_SetPixel 8 128 255 0; SM16703P_SetPixel 9 0 255 0; SM16703P_SetPixel 10 0 255 0; SM16703P_SetPixel 11 0 255 128; SM16703P_SetPixel 12 0 255 128; SM16703P_SetPixel 13 0 255 255; SM16703P_SetPixel 14 0 255 255; SM16703P_SetPixel 15 0 128 255; SM16703P_SetPixel 16 0 128 255; SM16703P_SetPixel 17 0 0 255; SM16703P_SetPixel 18 0 0 255; SM16703P_SetPixel 19 128 0 255; SM16703P_SetPixel 20 128 0 255; SM16703P_SetPixel 21 255 0 255; SM16703P_SetPixel 22 255 0 255; SM16703P_SetPixel 23 255 0 128; SM16703P_SetPixel 24 255 0 128; SM16703P_SetPixel 25 255 0 128; SM16703P_SetPixel 26 255 0 128; SM16703P_SetPixel 27 0 255 128; SM16703P_SetPixel 28 0 255 128; SM16703P_SetPixel 29 255 255 255; SM16703P_SetPixel 30 255 255 255; SM16703P_SetPixel 31 255 128 0; SM16703P_SetPixel 32 255 128 0; SM16703P_Start // 3 Red, 2 Some Orange, 2 Yellow, 2 Some Chartreuse, 2 Lime, 2 Some SpringGreen, 2 Cyan, 2 Some Azure, 2 Blue, 2 Some Violet, 2 Magenta, 4 Rose, 2 Some SpringGreen, 2 White, 2 Some Orange
    
    // Time values available
    waitFor NTPState 1


    Objaśnienie oprogramowania sprzętowego

    Ta konfiguracja oprogramowania sprzętowego próbuje jak najdokładniej odtworzyć oryginalną funkcjonalność. Mikrofon w P23 nie jest obecnie obsługiwany przez OpenBeken i zostanie dodany w przyszłości. Trzy statyczne wzory, którymi można sterować za pomocą pilota, zostały szczegółowo odtworzone. Do animacji używana jest biblioteka PixelAnim, która obecnie oferuje tylko trzy wzory. Jednak przycisk zasilania umożliwia teraz również regulację jasności i sterowanie wzorami jednokolorowymi.


    Demonstracje

    Pierwszy wzór:
    Kolorowy pionowy pasek LED RGBIC świecący w ciemności

    Drugi wzór:
    Kolorowa listwa świetlna RGB ustawiona pionowo na ciemnym tle

    Trzeci wzór:
    Kolorowa listwa świetlna RGB oświetlająca ciemne pomieszczenie, stoi pionowo

    Animacja Tęczowego Cyklu:



    Animacja ognia:



    Animacja czerwonej spadającej gwiazdy:



    Animacja zielonej spadającej gwiazdy:



    Niebieska animacja Shooting Star:



    Animacje domyślnie działają z maksymalną prędkością i mogą zostać spowolnione w razie potrzeby. Animacja Shooting Star automatycznie używa ostatniego ustawionego koloru. Filmy pokazują przykłady tego dla trzech kolorów podstawowych.

    Fajne? Ranking DIY
    O autorze
    emarck
    Poziom 6  
    Offline 
    emarck napisał 15 postów o ocenie 8, pomógł 3 razy. Jest z nami od 2025 roku.
  • #2 21616768
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14451
    Pomógł: 650
    Ocena: 12441
    Bardzo ładna prezentacja, dziękuję za udostępnienie! Dawno nie widziałem tak kompletnej kompilacji. Prawdopodobnie umieszczę twój autoexec na naszej stronie z próbkami. https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/autoexecExamples.md

    Dodano po 2 [godzinach] 1 [minucie]: .

    PS: Czy możesz załączyć wideo pokazujące, jak to wygląda w rzeczywistości podczas animacji?
    Pomogłem? Kup mi kawę.
  • #3 21619175
    emarck
    Poziom 6  
    Posty: 15
    Pomógł: 3
    Ocena: 8
    Dodałem zdjęcia dla wzorów i filmy dla animacji do mojego pierwszego postu. Czy to spełnia wszystkie wymagania do włączenia do listy obsługiwanych urządzeń ?
    Byłoby wspaniale, gdyby biblioteka PixelAnim mogła w przyszłości zawierać jeszcze więcej animacji.
  • #4 21777168
    emarck
    Poziom 6  
    Posty: 15
    Pomógł: 3
    Ocena: 8
    Dziękujemy za rozszerzenie sterownika PixelAnim. Animacja Comet jest świetna, ale Theater Chase jest domyślnie bardzo szybka i wygląda dziwnie. Animacja Theater Chase Rainbow jest zawsze zielona na moim urządzeniu i nie widzę żadnej tęczy.
  • #6 21794552
    nerdman
    Poziom 2  
    Posty: 2
    >>21777168 Dzięki za szczegółowy opis. Sflashowałem dwa urządzenia i zastanawiałem się, czy jest jakiś sposób na zsynchronizowanie dwóch (lub nawet więcej) urządzeń, aby wyświetlały te same efekty w synchronizacji? Widziałem coś podobnego w WLED - myślę, że urządzenia "rozmawiają" ze sobą w WLED, aby efekty były w pełni zsynchronizowane.
    Próbowałem zbudować coś takiego w HomeAssistant, ale nie udało mi się.
    Może ktoś ma jakiś pomysł?
📢 Słuchaj (AI):
REKLAMA