Realizziamo un display LCD su Home Assistant

In questo articolo vedremo come realizzare un display LCD su Home Assistant usando ESPHome, per visualizzare quello che vogliamo dal nostro HUB Domotico casaligo, per maggiore informazione e dettagli vi rimando alla guida ufficiale di ESPHome. Vediamo cosa ci occorre:

QUI SOTTO VI LASCIO I LINK ACQUISTO

Prima d’iniziare ad assemblare il tutto dobbiamo sapere che i display lcd hanno un indirizzo di comunicazione quello di default (0x27). Vedi foto. Questo si può variare facendo delle piccole saldature, nel nostro caso non ce ne sarà bisogno. In questo collegamento tra il Mini D1 e LCD usiamo la comunicazione I2C.

A0 A1 A2

Dopo esserci procurato il tutto, facciamo i collegamenti tra il Mini D1 e LCD come da foto.


PINOUT

Dopo aver fatto tutti i collegamenti , ci rechiamo su Home Assistant e apriamo un nuovo progetto su ESPHome, Carichiamo il codice che serve per la visualizzazione delle informazioni sul display. qui sotto vi metto il codice di esempio, fate copia e incolla .Vi dovreste trovare in questa situazione.

Codice per visualizzare un testo.

i2c:
  sda: D2
  scl: D1
  scan: true

display:
  - platform: lcd_pcf8574
    dimensions: 16x2
    address: 0x27
    lambda: |-
      it.print("CANALE YOUTUBE    PENDOLAS");

Se invece ci serve visualizzare più contenuti con molte pagine, qui sotto vi lascio un codice di esempio che si può personalizzare a nostro piacere.

i2c:
  sda: D2
  scl: D1
  scan: False

  
## data e ora ##
time:
- platform: sntp
  id: my_time

## consumi elettrici ##
sensor:
  - platform: homeassistant
    id: wattora
    entity_id: sensor.potenza_attiva_prelevata_istantanea
    internal: true
    


display:
  - platform: lcd_pcf8574
    dimensions: 16x2
    address: 0x27
    id: lcd
    update_interval: 5s
    lambda: |-
        static int current_page_num = 1;
        int number_of_pages = 3;

        switch (current_page_num) {
          
          case 1: 
          it.strftime(5, 0,"%H:%M", id(my_time).now());
          it.strftime(3, 1,"%d.%m.%Y", id(my_time).now());
          break;
          
          case 2:
          it.printf(1, 0, "CONSUMI ISTANT.");
          it.printf(4, 1, "%4.1f Wh", id(wattora).state);
          break;
          }

          current_page_num += 1;
          if (current_page_num > number_of_pages) {
            current_page_num = 1;
        }
          
    


In questo esempio vi mostrerò alcuni dati estrapolati da vari sensori, utilizzando display lcd 4×20 DATA,ORA, TEMPERATURA E UMIDITA’ E Wh CONSUMATI ISTANTANEAMENTE.

QUI SOTTO VI LASCIO I LINK ACQUISTI

i2c:
  sda: D2
  scl: D1
  scan: True 
  
time:
- platform: sntp
  id: my_time


sensor:
  - platform: homeassistant
    id: temperatura
    entity_id: sensor.temperatura_paullo_temperatura
    internal: true

  - platform: homeassistant
    id: umidita
    entity_id: sensor.temperatura_paullo_umidita
    internal: true

  - platform: homeassistant
    id: wattora
    entity_id: sensor.potenza_attiva_prelevata_istantanea
    internal: true
    
display:
  - platform: lcd_pcf8574
    dimensions: 20x4
    address: 0x27
    lambda: |-
      it.strftime(0, 0,"%H:%M - %d.%m.%Y", id(my_time).now());
      it.printf(0, 1, "TEMP. ESTERNA : %4.1f", id(temperatura).state);
      it.printf(0, 2, "UMID. ESTERNA : %4.1f", id(umidita).state);
      it.printf(0, 3, "Wh ISTANT. : %4.1f", id(wattora).state);