Luma to samodzielnie zbudowane kino domowe, które jest w pełni zautomatyzowane i sterowane za pomocą własnoręcznie napisanej aplikacji i serwera. Zbudowaliśmy je razem z ojcem, ale ja zajmowałem się częścią techniczną, a on skupił się na konstrukcji. Inżynieria oprogramowania to moja pasja i mam w tym kierunku dyplom.
Użyłem komponentów Shelly , którymi serwer steruje przez sieć lokalną. Serwer uruchamia aplikację node.js z moją autorską platformą web socketów czasu rzeczywistego, aby utrzymywać synchronizację stanu między wieloma klientami. Front-end to aplikacja react hostowana przez serwer, która łączy się z nim przez web sockety. Serwer zarządza wszystkimi urządzeniami kina i obsługuje automatyzacje. Celem było to, aby całym kinem dało się sterować za pomocą aplikacji. Dzięki temu można od razu zacząć oglądać film, bez konieczności włączania wielu urządzeń, ręcznego ustawiania temperatury w pomieszczeniu itd.
Użyłem wielu komponentów, a spośród Shelly wykorzystałem następujące:
- Shelly Duo - RGBW GU10
- Shelly RGBW2
- Shelly Plus 1PM
- Shelly Plus 1
- Shelly Plus 2PM
- Shelly Plus Plug S
- Shelly H&T
- Shelly TRV
Automatyzacja jest podzielona na pięć kategorii: światło, klimat, dźwięk, multimedia oraz ogólne uruchamianie/wyłączanie.
Uruchamianie/Wyłączanie:
W procesie uruchamiania i wyłączania kina użyłem głównie Shelly Plus 1 / 1 PM oraz Plug S do włączania urządzeń nadrzędnych w określonej kolejności. Pomaga to wyłączyć większość urządzeń kina i uniknąć ciągłego pozostawiania ich w trybie czuwania (tylko kilka przekaźników i serwer). Po włączeniu urządzeń serwer steruje zautomatyzowanym ekranem, amplitunerem AV, projektorem, światłami, wzmacniaczami i inicjalizuje sterowanie klimatem. W procesie wyłączania niektóre przekaźniki pozostają aktywne jeszcze przez pewien czas. Jest to niezbędne, aby projektor mógł się schłodzić albo aby światło pozostało włączone jeszcze przez chwilę, gdy opuszcza się kino.
Światło:
W części oświetlenia zaimplementowałem silnik światła, który przesyła wartości oświetlenia do Shelly RGBW2 (używanego do taśm LED w panelach sceny i tylnych) oraz lamp Duo RGBW umieszczonych na bocznych ścianach kina, nad wejściem i w ścianie foyer. Aby szybciej przetwarzać wartości światła, opracowałem własny firmware dla RGBW2 i lamp Duo. Ten firmware jest prosty i tylko stosuje otrzymane wartości światła. Został on wykorzystany do uruchamiania animacji świetlnych z serwera klatka po klatce.
W aplikacji użytkownik może wybierać spośród różnych trybów oświetlenia. Na przykład tryb Movie, w którym światła zaczynają stopniowo wygasać od przodu do tyłu, przyciemnione światło sceny pozostaje włączone, a światło foyer zostaje wyłączone. Zaimplementowałem też tryb, w którym światło dopasowuje się do kolorów ekranu, ale z uwzględnieniem położenia. Dzięki temu lewe lampy Duo odpowiadają lewej połowie ekranu. Ten tryb widać na końcu filmu. Mamy tu też wiele automatyzacji.
W połączeniu z czujnikiem otwarcia/zamknięcia drzwi wejściowych światło w foyer włącza się w trybie Movie, gdy ktoś otworzy drzwi, i wyłącza się, gdy drzwi zostaną ponownie otwarte i zamknięte. (Jeśli ktoś wyjdzie na chwilę do łazienki). Również jeśli światło jest w trybie wyjścia, zapala się ponownie, ale światło w foyer pozostaje wyłączone, dopóki drzwi wejściowe nie zostaną otwarte. Aplikacja ma znacznie więcej funkcji, więcej trybów, profile świetlne (kolory, jasność sceny w trybie Movie)...
Klimat:
Ta część przede wszystkim automatycznie kontroluje temperaturę w pomieszczeniu. Użytkownik może wprowadzić temperaturę docelową, a na podstawie aktualnej temperatury (mierzonej przez H&T) serwer podejmuje działanie. Na przykład mamy promienniki podczerwieni na suficie, które są aktywowane przez serwer (sterowane za pomocą przekaźników Shelly), aby w razie potrzeby ogrzać pomieszczenie. Mamy też zautomatyzowane okno (sterowane przez Shelly 2PM) w tylnej ścianie z wentylatorem, które można wykorzystać do doprowadzenia świeżego powietrza lub chłodzenia. Serwer używa go do chłodzenia tylko wtedy, gdy temperatura na zewnątrz (pobierana z API pogodowego) jest niższa niż aktualna temperatura w pomieszczeniu. Dzięki automatyzacji bardzo łatwo uzyskać idealną temperaturę do oglądania filmu, ustawiając ją tylko w aplikacji.
Dźwięk:
Wiele ustawień dźwięku jest bezpośrednio kontrolowanych z poziomu aplikacji przez amplituner AV. Ale zamontowaliśmy też przetworniki dźwięku przewodzonego w fotelach, aby uzyskać dodatkowy efekt basu. Aby można było nimi sterować, użyłem Plus 1PM do kontrolowania wzmacniacza. W ten sposób użytkownik może po prostu aktywować go lub dezaktywować w aplikacji.
Multimedia:
Można przełączyć źródło sygnału lub ukryć obraz bezpośrednio z poziomu aplikacji. Można też osobno wyłączyć projektor (jeśli chcesz tylko słuchać muzyki).
Fakty:
Kino ma system 7(2 pary surround na rząd siedzeń).4.4 i obsługuje Auro3D, Atmos oraz DTS:X. Zainstalowano projektor obsługujący 4k i 3D, a wszystko wykonaliśmy sami. Pomieszczenie było kiedyś nudną, dużą piwnicą, a teraz jest podzielone na trzy pokoje. Planowanie 3D zrobiłem jeszcze przed rozpoczęciem prac. Nawet techniczny regał jest własnej konstrukcji i obsługuje rozwiązanie chłodzenia wentylatorem sterowanym temperaturą.
Bez produktów Shelly wdrożenie mojego planu nie byłoby tak łatwe. Bardzo się cieszę, że istnieje tak przyjazny dla deweloperów produkt i z dużym zainteresowaniem czekam na nowe produkty Shelly. Cieszę się też, że pojawiają się nowe światła, może takie, które obsługują jednocześnie RGB i biel :).
Shelly Duo GU10
Shelly RGBW2
Shelly Plus 1PM
Shelly Plus 1
Shelly Plus 2PM