• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Home Assistant Container
      • Автоматизации
      • Lovelace
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Очень красивый эффект горения свечи на светодиодной матрице, шим контроллере и esp32. С интеграцией в Home Assistant.

3 марта, 2026

 

CharliePlex 15×7: https://ali.click/pc7i11i?erid=2SDnje9wUhX

Начнём с того, что лучше эффекта горения свечи электронного я просто не встречал. Этот вариант настолько крутой, что хочется на него смотреть (как и на огонь) вечно.

Данная матрица светодиодная, имеет обычные светодиоды 15×7 размером. Но на плате еще есть шим контроллер IS31FL3731, который управляет этими светодиодами уменьшая их яркость, тем самым получается очень крутой эффект, как будто это адресная матрица, только имеет совершенно другие светодиоды.

Ну оно и получается так, что можно зажечь любой светодиод по отдельности.

Я делал подобный проект, но на матрице 16×8 размером и там шим контроллера на самой плате матрицы нет, там шим контроллер припаивался отдельно к матрице сзади. Но шим контроллер там тот же IS31FL3731:

Красивый ночник “Электронная свечка”

 

И по этой же аналогии свечи, я захотел сделать и на матрице 15×7 данный эффект. Но оказалось, что это не так просто, как кажется. Готовых рабочих примеров я попросту не нашёл. Ничего не работало, на  матрице все билось, эффект кривой получался, перевёрнутый и разбит на две части.

Но спустя некоторые усилия, мне всё-же удалось сделать рабочий вариант горения этой свечи.

Сначала я пытался это все делать в ESPHome и на esp32c3, но  оказалось, что в yaml это очень сложно реализовать и я бросил эту затею.

Но в arduino ide был же прошлый вариант, по этому с него и начал новый делать.

Мне пришлось карту адресов светодиодов заново узнать и написать, так как адресация из библиотеки Adafruit_IS31FL3731.h была совсем другая и по этому все эффекты бились. И тут непонятно, толи эта матрица – это клон adafruit со своим шимом, которые имеет уникальные адреса. Толи просто матрицы уже другая и адреса другие.

 

Помимо анимации свечения, я еще сделал так, чтоб она управлялась из умного дома Home Assistant (да по сути и не только из него) по MQTT. А именно включалась и выключалась.

Я подумал, что это полезная функция. Если делать такой ночник, как свеча – то полезно его включать при наступлении темноты и выключать соответственно когда светло.

 

Схема подключение:

Питание подключается по следующей схеме:

Слева плюс, с права минус и подаётся 3 вольта.

 

i2c у матрицы на этих пинах:

 

i2c адрес по умолчанию 0x74, если запаять перемычку, то будет 0x77.

 

 

Ну а пины esp32c3 контроллера, это gpio 5 – sda и gpio 6 – scl. Ну а питание 3.3 вольта подаём прям от контроллера. Этого достаточно для матрицы.

 

Программа:

Код написан в Arduino ide.  Для работы нужны библиотеки:

Adafruit_IS31FL3731.h – нужна для работы с матрицей
PubSubClient.h – нужна для публикации в mqtt
ArduinoJson.h -нужна 6той версии
Wire.h – нужна для работы с i2c
WiFi.h – нужна для работы с wifi
Первые две нужно доустановить, остальные стандартные.
Так-же тут объявлен отдельный файл data7x15.h – файл должен находиться рядом с файлом программы.ino. у меня это candle.ino.
Ну и при открытии файла candle.ino в arduino ide, появляется две вкладки: candle.ino и data7x15.h
Далее в коде есть блок натсройки wi-fi, где вам нужно указать свой SSID и пароль от сети wifi:
Далее блок mqtt еще нужно указать. Где указывается ip адрес mqtt сервера, его порт, логин и пароль:
Далее указываем i2c пины и адрес i2c. По умолчанию 0x74, но может быть и 0x76.
Ну и самое главное, это карта светодиодов. Она у меня получилась вот такая.
const uint8_t ledMap[15][7] = {
  {2, 3, 4, 5, 6, 7, 8},
  {18, 19, 20, 21, 22, 23, 24},
  {34, 35, 36, 37, 38, 39, 40},
  {50, 51, 52, 53, 54, 55, 56},
  {66, 67, 68, 69, 70, 71, 72},
  {82, 83, 84, 85, 86, 87, 88},
  {98, 99, 100, 101, 102, 103, 104},
  {114, 115, 116, 117, 118, 119, 120},
  {127, 126, 125, 124, 123, 122, 121},
  {111, 110, 109, 108, 107, 106, 105},
  {95, 94, 93, 92, 91, 90, 89},
  {79, 78, 77, 76, 75, 74, 73},
  {63, 62, 61, 60, 59, 58, 57},
  {47, 46, 45, 44, 43, 42, 41},
  {31, 30, 29, 28, 27, 26, 25}
};
собственно это адреса диодов на матрице. их так-же 15×7.
bool candleEnabled = false; //выставить true – чтоб при подаче питания включалась матрица. false – по умолчанию будет выключена
И в самом конце скетча параметры Discovery – чтоб свечка автоматически добавлялась в Home Assistant.
  doc[“name”]               = “Candle 01”;
  doc[“unique_id”]          = “esp32_candle_01_switch”;
  doc[“state_topic”]        = topic_state;
  doc[“command_topic”]      = topic_set;
  doc[“availability_topic”] = topic_avail;
  doc[“payload_on”]         = “ON”;
  doc[“payload_off”]        = “OFF”;
  doc[“icon”]               = “mdi:candle”;
  JsonObject dev = doc.createNestedObject(“device”);
  dev[“identifiers”]  = “esp32_candle_01”;
  dev[“name”]         = “ESP32 Candle 01 (7×15)”;
  dev[“manufacturer”] = “DIY”;
  dev[“model”]        = “IS31FL3731 Matrix”;
Тут указываются иконки, имя устройства, имя кнопки.
Код программы для матрицы 15×5 с Discovery Home Assistant можно скачать отсюда: https://disk.yandex.ru/d/g5DbpuHkn4R1Tw

Для матрицы 16×8:

По сути параметры все те же самые, только немного в другой последовательности расставлены и нет привязки к карте светодиодов.
Тоже самое, для матрицы 16×8 с добавлением в Home Assistant Discovery – можно скачать тут: https://disk.yandex.ru/d/YXm8KhiM4IJ03g
Так-же для матрицы 16×8 есть код у меня без работы wifi (ну малоли, может у Вас нет Home Assistant.) Код тут можно взять: https://disk.yandex.ru/d/MFLwJXjmy503-g

Вариант для матрицы 15×7 с работой MQTT без Home Assistant Discovery:

Был у меня сначала первый вариант, когда у меня не получилось завести Home Assitant Discovery. Я просто сделал по MQTT работу. Но зато эта конфигурация будет работать с любым mqtt сервером.
Архив на работу с MQTT: https://disk.yandex.ru/d/2ScaGNOuwKdXyA
Ну а кому не хочется с MQTT или сервера mqtt нет, а хочется такую свечку сделать. То есть у меня еще код без mqtt, просто подал питание, свечка горит. Этот пример так-же для матрицы 15×7: https://disk.yandex.ru/d/AMjzSHUa2wFswA
Но все-же версия для mqtt, читает данные из топика: hmd/switch/esp32_candle_01/state и ждёт 2 состояния. ON – включает свечу, OFF выключает её.
Для работы с Home Assistant, можно сделать кнопку. В файл mqtt в блок switch, в Home Assistant добавляем:
- name: "Магическая свеча"
  unique_id: esp32_candle_01_switch
  command_topic: "hmd/switch/esp32_candle_01/set"
  state_topic: "hmd/switch/esp32_candle_01/state"
  payload_on: "ON"
  payload_off: "OFF"
  state_on: "ON"
  state_off: "OFF"
  optimistic: false
  qos: 1
  retain: true
  device:
    identifiers: ["esp32_candle_01"]
    name: "Магическая свеча"
    manufacturer: "DIY"
    model: "ESP32-C3 Candle“
Файл для 3д печати под матрицу 15×7 я взял тут: https://www.thingiverse.com/thing:4698466/files
На деле выглядит все так:

Вывод:

По итогу мне очень понравился этот опыт и эта свеча. Я буду в дальнейшем еще их докупать и сделаю из них атмосферные ночники. Буду такими свечками себе все освещать.
И я очень рад, что их стало доступно купить на Aliexpress. Раньше только adafruit их продавали. Но кстати, если судить по шелкографии сзади, у купленных с Aliexpress нет надписи adafruit, все-же видимо это клон. Но это и лучше. значит они не закончатся.
Реклама: ООО “АЛИБАБА.КОМ (РУ)” ИНН: 7703380158

Primary Sidebar

Поиск

Новые записи

  • Очень красивый эффект горения свечи на светодиодной матрице, шим контроллере и esp32. С интеграцией в Home Assistant.
  • Установка и настройка OpenClaw на примере Orange pi 6 plus
  • Делаем IP KVM на 4 порта из обычного KVM и Одноплатного компьютера с PiKVM на борту.
  • Предсказание выпадения осадков по атмосферному давлению в Home Assistant
  • PXVIRT – Proxmox для ARM процессоров. Установка, настройка и установка Home Assistant OS (HAOS)

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Secondary Sidebar

Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2026 ·