ESPHome, 4x termometr DS18B20 + LCD HD44780

Witam, posiadam podobną płytkę w wersji 2, chciałbym to wykorzystać jako termometr z 4 sensorsmi i chciałbym aby był w to wbudowany ekran, najlepiej lcd2004 na którym widziałbym aktualne temperatury ze wszystkich czujników. Czy jest taka możliwość?

Może @isom1266 podpowie czy można wyświetlać odczyt z czujników na wyświetlaczu Sonoff POW320D.

Bardziej mi chodziło o hd44780, mam taki w domu

Oczywiście że w ESPHome można na nim wyświetlać co chcesz
Jeśli masz od groma GPIO do wykorzystania to możesz go podpiąć magistralą równoległą i zastosować komponent lcd_gpio
albo możesz też wykorzystać ekspander PCF8574 (widoczny na drugim zdjęciu jako czarna płytka) i użyć komponentu lcd_pcf8574
Sugeruję zlutowanie wyświetlacza z ekspanderem, bo podłączenie I2C jest wygodniejsze.

Tylko kodu za Ciebie to raczej nikt pisać nie będzie, więc jeśli natrafisz na problemy z samodzielną pracą to wtedy się odezwij z tym co już masz i opisem problemu.

W ogóle to powinien być osobny wątek, więc jeśli dostarczysz jakieś konkretne dane (czy podłączasz wyświetlacz magistralą równoległą czy szeregową), to go wydzielę z właściwym tytułem.

Mogę Cię wesprzeć bo akurat ostatnio pisałem taki kod:

sensor:
  - platform: dallas_temp
    address: 0xfb0000003902fa28
    name: "Temperatura wody"
    id: temp_wody
    unit_of_measurement: "°C"
    update_interval: 60s
    filters:
     - offset: 0.5

one_wire:
  - platform: gpio
    pin: ${pin_temp_w} 

i2c:
  sda: ${pin_lcd_sda}
  scl: ${pin_lcd_scl}
  scan: true
  frequency: 800kHz

display:
  - platform: lcd_pcf8574
    dimensions: 20x4
    address: 0x27
    update_interval: 2s
    id: lcd
    lambda: |-
      it.printf(0, 0, "Faza L1=%0.1f", id(L1_V).state);
      it.print(14, 0, "V");
      it.printf(17, 0, id(SSR_1).state ? "ON" : "OFF");
      it.printf(0, 1, "Faza L2=%0.1f", id(L2_V).state);
      it.print(14, 1, "V");
      it.printf(17, 1, id(SSR_2).state ? "ON" : "OFF");
      it.printf(0, 2, "Faza L3=%0.1f", id(L3_V).state);
      it.print(14, 2, "V");
      it.printf(17, 2, id(SSR_3).state ? "ON" : "OFF");
      it.printf(0, 3, "CWU  Tw= %0.1f", id(temp_wody).state);
      it.print(14, 3, "C");

Oczywiście jest tu więcej kodu niż potrzebujesz ale dla twojego dobra zostawiam to do własnoręcznej edycji :wink:
Masz już jakiś punkt zaczepienia więc możesz próbować.

3 polubienia