Этот отличный модуль можно приобрести тут: http://alii.pub/6big0d
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Данный модуль, получился интересным и многофункциональным.
Я решил для примера использовать дисплей. И в ESPHome сделал пример, в котором берутся показания температуры с прогноза погоды Home Assistant и показания температуры с датчика Xiaomi LYWSD03MMC.
Все эти показания выводятся на дисплей. Плюсом к тому-же я вывел заряд батареи и вольтаж ее. Но судя по вольтажу, заряд явно лукавит ( надо будет подправить формулу).
И сделал условие, при котором, если температура с датчика Xiaomi LYWSD03MMC превышает 25 градусов цельсия, то окрасить значение температуры в красный цвет. Изначально температура подсвечивается синим цветом.
Собственно вот как это выглядит, когда температура превышает 25 градусов:
Ну а вот так выглядит собственно код программы ESPHome под модуль lilygo t-display:
spi:
clk_pin: GPIO18
mosi_pin: GPIO19
sensor:
- platform: homeassistant
id: temp_1
entity_id: sensor.home_assistant_realfeel_temperature
- platform: homeassistant
id: temp_2
entity_id: sensor.ble_temperature_balkon
- platform: adc
pin: 34
attenuation: 11db
name: VBatt
id: vcc
update_interval: 60s
- platform: template
name: batterylevel
id: batterylevel
unit_of_measurement: '%'
update_interval: 60s
lambda: |-
// I know infering the battery from voltage only is misleading, but I'll take it. Considering linear decay (again, i'll take it), max=2.23, min=1.38
return ((id(vcc).state * 118) - 162);
font:
- file: "fonts/Roboto-Medium.ttf"
id: tnr1
size: 20
- file: "fonts/Roboto-Medium.ttf"
id: tnr2
size: 24
color:
- id: RED
red: 100%
green: 0%
blue: 0%
- id: BLUE
red: 0%
green: 0%
blue: 100%
- id: WHITE
red: 100%
green: 100%
blue: 100%
# TODO brightness
display:
- platform: st7789v
backlight_pin: GPIO4
cs_pin: GPIO5
dc_pin: GPIO16
reset_pin: GPIO23
rotation: 90°
#brightness: 0.5
update_interval: 5s
lambda: |-
if (id(vcc).has_state()) {
it.printf(4, 4, id(tnr1), WHITE, "%.2f VBat (%.2f %%)", id(vcc).state, id(batterylevel).state);
}
it.print(4, 45, id(tnr1), WHITE, TextAlign::LEFT, "Temperature:");
it.print(4, 75, id(tnr1), WHITE, TextAlign::LEFT, "Temperature:");
it.printf(160, 45, id(tnr2), BLUE, "%.1f°C", id(temp_1).state);
if (id(temp_2).has_state()) {
float tmp = id(temp_2).state;
if (tmp > 25.0) {
it.printf(160, 75, id(tnr2), RED, "%.1f°C", id(temp_2).state);
} else {
it.printf(160, 75, id(tnr2), BLUE, "%.1f°C", id(temp_2).state);
}
}
Так-же еще нашел вполне себе хороший корпус для данного модуля и распечатал его на 3д принтере. Корпус скачать можно отсюда:
https://www.thingiverse.com/thing:3888492
Видео: