Smart LED: Адресная LED подсветка с управлением через Алису

В этой статье мы рассмотрим процесс создания умной светодиодной системы под названием 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: Подключение компонентов

Для подключения компонентов воспользуйтесь одной из схем, одна из которых представлена на изображении ниже:

Схема с использованием 5v адресной ленты

Схема с использованием 5v адресной ленты

Существуют и другие варианты схем, которые можно найти здесь.

Шаг 2: Настройка MQTT брокера

Вы можете развернуть собственный MQTT брокер, например, на базе Raspberry Pi. В этой статье мы рассмотрим сервис WQTT, который предлагает ряд преимуществ:  быструю интеграцию с Алисой, бесплатный пробный период на месяц и доступную стоимость подписки — всего 300 рублей в год.

Первым шагом необходимо зарегистрироваться на сайте.

Далее нужно добавить устройство, которым мы будем управлять с помощью Алисы и настроить его. Для этого нужно перейти на вкладку «Настройки» и нажать на кнопку «Добавить устройство» и выбираем Лампочку. Далее заполняем название и комнату. Потом самое важное: нужно добавить «Органы управления».

Нужно добавить несколько типов органов управления и настроить их «Топики управления» и дополнительные параметры, все они приведены ниже:

Топики состояния заполнять не надо!

Топики управления рекомендуется просто скопировать!

  1. Выключатель питания Топик управления:

    /home/room/led/power

    Команда включения: turnOn Команда включения: turnOff

Должно получиться так

Должно получиться так

Далее подобным способом добавляем остальные «Органы управления»

  1. Регулятор → Яркость
    Топик управления:

    /home/room/led/brightness

    Множитель: 1
    Мин: 0
    Макс: 100
    Шаг: 1

  2. Настройка цвета → Цвет — RGB
    Топик управления:

    /home/room/led/color
  3. Переключатель режимов → Программа
    Топик управления:

    /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 режимов это максимальное кол-во, при желании можно уменьшить.

  4. Переключатель режимов → Скорость работы
    Топик управления:

    /home/room/led/speed

    Режимы:

    fast=fast,slow=slow,medium=medium,max=max,min=min

По завершению настройки устройство должно выглядеть так:

Устройство должно выглядеть так

Устройство должно выглядеть так

После этого нажимаем на кнопку «Сохранить»

Теперь необходимо настроить мобильное приложение «Умный дом» (Используется для управления станций с Алисой):

  1. Запустите приложение «Умный дом».

  2. Войдите в свою учётную запись Яндекса.

  3. Нажмите на плюсик в правом верхнем углу.

  4. Выберите «Устройство умного дома».

  5. В списке устройств найдите «WQTT.RU» и выберите его.

  6. Нажмите на вкладку «Привязать к Яндексу».

  7. Пройдите верификацию в 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 нужно взять с вкладки «Брокер» на WQTT

  • 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 брокером и умным домом, что позволяет управлять освещением из приложения или голосовыми командами.

© Habrahabr.ru