ESPhome и max7219 digit display. Несколько простых примеров использованя вместе с home assistant.
HTML-код
- Опубликовано: 4 окт 2024
- ESPhome и max7219 digit display. Несколько простых примеров использованя вместе с home assistant.
Вывот значений сенсоров, текстовых сенсоров, отображение нескольких показаний сенсоров, изменение яркости, передача произвольно текста.
Так же привожу часть скетча, этого должно быть достаточно, что-бы самостоятельно разобраться и выводить значения сенсоров на max7219. Но если у вас будут вопросы - пишите в коментариях, может я смогу на них ответить.
globals:
id: display_page
type: int
restore_value: no
initial_value: '1'
spi:
clk_pin: 18 # это подключать к входу CLK на max7219
mosi_pin: 23 # это подключать к входу DIN на max7219
display:
platform: max7219digit
cs_pin: 5 # это подключать к входу CS на max7219
num_chips: 4 # количество матриц
intensity: 0 # яркость матрицы от 0 до 15
update_interval: 5s
scroll_speed: 200ms
id: max7219d
lambda: |-
it.intensity(atoi(id(matrixbri).state.c_str()));
if (id(display_page) == 1) {
it.printf(0, 0, id(digit_font), "%s", id(pir_sensor).state ? "ON" : "OFF");
} else {
if (id(display_page) == 2) {
it.strftime(0, 0, id(digit_font), "%H:%M", id(hass_time).now());
} else {
if (id(display_page) == 3) {
it.printf(0, 0, id(digit_font), "%.1f°C", id(temp1).state);
} else {
if (id(display_page) == 4) {
it.printf(0, 0, id(digit_font), "%s%%", id(humi1).state.c_str());
} else {
if (id(display_page) == 5) {
it.printf(0, 0, id(digit_font), "%s", id(matrix_text).state.c_str());
id(display_page) = 0;
}
} } } };
id(display_page) ++;
it.intensity(atoi(id(matrixbri).state.c_str()));
it.printf(0, 0, id(digit_font), "%s", id(temp1).state.c_str());.
it.printdigitf("%s", id(temp1).state.c_str());.
it.scroll_left();
it.printf(0, 0, id(digit_font), TextAlign::TOP_LEFT, "%s", id(matrix_text).state.c_str());
it.print(0, 0, id(digit_font), "%.1f°C", id(temp1).state);
it.strftime(0, 0, id(digit_font), "%H:%M", id(hass_time).now());
it.strftimedigit("%H:%M", id(hass_time).now());
font:
file: "pixelmix.ttf"
id: digit_font
size: 8
file: "Pixel-UniCode.ttf"
id: digit_font_unic
size: 16
time: #компонент для получения времени
platform: homeassistant
id: hass_time
text_sensor: #компонент текстовых сенсоров
platform: homeassistant
name: "Matrix Text"
id: matrix_text
entity_id: input_text.matrix_text
platform: homeassistant
name: "Brightness 7219"
id: matrixbri
entity_id: input_number.matrixbri
platform: homeassistant
name: "Kitchen Humidity"
id: humi1
entity_id: sensor.0x60a423fffe3c63b4_humidity
sensor: #компонент числовых сенсоров
platform: homeassistant
name: "Kitchen Temp"
id: temp1
entity_id: sensor.0x60a423fffe3c63b4_temperature
binary_sensor: #компонент бинарных сенсоров
platform: homeassistant
id: pir_sensor
entity_id: binary_sensor.0x00124b0005b4bd43_occupancy
internal: true
Вот это огромное спасибо! Все бы так объясняли, а то так рассказывают что ничего не поймёшь)
Спасибо! Накупил кучу экранов (очень интересный OLED 2.42" ssd1309), для простого человека как я, эти коды вывода информации просто ужас.
Вот ещё бы в espHome прикрутили вывод информации на самодельную матрицу из адресных светодиодов ....
За видео однозначно лайкос
а можно еще так:
lambda: |-
it.intensity(atoi(id(matrixbri).state.c_str()));
switch(id(display_page)) {
case 1:
it.strftime(0, 0, id(digit_font), "%H:%M", id(hass_time).now());
break;
case 2:
it.printf(0, 0, id(digit_font), "H: %.f°", round(id(temp_out).state));
id(display_page) = 0;
}
id(display_page) ++;
Нагляднее выходит
а можно для страниц использовать goto
окуенно! спасибо огромное! как раз есть часы на такой матрице и есп + dht22 + кнопка + фоторезистор, пытался подружить с HA и тоже пришел к такому. Только я хочу самостоятельное устройство и иногда выводить информацию на эти часы, время беру с сервера времени, а не из HA) теперь думаю как переключать вывод времени/показания датчика с кнопки...
Вот без мата было бы прекрасно
@@BootuzDinamontuz поправил)
Greetings from Colombia, thanks for your video. To request guidance I have problems with the time, it is not the correct one for my PC. what should i do?
The program takes the time settings from the Home Assistant. So you need to find these settings in HA and change them.
Muchas gracias ,un saludo desde Colombia
А скетч выложить можно?
Спасибо за напоминание, сейчас добавлю к описанию.
Извените вопрос не по темы, а можно управлять кнопкой подключëной к шлюз zigbee датчиками подключëнные по wifi tuya smart
Если кнопка тоже Tuya, то можно через приложение Tuya Smart App.
Подскажите какие датчики от других фирм работают с приложением tuya и с шлюзом ZigBee tuya
С приложением Туя Смарт работает только Туя устройства. Но об этом чуть позже в другом видео.
А пленка поверх матрицы это транспорт или защитная/обязательная?
Транспортировочная
@@BootuzDinamontuz спасиб зв инструкцию. все четко. еще б yaml в github чтоб не воевать с пробелами-отступами. Но и так все сработало после наведения порядка после копи-пасты ;)
Жаль нет rgb панелей, есть только платы на ws2812
Есть и RGB панели, но это уже другая тема.
@@BootuzDinamontuz Possible to display scrolling text/smiley with esphome (ws2812b 32x8 matrix)?
if possible can you please make a video on that ?
У меня тоже не получилось с русским текстом.
Хочу сделать информ часы, что-то наподобие этого
ruclips.net/video/wx7wclPwmmg/видео.html
Буду благодарен если вы что-то подобное сделаете
Если вам ещё актуально, то вот вариант с русскими буквами.
font:
- file: "LCD5x8HRU.ttf"
id: digit_font
size: 9
glyphs: :°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz.АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя!"%()+=,-
Вообщем надо явно указать какие символы вам в прошивку зашить. Между "Z" и "a" пробел, всё в одну строку.
Шрифт гуглим, из-за ссылки удаляет комментарий.