В этой статье мы рассмотрим процесс создания умной светодиодной системы под названием Smart LED. Этот проект основан на микроконтроллере ESP8266 и адресной светодиодной ленте.
Система Smart LED позволит вам не только наслаждаться красивой подсветкой, но и синхронизировать её с музыкой. Вы также сможете управлять системой с помощью голосового ассистента Алиса.
Проект на GitHub
Компоненты
Для создания этого проекта вам понадобятся следующие компоненты:
WeMos D1 Mini
Адресная светодиодная лента (12v или 5v)
PNP транзистор
Источник питания (12v или 5v, зависит от ленты, возможна их комбинация)
Резисторы (1 kΩ и 3.3 kΩ)
Конденсаторы (1µF - 2 шт и 47µF, U не менее 6В)
-
Дополнительно:
Кнопки для управления
Стабилизатор напряжения (при использовании одного источника питания для 12v ленты и ESP8266)
Конденсатор на вход стабилизатора (47µF, U не менее 15В) при использовании стабилизатора
Шаг 1: Подключение компонентов
Для подключения компонентов воспользуйтесь одной из схем, одна из которых представлена на изображении ниже:
Существуют и другие варианты схем, которые можно найти здесь.
Шаг 2: Настройка MQTT брокера
Вы можете развернуть собственный MQTT брокер, например, на базе Raspberry Pi. В этой статье мы рассмотрим сервис WQTT, который предлагает ряд преимуществ: быструю интеграцию с Алисой, бесплатный пробный период на месяц и доступную стоимость подписки — всего 300 рублей в год.
Первым шагом необходимо зарегистрироваться на сайте.
Далее нужно добавить устройство, которым мы будем управлять с помощью Алисы и настроить его. Для этого нужно перейти на вкладку «Настройки» и нажать на кнопку "Добавить устройство" и выбираем Лампочку. Далее заполняем название и комнату. Потом самое важное: нужно добавить "Органы управления".
Нужно добавить несколько типов органов управления и настроить их "Топики управления" и дополнительные параметры, все они приведены ниже:
Топики состояния заполнять не надо!
Топики управления рекомендуется просто скопировать!
-
Выключатель питания Топик управления:
/home/room/led/power
Команда включения:
turnOn
Команда включения:turnOff
Далее подобным способом добавляем остальные "Органы управления"
-
Регулятор -> Яркость
Топик управления:/home/room/led/brightness
Множитель:
1
Мин:0
Макс:100
Шаг:1
-
Настройка цвета -> Цвет - RGB
Топик управления:/home/room/led/color
-
Переключатель режимов -> Программа
Топик управления:/home/room/led/mode
Режимы:
one=one,two=two,three=three,four=four,five=five,six=six,seven=seven,eight=eight,nine=nine,ten=ten
10 режимов это максимальное кол-во, при желании можно уменьшить.
-
Переключатель режимов -> Скорость работы
Топик управления:/home/room/led/speed
Режимы:
fast=fast,slow=slow,medium=medium,max=max,min=min
По завершению настройки устройство должно выглядеть так:
После этого нажимаем на кнопку "Сохранить"
Теперь необходимо настроить мобильное приложение «Умный дом» (Используется для управления станций с Алисой):
Запустите приложение «Умный дом».
Войдите в свою учётную запись Яндекса.
Нажмите на плюсик в правом верхнем углу.
Выберите "Устройство умного дома".
В списке устройств найдите «WQTT.RU» и выберите его.
Нажмите на вкладку «Привязать к Яндексу».
Пройдите верификацию в WQTT (логин и пароль, которые вы указывали при регистрации в WQTT) и подтвердите доступ к аккаунту Яндекс.
По итогу в ваши устройства в приложении должно добавиться новое устройство типа Лампочка.
Шаг 3: Настройка брокера в коде
Где взять программу?
Код для прошивки микроконтроллера находиться на GitHub или можно загрузить по ссылке
Для настройки брокера и WiFi в директории ColorMusic_WiFi_VSV_Edition
откройте файл settings.h
. В нем нужно изменить:
ssid
- Название Wi-Fi сетиpassword
- Пароль от Wi-Fi сети-
mqtt_server
,mqtt_port
,mqtt_user
,mqtt_password
нужно взять с вкладки "Брокер" на WQTTmqtt_server
- Адресmqtt_port
- Портmqtt_user
- Пользовательmqtt_password
- Пароль
led_topic
- это топик, который ведёт ко всем настройкам вашей ленты. Если вы следовали инструкции и скопировали все топики управления, то у вас он должен быть"/home/room/led"
и изменять его не нужно.
Шаг 4: Настройка режимов и функций
Полный список всех доступных режимов можно найти здесь.
Чтобы изменить доступные режимы, необходимо внести изменения в массив режимов favorites_modes
в коде (он находится в файле 01_Settings.ino
).
Один режим - массив вида {mode, submode}
.
В таблице режимов mode
и submode
можно найти в первом столбике в формате mode.submode
const byte favorites_modes[][2] = {{1, 2}, {2, 1}, {2, 2}, {2, 4}, {3, 1}, {3, 3}, {4, 6}, {4, 7}, {4, 8}, {4, 9}};
Для примера: Мы хотим установить в качестве первого режима - "Бегающая точка со следами", его номер в таблице - 2.3
Далее мы изменяем первый элемент массива на массив {2, 3}
const byte favorites_modes[][2] = {{2, 3}, {2, 1}, {2, 2}, {2, 4}, {3, 1}, {3, 3}, {4, 6}, {4, 7}, {4, 8}, {4, 9}};
Шаг 5: Загрузка кода
В коде есть обязательные настройки находятся в файле 01_Settings.ino
в разделах «Обязательные настройки» и «Пины». Например NUM_LEDS
- количество светодиодов в ленте.
У каждой настройки есть комментарий, объясняющий её использование.
После завершения настройки параметров прошейте микроконтроллер с помощью скомпилированного кода.
Шаг 6: Наслаждайтесь светомузыкой!
Обзор возможностей управления
После завершения настройки в вашем мобильном приложении появится новое устройство с набором настроек:
Цвет
Программа работы
Скорость работы
Вы можете управлять подсветкой как через приложение, так и с помощью Алисы. Вот примеры команд для управления:
Включи подсветку
Сделай подсветку поярче
Сделай подсветку зелёной
Установи 7 режим подсветки
Все команды можно найти во вкладке «Голосовые команды» (она находится в самом низу)
Для каждого режима предусмотрены индивидуальные настройки, с которыми можно ознакомиться здесь.
Если вы используете режим, на который влияет цвет (например,«Огонь» под номером 2.4), необходимо сначала задать желаемый цвет, а затем выбрать соответствующий режим. В противном случае, если сначала установить режим, а затем цвет, подсветка будет работать в режиме статичного света.
Если вы подключили кнопки, то можно переключать режимы кнопками UP и Down.
Музыкальные режимы
В музыкальных режимах используется значение для нижнего порога шумов.
Если оставить настройку AUTO_LOW_PASS_ON_START
равной 1 по умолчанию, то при первом запуске нижний порог шума будет автоматически рассчитан. Его можно изменить, нажав кнопку ОК. Новое значение будет записано в память и использовано в дальнейшем.
Шаг 7 (Опциональный): Создание печатной платы
Вы можете создать печатную плату для вашего проекта. На сайте можно клонировать проект и изменить плату. Там представлена универсальная плата для одного из источников питания 12V или 5V.
При использовании 12V ленты потребуется источник питания 12V и стабилизатор напряжения.
Заключение
Создание умной светодиодной системы SmartLED с дает возможность не только создавать красочное освещение, но и управлять им через голосового помощника Алису.
Этот проект предлагает гибкую настройку, интеграцию с MQTT брокером и умным домом, что позволяет управлять освещением из приложения или голосовыми командами.
Комментарии (9)
Mr_Boshi
29.04.2024 18:24Существует довольно известный проект WLED. Не знаю есть ли интеграция с яндексом, но с Home Assistant точно есть.
vlvsv Автор
29.04.2024 18:24Благодарю за ваш комментарий! Проект WLED не имеет прямой интеграции с сервисами Яндекса.
Be1erafon
29.04.2024 18:24Года 4 пользуюсь wled шьется прямо с сайта, конфигурируется как надо из настроек, очень удобно, подключено все ha. Одно время писал сам подобные прошивки, но не вижу смысла больше в этом.
ColdSUN
29.04.2024 18:24Честно говоря, когда я увидел заголовок, я подумал о прямой интеграции ленты, через matter. А через малину и облако интеграций каких угодно и сколько угодно. Тот же wled можно из ХА в Алису добавить легко.
yoog
29.04.2024 18:24Wled прокидывается из hassio через "яндекс смарт хоум" в нем доступно большинство эффектов, регулировка температуры и яркости
GennPen
По вашей схеме адресная лента ничего не будет показывать. Нужно подключать на DIN. Там даже стрелочка показывает направление данных.
vlvsv Автор
Спасибо за уточнение! Я действительно не обратил внимание нанаправление стрелок. Исправил