ОГНЕННАЯ WIFI ЛАМПА

13.06.19 Версия 1.0: первоначальная, вроде бы стабильная версия
14.06.19 Версия 1.1: исправлены баги, улучшена стабильность
ВНИМАНИЕ!!! Архив проекта обновлён, библиотека FastLED обновлена до версии 3.2.9. Данная версия поддерживает ядро esp версии 2.5.2. Так что ставим ядро для esp версии 2.5.2, свою версию FastLED удаляем и ставим новую FastLED 3.2.9 из архива проекта!
16.06.19 Версия 1.2:
– Добавлена настройка статического IP
– Добавлен эффект “Цвет”
– Добавлен эффект “Снег”
– Добавлен эффект “Матрица”
– Добавлен эффект “Светлячки”
30.06.19 Версия 1.3: Исправлен глюк с невыключением лампы, проявляющийся у некоторых пользователей
30.06.19 Версия 1.4:
– Исправлен баг при смене режимов
– Исправлены тормоза в режиме точки доступа

подписаться на обновления

Представляю вашему вниманию светильник на адресных светодиодах с кучей эффектов, управлением по Wi-Fi и функцией будильник-рассвет!

Железо

  • Проект собран на базе микроконтроллера ESP8266 в лице платы NodeMCU или Wemos D1 mini (неважно, какую из этих плат использовать!).
  • Вместо адресной ленты используется гибкая адресная матрица 16×16, что выходит дешевле ленты (матрица 16×16 стоит 1500р, она состоит из 256 диодов с плотностью 100 штук на метр. Лента такой же плотности стоит 1000р за метр (за 100 светодиодов). Для склейки матрицы размером 16×16 понадобится 2.5 метра ленты, то есть 2500р. А готовая матрица стоит на 1000р дешевле!).
  • Система управляется со смартфона по Wi-Fi (приложение GyverLamp для Android), а также “оффлайн” с кнопки на корпусе (сенсорная кнопка на TTP223).

Фишки

  • 14 крутых эффектов
  • Настройка скорости, яркости и “масштаба” для каждого эффекта
  • Настройка эффектов со смартфона
  • Работа системы как в локальной сети, так и в режиме “точки доступа”
  • Встроенный Wi-Fi менеджер для удобной настройки сети
  • Система получает точное время из Интернета
  • Управление кнопкой: смена режима, настройка яркости, вкл/выкл
  • Режим будильник-рассвет: менеджер будильников на неделю в приложении

Корпус

  • Корпус выглядит очень презентабельно, несмотря на простоту и доступность материалов
  • Рассеиватель – матовый плафон из Леруа Мерлен
  • Остальные элементы корпуса – канализационные трубы, в лучших традициях жанра!

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

  • В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций.

  • Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

Конфигурация прошивки


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

  • DAWN_BRIGHT – яркость рассвета в максимальной точке (перед отключением)
  • DAWN_TIMEOUT – время в минутах, которое рассвет будет жарить на максимум после указанного времени будильника
  • GMT – смещение по часовому поясу
  • ESP_MODE – режим работы WiFI системы (читай ниже)

Если вы используете не матрицу, а спираль из ленты, то нужно настроить под себя параметры матрицы:

  • WIDTH – ширина матрицы, она же количество светодиодов в одном витке спирали
  • HEIGHT – высота матрицы, она же количество витков спирали
  • MATRIX_TYPE – тип матрицы. Гибкая матрица 16×16 имеет тип 0, спиральная матрица из ленты – тип 1
  • Полный гайд по матрицам есть тут: https://alexgyver.ru/matrix_guide/

Настройка Wi-Fi


  • Перед подключением к ПК обязательно подключать внешнее питание!
  • В прошивке версии 1.2 и выше можно задать статический IP адрес лампы! Искать адрес, как показано в видео, не нужно
  • Для режима работы “Точка доступа“:
    • ВНИМАНИЕ! В этом режиме система не подключается в Интернету и не получает текущее время, т.е. режим будильника не работает!
    • В прошивке настройка ESP_MODE 0
    • Чуть ниже IP_AP[] = {192, 168, 4, 66}; – статический IP лампы для подключения
    • Загрузить прошивку по инструкции ниже
    • После загрузки прошивки открыть монитор порта, перезагрузить систему кнопкой Reset на плате, ожидать вывод информации в порт, там будет указан IP лампы для связи по UDP
    • Подключиться со смартфона к лампе по WiFi, название точки AP_SSID (по умолч. GyverLamp), пароль AP_PASS (по умолч. 12345678)
    • Открыть приложение, в настройках указать IP, подсмотренный два пункта ранее
  • Для режима работы “Локальная сеть“:
    • В прошивке ESP_MODE 1
    • Чуть ниже IP_STA[] = {192, 168, 1, 66}; – статический IP лампы для подключения
    • Загрузить прошивку по инструкции ниже
    • Подключиться к точке доступа с именем AC_SSID (по умолч. AutoConnectAP), пароль AC_PASS (по умолч. 12345678)
    • Должно автоматически открыться окно конфигурации точки доступа
    • Если не открылось: открыть монитор порта в Arduino IDE, перезагрузить плату, узнать IP точки доступа, открыть на смартфоне браузер, в строку адреса вписать полученный IP адрес, перейти. Должна открыться страница конфигурации WiFi Manager
    • Нажать Configure, откроется список точек доступа. Выбрать свой роутер, указать пароль
    • Перезагрузить плату, смотреть в монитор порта, узнать локальный IP лампы
    • Открыть приложение, в настройках указать IP
  • Всё должно работать!

Работа с приложением


  • Приложение есть только под Android, скачать можно с PlayMarket’a, вот ссылочка
  • В приложении можно настроить параметры текущего эффекта или сменить эффект на другой. После смены эффекта или изменения его параметров настройки сохраняются в энергонезависимую память через 30 секунд. При смене эффекта настройки сразу же сохраняются.
  • В приложении можно настроить 7 будильников на каждый день недели. При открытии окна будильников текущие параметры будильников подгружаются из лампы. После изменения состояния будильника или его времени настройки сразу же сохраняются в энергонезависимую память, т.е. лампе не страшна перезагрузка.
  • Логика работы рассвета такая: свет плавно включается за указанное время до будильника, разгорается до максимума ко времени будильника, и горит так ещё DAWN_TIMEOUT минут, затем отключается. Прервать рассвет можно кликом по кнопке на корпусе.

Управление кнопкой

  • Одиночный клик: выкл/выкл свет, также выключение рассвета
  • Двойной клик: смена режима
  • Тройной клик: смена режима назад
  • Удержание: смена яркости

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

Схема с NodeMCU

Схема с Wemos mini

Схема пайки

Если вы не ставите кнопку – обязательно подключите пин кнопки (D2 на схемах) к земле GND. Иначе яркость будет всегда увеличиваться, т.к. контроллер будет считать кнопку нажатой!

КОРПУС

В моём проекте используется корпус из сантеха, но Евгений Пахтусов поделился своей 3D моделью стойки под плафон из Леруа, и владельцы 3D принтера могут себе его напечатать. Файлы для печати находятся в архиве проекта в папке 3D_print. Перекачайте архив, если у вас её нет.

Также недавно поступило предложение использовать подставку для стерилизации банок. неожиданно, правда? 😀

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится:

Если вместо указанных товаров у вас открываются блузки/вата/прочая хрень – выбросьте свой айфон! Или проверьте его на вирусы.

NodeMCU или Wemos mini? Абсолютно не имеет значения, платы одинаковые. Отличаются по размеру и цене

всё для пайки
аккумы, bms
arduino, модули
мультиметры
инструменты
бп и модули

ПРОШИВКА И НАСТРОЙКА

Изучить гайд для новичков, чтобы избавить окружающих от глупых вопросов.
Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если например лента его потребует. Это может привести к выгоранию защитного диода на плате.

В видео было сказано, что нужно ставить версию ядра esp 2.5.0, потому что что-то не работало.
Проблема была в библиотеке FastLED, точнее в её версии 3.2.0, которая показана в видео и в инструкции
На данный момент (вечер 15.06.2019) библиотеку FastLED я заменил на версию 3.2.9, которая работает с ядром esp версии 2.5.2

  1. Ставьте ядро ESP (инструменты/Плата/Менеджер плат) версии 2.5.2!
  2. Свою версию FastLED нужно удалить из c/Program Files…. libraries. Если вы уже успели её туда установить.
  3. Версию FastLED ставим 3.2.9, как в этом архиве

Зачем это всё: версия ядра esp 2.5.2 стабильнее

Скачать и установить Arduino IDE. Нажать JUST DOWNLOAD на странице пожертвования. Согласиться на установку всех драйверов при установке программы
Скачать и установить пакет JRE

Скачать и установить драйвер для CH341

Скачать архив проекта, извлечь. Перетащить/скопировать библиотеки из папки libraries в папку библиотек Arduino

Открыть папку с актуальной версией прошивки, открыть главный файл прошивки. Остальные файлы откроются автоматически и образуют вкладки

Открыть Файл/Настройки, вставить ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json в текст-бокс для дополнительных ссылок

Открыть Инструменты/Плата/Менеджер плат…, найти esp8266 by ESP8266 Community, установить версию 2.5.2 (конфликт версий решён, ставьте 2.5.2!!!)

Открыть Инструменты, настроить Плату, Порт и другие параметры как на скриншоте

Кнопка Загрузить находится здесь

После загрузки можно открыть Монитор порта, не забыть выставить скорость 115200, и получить ценную информацию в виде IP адреса модуля

Содержимое папок в архиве

  • libraries – библиотеки проекта. Заменить имеющиеся версии
  • firmware – прошивки для Arduino
  • schemes – схемы подключения компонентов
скачать архив
страница на github
сообщить об ошибке
обсудить на форуме

Дополнительно

Настройки в прошивке

// -------- ВРЕМЯ -------
#define GMT 3              // смещение (москва 3)
#define NTP_ADDRESS  "europe.pool.ntp.org"    // сервер времени

// -------- РАССВЕТ -------
#define DAWN_BRIGHT 200       // макс. яркость рассвета
#define DAWN_TIMEOUT 1        // сколько рассвет светит после времени будильника, минут

// ---------- МАТРИЦА ---------
#define BRIGHTNESS 40         // стандартная маскимальная яркость (0-255)
#define CURRENT_LIMIT 2000    // лимит по току в миллиамперах, автоматически управляет яркостью (пожалей свой блок питания!) 0 - выключить лимит

#define WIDTH 16              // ширина матрицы
#define HEIGHT 16             // высота матрицы

#define COLOR_ORDER GRB       // порядок цветов на ленте. Если цвет отображается некорректно - меняйте. Начать можно с RGB

#define MATRIX_TYPE 0         // тип матрицы: 0 - зигзаг, 1 - параллельная
#define CONNECTION_ANGLE 0    // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний
#define STRIP_DIRECTION 0     // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз
// при неправильной настрйоке матрицы вы получите предупреждение "Wrong matrix parameters! Set to default"
// шпаргалка по настройке матрицы здесь! https://alexgyver.ru/matrix_guide/

// --------- ESP --------
#define ESP_MODE 1
// 0 - точка доступа (192.168.4.1 или другой)
// 1 - локальный (192.168.1.232 или другой)

// -------- Менеджер WiFi ---------
#define AC_SSID "AutoConnectAP"
#define AC_PASS "12345678"

// -------------- AP ---------------
#define AP_SSID "GyverLamp"
#define AP_PASS "12345678"
#define AP_PORT 8888
2019-08-24T07:50:53+03:00