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

Комментарии • 25

  • @АлексейАнуфриев-э7р

    Вот это огромное спасибо! Все бы так объясняли, а то так рассказывают что ничего не поймёшь)

  • @Symbol_great
    @Symbol_great 2 года назад +2

    Спасибо! Накупил кучу экранов (очень интересный OLED 2.42" ssd1309), для простого человека как я, эти коды вывода информации просто ужас.

  • @SecurKsb
    @SecurKsb 3 года назад +1

    Вот ещё бы в espHome прикрутили вывод информации на самодельную матрицу из адресных светодиодов ....
    За видео однозначно лайкос

  • @LIvanovv
    @LIvanovv 3 года назад +1

    а можно еще так:
    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) ++;
    Нагляднее выходит

    • @tsvadim
      @tsvadim 9 месяцев назад

      а можно для страниц использовать goto

  • @Maximk0White
    @Maximk0White 3 года назад +1

    окуенно! спасибо огромное! как раз есть часы на такой матрице и есп + dht22 + кнопка + фоторезистор, пытался подружить с HA и тоже пришел к такому. Только я хочу самостоятельное устройство и иногда выводить информацию на эти часы, время беру с сервера времени, а не из HA) теперь думаю как переключать вывод времени/показания датчика с кнопки...

    • @BootuzDinamontuz
      @BootuzDinamontuz  3 года назад

      Вот без мата было бы прекрасно

    • @Maximk0White
      @Maximk0White 3 года назад +2

      @@BootuzDinamontuz поправил)

  • @RafaelRodriguez-nu4yz
    @RafaelRodriguez-nu4yz 2 года назад +1

    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?

    • @BootuzDinamontuz
      @BootuzDinamontuz  2 года назад

      The program takes the time settings from the Home Assistant. So you need to find these settings in HA and change them.

    • @RafaelRodriguez-nu4yz
      @RafaelRodriguez-nu4yz 2 года назад

      Muchas gracias ,un saludo desde Colombia

  • @alexkolesnikov3713
    @alexkolesnikov3713 3 года назад +2

    А скетч выложить можно?

    • @BootuzDinamontuz
      @BootuzDinamontuz  3 года назад +1

      Спасибо за напоминание, сейчас добавлю к описанию.

  • @alik00.
    @alik00. 3 года назад

    Извените вопрос не по темы, а можно управлять кнопкой подключëной к шлюз zigbee датчиками подключëнные по wifi tuya smart

    • @BootuzDinamontuz
      @BootuzDinamontuz  3 года назад

      Если кнопка тоже Tuya, то можно через приложение Tuya Smart App.

  • @alik00.
    @alik00. 3 года назад

    Подскажите какие датчики от других фирм работают с приложением tuya и с шлюзом ZigBee tuya

    • @BootuzDinamontuz
      @BootuzDinamontuz  3 года назад

      С приложением Туя Смарт работает только Туя устройства. Но об этом чуть позже в другом видео.

  • @LIvanovv
    @LIvanovv 3 года назад

    А пленка поверх матрицы это транспорт или защитная/обязательная?

    • @BootuzDinamontuz
      @BootuzDinamontuz  3 года назад +1

      Транспортировочная

    • @LIvanovv
      @LIvanovv 3 года назад +1

      @@BootuzDinamontuz спасиб зв инструкцию. все четко. еще б yaml в github чтоб не воевать с пробелами-отступами. Но и так все сработало после наведения порядка после копи-пасты ;)

  • @dumutruu
    @dumutruu 3 года назад

    Жаль нет rgb панелей, есть только платы на ws2812

    • @BootuzDinamontuz
      @BootuzDinamontuz  3 года назад

      Есть и RGB панели, но это уже другая тема.

    • @ighost_1337
      @ighost_1337 2 года назад

      @@BootuzDinamontuz Possible to display scrolling text/smiley with esphome (ws2812b 32x8 matrix)?
      if possible can you please make a video on that ?

  • @viktor6net
    @viktor6net 3 года назад

    У меня тоже не получилось с русским текстом.
    Хочу сделать информ часы, что-то наподобие этого
    ruclips.net/video/wx7wclPwmmg/видео.html
    Буду благодарен если вы что-то подобное сделаете

    • @serg-gorelov
      @serg-gorelov 2 года назад +3

      Если вам ещё актуально, то вот вариант с русскими буквами.
      font:
      - file: "LCD5x8HRU.ttf"
      id: digit_font
      size: 9
      glyphs: :°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz.АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя!"%()+=,-
      Вообщем надо явно указать какие символы вам в прошивку зашить. Между "Z" и "a" пробел, всё в одну строку.
      Шрифт гуглим, из-за ссылки удаляет комментарий.