Рет қаралды 6,738
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