Ambilight con un Wemos d1 mini - guida alla realizzazione fai da te

Ambilight con un Wemos d1 mini - guida alla realizzazione fai da te

di Luigi Duchi

09 Settembre 2020

L'angolo dei lettori

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

https://amzn.to/3m81x6f

oltre alle conosciutissime stripled WS2812B

https://amzn.to/3ih08YL

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.

https://www.vincenzocaputo.com/arduino/come-realizzare-una-striscia-led-wifi-programmabile-con-un-nodemcu-109

Altri accessori utili a realizzare questa guida:

  • Cavetti Jumper

https://amzn.to/3jZ2Xyc

  • Resistenza 1/4

https://amzn.to/2RnL0xf

  • Convertitore di livello logico

https://amzn.to/3hd28Qz

  • Condensatore elettrolitico

https://amzn.to/33gmeUW

  • Breadboard

https://amzn.to/2DIyWDh

Passiamo ora alle parole di Davide che ci presenta il suo progetto.

Esempio Ambilight su monitor

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,

Schema di collegamento D1 mini a stripled

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 

Schema di disposizione dei LED

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.

Configurazione Luciferin

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.

http://192.168.4.1

Inserite le credenziali del vostro WiFi e del vostro server MQTT. 

Configurazione Luciferin

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

Esempio stringa su Home Assistant

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.

https://www.vincenzocaputo.com/home_assistant/hass.io-in-docker-cosa-fare-dopo-la-prima-installazione-vol.2-408

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.

Luigi Duchi

Luigi Duchi

Nato a Grosseto il 24 Dicembre 1982 perito elettrotecnico che lavora nel mondo della domotica e installazione di impianti elettrici, impianti di allarmi, videosorveglianza e automazioni in genere. Appassionato da sempre di tecnologia e aperto alla conoscenza di nuove soluzioni.

Disqus loading...