Ambientlight TV za pomocą HyperBian, RPi3 i kamery USB

Fajny projekt, gdzie niewielkim kosztem jest wyświetlane podświetlenie LED za telewizorem na podstawie wyświetlanego obrazu. W moim rozwiązaniu użyta jest kamera umieszczona naprzeciwko TV oraz „stare” Rasberry PI3, które wcześniej sterowało moim domem i po upgrade do RPI5 leżało w szufladzie.

Została użyta kamera ponieważ na TV wyświetlane są tylko programy z aplikacji streaminowych, nie ma możliwości użycia grabbera sygnału i odczytu obrazu z we/wy HDMI.

Instalacja jest podzielona na dwie części:

  • RPI3 wraz kamerą USB (kamera umieszczona prawie naprzeciw telewizora),
  • sterowalna listwa LED z ESP32.

Instalacja

Schemat blokowy instalacji LED za TV

Sprzęt

  • Zasilacz 5V/20A (koszt ok 50 PLN) – pewnie można użyć trochę mniejszy,
  • Listwa RGB 2805 (koszt ok 80 PLN) – długość ok 4m (72LED na poziomych listwach i 40 na pionowych),
  • ESP32-DevKitC-32U z anteną (koszt ok 10$),
  • bezpieczniki samochodowe 2x10A,
  • kostka połączeniowa,
  • rezystor 300om (tłumienie zakłóceń na linii DATA),
  • kabel zasilający 2×1.5mm2 – połączenie od zasilacza do kostki.

Uwagi

Niestety listwa dolna jest mocniej zasłonięta przez obudowę TV – co powoduje słabsze świecenie diód w dolnej części.

Konfiguracja

ESP32

Zainstalowane oprogramowanie WLED (z przeglądarki Chrome) – link.
WLED działa przez WIFI, na routerze ustawiony jest stały adres IP. Dodatkowo w WLED ustawiono ilość diód (Length), maksymalną wydajność prądową zasilacza (Maximum PSU Current ) oraz pin z linią danych (Data GPIO).

RPI3

Zainstalowane oprogramowanie HyperBian.

Aby zmniejszyć opóźnienie na linii kamera a listwa LED rejestruje obraz z rozdzielczością 320×240 przy 30FTPs. Relatywnie po kadrowaniu w moim przypadku zostaje ok 100×55 co i tak przewyższa ilość diód LED.

Integracja z HA

Standardowa integracja

Automatyzacje

Automatyczne włączenie/wyłączenie nagrywania i przetwarzania obrazu przy włączeniu telewizora.

- id: '1739489846028'
  alias: Turn_off_WLED_salon_on_TV
  description: ''
  triggers:
  - platform: state
    entity_id: media_player.tv
    from: 'on'
    to: 'off'
  conditions: []
  actions:
  - action: light.turn_on
    target:
      entity_id: light.wled210_3
    data:
      brightness_pct: 1    
  - action: switch.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: switch.tv_salon_component_all
  - delay: '00:00:03'
  - action: light.turn_on
    target:
      entity_id: light.wled210_3
    data:
      brightness_pct: 1    
  - action: light.turn_off
    target:
      entity_id: light.wled210_3
  mode: single
- id: '1739489846029'
  alias: Turn_on_WLED_salon_on_TV
  description: ''
  triggers:
  - platform: state
    entity_id: media_player.tv
    from: 'off'
    to: 'on'
  actions:
  - action: light.turn_on
    target:
      entity_id: light.wled210_3
    data:
      brightness_pct: 1
  - action: switch.turn_on
    target:
      entity_id: switch.tv_salon_component_all
  - action: switch.turn_on
    target:
      entity_id: switch.tv_salon_component_led_device
  - action: light.turn_on
    target:
      entity_id: light.wled210_3
    data:
      brightness_pct: 1    
  mode: single

Linki

https://docs.hyperion-project.org

https://install.wled.me

https://kno.wled.ge/basics/getting-started

https://wled-calculator.github.io

https://www.thegeekpub.com/274631/wled-how-to-setup-and-configure-wled

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *