Ambilight con un Wemos d1 mini - guida alla realizzazione fai da te
L'angolo dei lettori
Scritto da Luigi Duchi
Ben tornati, oggi presentiamo un fantastico progetto realizzato da un nostro utente per la rubrica "l'angolo dei lettori".
Davide Perini oggi ci presenta la sua versione di Ambilight sfruttando la famosissima scheda di sviluppo D1 mini vista più volte nel corso del tempo su questo Blog.
Ambilight è il famosissimo sistema di casa Philips, che permette ad alcuni modelli di TV che ne sono provvisti, di "prolungare" l'immagine fuori dallo schermo con colori dinamici che rispecchiano i colori presenti nell'immagine visualizzata.
In rete esistono molti progetti (prima o poi finirò il mio progetto con hyperion)
Davide ci propone un progetto decisamente più semplice sfruttando un software su pc e un Wemos d1 mini
oltre alle conosciutissime stripled WS2812B
Le stesse che ho usato nel mio progetto con le strip led digitali che potete vedere qui di seguito nel caso ve lo siate persi.
Altri accessori utili a realizzare questa guida:
- Cavetti Jumper
- Resistenza 1/4
- Convertitore di livello logico
- Condensatore elettrolitico
- Breadboard
Passiamo ora alle parole di Davide che ci presenta il suo progetto.
Luciferin è il nome del progetto che vede due software realizzati su misura l'uno per l'altro per creare un effetto di luce ambientale su PC simile a quanto visto sui televisori Philips provvisti di Ambilight.
Perchè Luciferin?
Le luciferine (dal latino lucifer, "portatore di luce") sono una classe di composti che emettono luce presenti in diversi organismi in cui si osserva bioluminescenza.I glow worms, sono le larve luminescenti di lucciola, da qui nasce il nome di Glow Worm Luciferin e Firefly Luciferin.
Glow Worm Luciferin è il firmware per ESP8266 capace di pilotare una striscia LED,Firefly Luciferin è il software per PC per inviare il segnale video all'ESP8266.
Il firmware è scaricabile da qui in 2 versioni
https://github.com/sblantipodi/glow_worm_luciferin/releases
c'è la versione LIGHT e la versione FULL che aggiunge la possibilità di controllo remoto.
Passi per la realizzazione
Installare il firmware Glow Worm Luciferin sull'ESP8266 usando il proprio programma di flash preferito: ESP Flashar funziona bene ed è facile da usare, lo potrete trovare al link seguente.
https://github.com/esphome/esphome-flasher/releases
Collegate l'ESP alla striscia LED come da immagine,
Il componente rosso è un logic level converter da 3.3V a 5V, il condensatore è un 1000uf, la resistenza è da 220 Ohm.
La striscia led consigliata per il circuito è la solita nota, la WS2812B da 5V.
Il PIN digitale su cui collegare la striscia LED è il D1, il logic level converter ed il condensatore, unito alla resistenza, aiutano ad avere un segnale più stabile.
L'alimentatore è importante. Un alimentatore da 5V/3A basta per 60 LED, un 5V/6A per 120 LED, ci si può regolare di conseguenza.
Non bisogna risparmiare sull'alimentatore e non bisogna sottodimensionare l'alimentazione.
Posizionare i led dietro al monitor del proprio pc come indicato nell'immagine
Installare il software per Windows Firefly Luciferin scaricabile da qui:
https://github.com/sblantipodi/firefly_luciferin/releases
Al momento è disponibile solo per Windows e Linux ma è in arrivo la versione per Mac.
Eventualmente, se non li avete già installati in precedenza per qualche progetto, dovrete installare sul pc anche i driver per il d1 mini... li potrete trovare Qui.
Il software presenta una buona customizzazione ma i valori di default sono indicati per la maggior parte delle configurazioni.
È possibile cambiare il valore di gamma, il valore consigliato per i contenuti SDR è 2.2, maggiore di 6 per quelli HDR.
È importante configurare il numero di led che si vuole applicare dietro il monitor ed il software penserà al resto.
Il software è molto leggero nell'acquisizione video grazie anche all'uso dell'accelerazione hardware sulla scheda grafica.
Configurate il numero di LED a disposizione nella vostra striscia LED, configurate i parametri MQTT nel tab MQTT e cliccate su salve e chiudi.
Bisognerà riavviare il software per far sì che le impostazioni siano effettive.
Per avviare l'effetto Ambilight, baserà fare doppio click sulla tray icon oppure click con il tasto destro sulla tray icon e poi Start.
Il firmware Glow Worm Luciferin può essere utilizzato anche da remoto o con Home Assistant.
E' possibile così controllare la striscia LED come fosse una qualsiasi entità light collegata ad HA.
IMPORTANTE: Se flashate il firmware FULL, i passi di configurazione WiFi e MQTT sono obbligatori, mentre nella versione LIGHT potrete connettere direttamente tramite usb il d1mini ad una delle porte usb del vostro pc.
Configurazione firmware FULL
Una volta flashato il firmware FULL, collegatevi alla rete WiFi generata dal d1mini chiamata Luciferin e navigate da PC o telefono all'indirizzo.
Inserite le credenziali del vostro WiFi e del vostro server MQTT.
Per controllare la striscia da remoto attraverso un qualsiasi client MQTT il topic predefinito è:
lights/glowwormluciferin/set
il messaggio di accensione/spegnimento:{"state": "ON"}{"state": "OFF"}{"state": "ON", "effect": "rainbow"}
Questa una serie di effetti di luce disponibili:
- GlowWorm (effetto luce ambientale, ambilight)
- GlowWormWiFi (effetto luce ambientale, ambilight via MQTT)
- bpm
- candy cane
- confetti
- cyclon rainbow
- dots
- fire
- glitter
- juggle
- lightning
- noise
- police all
- police one
- rainbow
- solid rainbow
- rainbow with glitter
- ripple
- sinelon
- solid
- twinkle
Il tutto si può integrare in Home Assistant attraverso un package pronto all'uso.
Per farlo dovrete abilitare prima l'utilizzo dei package, se non lo avete già fatto la stringa da scrivere nel file configuration.yaml (esattamente sotto la scritta homeassistant iniziale) è la seguente:
packages: !include_dir_named packages
Ecco come dovrà risultare nel vostro file configuration.yaml
successivamente dovrete creare una cartella nel config/ chiamata appunto
packages
In seguito dovrete riavviare Home Assistant.
Saltate ovviamente questi passaggi se li avevate già compiuti in passato.
All'interno della cartella packages andate a creare un file chiamato:
glow_worm_luciferin.yaml
al suo interno copiate ed incollate queste stringhe
light:
- platform: mqtt
schema: json
name: "GlowWorm"
state_topic: "lights/glowwormluciferin"
command_topic: "lights/glowwormluciferin/set"
effect: true
effect_list:
- GlowWorm
- GlowWormWifi
- bpm
- candy cane
- confetti
- cyclon rainbow
- dots
- fire
- glitter
- juggle
- lightning
- noise
- police all
- police one
- rainbow
- solid rainbow
- rainbow with glitter
- ripple
- sinelon
- solid
- twinkle
brightness: true
rgb: true
optimistic: true
#transition: 1000
input_number:
pc_animation_speed:
name: PC Animation Speed
initial: 40
min: 1
max: 150
step: 1
input_boolean:
solideffect:
name: Luci effetto solido
sensor:
- platform: mqtt
state_topic: 'lights/glowwormluciferin'
name: 'GlowWorm Version'
unit_of_measurement: ' '
value_template: '{{ value_json.ver }}'
automation:
- id: '1548456985521'
alias: GlowWorm Solid Effect ON
trigger:
- entity_id: input_boolean.solideffect
from: 'off'
platform: state
to: 'on'
action:
- data:
payload: '{"JFSC": "STOP"}'
topic: lights/glowwormluciferin/set
service: mqtt.publish
- id: '1548456985522'
alias: GlowWorm Solid Effect OFF
trigger:
- entity_id: input_boolean.solideffect
from: 'on'
platform: state
to: 'off'
action:
- data:
payload: '{"JFSC": "START"}'
topic: lights/glowwormluciferin/set
service: mqtt.publish
- id: '3845456985522'
alias: GlowWorm Solid Effect OFF JFSC
trigger:
platform: mqtt
topic: lights/glowwormluciferin/set
payload: '{"state": "ON", "effect": "GlowWorm"}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.solideffect
- id: '1345456985522'
alias: GlowWorm Solid Effect OFF JFSC Wifi
trigger:
platform: mqtt
topic: lights/glowwormluciferin/set
payload: '{"state": "ON", "effect": "GlowWormWifi"}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.solideffect
- id: '3845456985521'
alias: LGlowWorm Solid Effect ON JFSC
trigger:
platform: mqtt
topic: lights/glowwormluciferin/set
payload: '{"state": "ON", "effect": "solid"}'
action:
- service: input_boolean.turn_on
data:
entity_id: input_boolean.solideffect
- id: '4321674486'
alias: PC Animation Speed
initial_state: true
trigger:
- platform: state
entity_id: input_number.pc_animation_speed
action:
- service: mqtt.publish
data_template:
topic: lights/glowwormluciferin/set
payload: '{"transition":{{ trigger.to_state.state | int }}}'
switch:
- platform: mqtt
name: "rebootglowworm"
command_topic: "cmnd/glowwormluciferin/reboot"
state_topic: "stat/glowwormluciferin/reboot"
qos: 1
retain: false
payload_on: "ON"
payload_off: "OFF"
Riavviate e inserire le nuove entità nella vista desiderata.
Fine configurazione Firmware FULL.
Inutile dire che dovrete avere un broker mqtt funzionante e configurato sul vostro Home Assistant perché questa procedura funzioni.
Se non sapete come fare vi rimandiamo a questa nostra guida.
Ringraziamo ancora per questa splendida guida Davide Perini e invitiamo tutti i lettori a proporci nuovi contenuti originali per la rubrica "l'angolo dei lettori".
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.