Ардуино настольная лампа

Содержание

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

Введение

Что было до моего появления там

Давным-давно, чтобы помыть посуду или приготовить пищу нужно было включить светильник над мойкой. Это была переделанная настольная лампа.

Мне не нравилось нажимать маленький выключатель мокрыми руками, потому что он коммутировал 220 вольт на лампу накаливания.

Также свет от лампы падал преимущественно на мойку, а хотелось лучше освещать стол для готовки и плиту.

  • Сделать включение/выключение света на кухне бесконтактным;
  • Равномерно освещать мойку, стол для готовки и плиту;
  • Экономить электроэнергию, за счёт замены лампы накаливания на светодиоды.

Собрал светильник 1. Он состоял из 2-х метрового алюминиевого короба с рассеивателем для RGB ленты и блока управления. Короб и рассеиватель купил готовые в магазине, лента была, а блок управления давно лежал в углу и ждал своего часа.

Корпус взял промышленный (пыле, влагозащищённый). Поскольку лента на 12 вольт, то в блоке разместился блок питания с 220 В на 12 В, плата гальванической развязки для управления лентой на базе TLP250 (оптопара) и управляла всем этим ардуино в компактном исполнении.
Плата гальванической развязки у меня осталась от старого проекта. Когда-то делал подсветку для минибара у себя в тумбочке. При открывании двери сенсорная площадка фиксировала изменение ёмкости и включала мягко переливающийся свет. То есть, плата хорошо подходила для текущего проекта, оставалось только обрезать всё лишнее. На плате стоял линейный преобразователь на 5 вольт, с него запитал ZUNo.

Включать светильник планировалось подносом руки к ультразвуковому измерителю расстояния. Его вмонтировал в крышку, а в коробку влезли все остальные части. Всё «надёжно» закрепил термоклеем. На время тестирования сделал рядом кнопку подачи питания в блок управления из выключателя света для внешнего монтажа.

Включать свет стало удобнее и безопаснее. Он крепился вверх «ногами» к дну кухонного шкафчика и воде с мокрых рук попасть внутрь было тяжелее.

Выводы по предыдущему блоку управления

Освещение рабочей зоны кухни стало равномернее и приятнее, из-за неестественной цветопередачи моей светодиодной ленты у некоторых продуктов менялся цвет. Например: морковка казалась гораздо аппетитнее из-за более яркой окраски. Но сильно это не мешало и большого вреда, буду надеяться, не нанесло.

С бесконтактным включением/отключением всё оказалось хуже. Оно работало. Но после 5 минут в отключенном состоянии начинались всполохи на светодиодной ленте. Переделывать схему на оптопарах не стал и оставил всё как есть. Только для включения и выключения стали пользоваться новым выключателем. Его местоположение и форма всем понравились.
За два года использования на корпусе и внутри него скопился жир и прочие соединения выделяемые во время приготовления пищи. Данный налёт частично проник и в корпус через отверстия для ввода проводов. Но из-за глянцевой поверхности корпуса это вещество сконденсировалось в желатиноподобную массу. На ощупь приятную, без запаха и… (на вкус пробовать не стал). Сделал несколько фотографий пятна в виде зародыша дракона.

На стенах же данное вещество превращается в ужасный налёт, который не просто отмывается.

Что стало

Порывшись в закромах нашёл недоделанный модуль расширения для ZUNo. ZUNo – это ардуино подобная плата для конструирования собственного устройства, совместимого с умным домом Z-Wave. Программируется из среды ардуино.

  • 28 kB Flash memory for your sketches
  • 2 kB RAM available
  • Z-Wave RF transmitter at 9.6/40/100 kbps
  • 26 GPIO (overlaps with special hardware controllers)
  • 4 ADC
  • 5 PWM
  • 2 UART
  • 1 USB (serial port)
  • 16 kB EEPROM
  • 1 SPI (master or slave)
  • 4 IR controllers, 1 IR learn capability
  • 1 TRIAC/ZEROX to control dimmer
  • 3 Interrupts
  • 1 Timer 4 MHz
  • I2C (software)
  • 1-Wire (software)
  • 8×6 Keypad Scanner (software)
  • 2 service LED, 1 service button
  • 1 user test LED

Модуль расширения делает из ZUNo полноценную отладочную плату, которую после отладки прототипа можно использовать как законченное устройство.

  • One 0-10 V analog output — control industrial dimmers
  • Up to four PWM or switch outputs (up to 5 A per channel) — control contactors, switches, halogen bulbs or LED strips
  • Up to eight digital 0/3 V inputs or outputs — connect various low voltage digital senors and actors
  • Up to four digital 0/3, 0/5 or 0/12 V digital or analog inputs — connect industrial 10 V sensors or any Arduino-compatible sensor
  • RS485 or UART — for industial meters
  • OneWire — for DS18B20 or other sensors

Для своего проекта мне нужно 3 мощных транзистора для коммутации 12 вольт на светодиодную ленту и преобразователь с 12 вольт на 5 вольт, для питания ZUNo. Остальная периферия модуля расширения не напаяна или не протестирована.

В этой части схемы не хватает диода на питание, для защиты от «переполюсовки» и резисторы на затворах силовых полевых транзисторов надо было подключать на затвор, а не перед ограничивающим резистором. Об этом ещё напишу в выводах.

Поставляется данный модуль расширения в корпусе от Gainta. Мой предыдущий блок управления тоже был в корпусе от этой фирмы, но другого размера. К сожалению крепления на модуле не подошли к старому корпусу, а сверлить новый не хотелось, оставил старый корпус. Плату «посадил» на термоклей.

Немного о программировании Arduino и ZUNo

Z-wave устройства обязательно имеют некоторое количество классов. Классы описывают функции устройства и интерфейс взаимодействия. Например, мой светильник управляет светодиодной лентой, состоящей из трёх цветов (красный, зелёный, голубой). Эти функции выполняет класс Switch multilevel. Если мы добавим его в скетч, то сможем удалённо менять яркость одного из цветов. Чтобы управлять тремя цветами, нужно сделать три экземпляра этого класса. Более подробно и детально говорить об этом не буду. Потому что рутинные манипуляции с классами скрыты для пользователей ZUNo понятием «канал». Например, мне нужны три класса Switch multilevel, значит в коде должно появиться 3 канала Switch multilevel и несколько функций callback’ов для управления по радио. Как же это сделать? Ещё нужно добавить класс Switch basic, чтобы включать и выключать светильник по нажатию одной кнопки (из интерфейса контроллера сети), а не настраивать 3 канала каждый раз.

Нужно зайти на сайт разработчиков, где выложены примеры z-uno.z-wave.me/Reference/ZUNO_SWITCH_MULTILEVEL. К каждому классу, поддерживаемому ZUNo есть описание и пример. Далее копируем и вставляем в свой скетч предлагаемые функции. Теперь в скетче есть три канала switch multilevel и 6 функций callback для реакции на команды по радио. Я не сильно искушён в классах Z-Wave, поэтому моё предыдущее устройство со светодиодной лентой работало с этим набором классов.

Объявлялись каналы так:

Это приводило к генерации следующих виджетов в контроллере после добавления в сеть:

Для настройки цвета приходилось в меню контроллера открывать и настраивать каждый цвет отдельно. Это не удобно и медленно. Однако, мне повезло. оказалось я не одинок. О нас подумали и сделали канал z-uno.z-wave.me/Reference/ZUNO_SWITCH_COLOR. Теперь в скетче только один канал и две callback функции. В меню контроллера настройка цветов выполняется как отдельно по каждому цвету, так сразу всех, путём выбора из палитры.

А в меню контроллера это выглядит так:

Следующая функция отвечает на запросы по радио. Придти может запрос на чтение состояние одного из каналов цветов.

А это функция для задания цвета из интерфейса контроллера.

Вот и весь код, который нужно добавить, чтобы превратить скетч arduino в скетч для ZUNo.

Заключение

После сборки и установки все заявленные задачи были выполнены. Однако, привычка включать свет выключателем осталась (очень уж удобно получилось). Бесконтактный выриант включения тоже работает. Из недостатков хочу отметить мерцание светодиодной лампы в течение секунды после подачи питания на блок управления. Это вызвано долгой инициализацией периферии ZUNo. В этот момент на ножках непредсказуемое состояние. Думаю подтягивающий резистор на затворе транзистора исправит ситуацию если его поставить после ограничивающего резистора. Если же код инициализации настраивает ножки на выход и меняет логические уровни целенаправленно, можно поэкспериментировать с RC-фильтром, который не будет пропускать короткие импульсы. Пока не делал, и возможно, не сделаю никогда!

Выводы

ZUNo и модуль расширения к ней сильно упрощают “домашнее техническое творчество». Однако, считаю эти продукты очень дорогими и если бы я работал в другом месте и вокруг меня не валялось бы «недоиспорченное» оборудование Z-Wave, то делал бы всё на ESP8266. Во время разработки узнал новый «стандарт» маркировки проводов от блока питания.

Теперь чёрной полосой помечается не только земля, но как и в моём случае «положительный» провод. Для модуля расширения это оказалось важно. Вышел из строя преобразователь на 5 вольт LM2594 (Цена в Чип и Дип около 200 рублей). Надеюсь, в следующей версии модуля расширения будет стоять защитный диод от «переполюсовки». А я буду проверять полярности питающих проводов. Ещё недостаток связан с корпусом. Корпус выглядит хорошо, но подключить провода без пинцета к клеммникам у меня не получилось. Надеюсь, что будет версия с другими клеммниками (для подключения проводов сверху, или под углом).

Я не люблю хранить фотографии на облачных сервисах и часто делать резервные копии. Поэтому большая часть фотографий связанная с процессом конструирования и светильника 1 безвозвратно испорчены.

Это всё, что осталось от процесса сборки и отладки.

А так выглядит пущенная в эксплуатацию подсветка, если немного пригнуться. Если выпрямиться, то коробку и выключатель не видно.

Источник

Огненная Wi-Fi лампа GyverLamp своими руками

ОБНОВЛЕНИЯ

ОПИСАНИЕ

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

  • Проект собран на базе микроконтроллера ESP8266 в лице платы NodeMCU или Wemos D1 mini
  • Вместо адресной ленты используется гибкая адресная матрица 16×16, что выходит дешевле ленты
  • Система управляется со смартфона по Wi-Fi, а также “оффлайн” с кнопки на корпусе (сенсорная кнопка на TTP223).
    • Для прошивки от AlexGyver используется приложение GyverLamp для Android и GyLamp для iOS
    • Для прошивки от gunner47 используется приложение Led Lamp (.apk) для Android и Arduino Lamp для iOS
  • 14 крутых эффектов с настройкой каждого
  • Настройка скорости, яркости и “масштаба” для каждого эффекта
  • Работа системы как в локальной сети роутера, так и в режиме “точки доступа”
  • Встроенный Wi-Fi менеджер для удобной настройки сети
  • Точное время из Интернета
  • Управление кнопкой: смена режима, настройка яркости, вкл/выкл
  • Режим будильник-рассвет: менеджер будильников на неделю в приложении
  • Куча разных прошивок и приложений от подписчиков! Эффекты, режимы, интеграция и прочее, читай ниже.

КУПИТЬ ЛАМПУ

В настоящий момент несколько магазинов предлагают купить набор для сборки GyverLamp, из них официально поддерживаемым мной является российский магазин Giant4. Купленные железки нужно собрать по схеме (смотри ниже) и загрузить одну из прошивок по инструкциям ниже.

GyverLamp v1 (Giant4)

  • СОБРАННАЯ ЛАМПА [NEW!]
  • ЭЛЕКТРОННЫЙ НАБОР
  • НАБОР С ПЛАФОНОМ

GyverLamp v2 (Giant4)

Aliexpress

  • AliExpress
  • AliExpress
  • AliExpress
  • AliExpress

ВИДЕО

КОМПОНЕНТЫ

Каталоги ссылок на Алиэкспресс на этом сайте:

Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .

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

  • Купить в РФ, 60 свет/метр, 30 свет/метр
  • Купить на Али ссылка, ссылка
  • Black PCB / White PCB – цвет подложки ленты, чёрная / белая. В видео была чёрная
  • 1m/5m – длина ленты в метрах (чтобы заказать 2 метра, берите два заказа 1m, очевидно)
  • 30/60/74/96/100/144 – количество светодиодов на 1 метр ленты. В видео использовалась лента 60 диодов на метр
  • IP30 лента без влагозащиты (как на видео)
  • IP65 лента покрыта силиконом
  • IP67 лента полностью в силиконовом коробе
  • Постфикс ECO – лента чуть более низкого качества, меньше меди, на длинной ленте будет сильно проседать яркость
  • Сантех
    • Труба D50 длина 250
    • Труба D40 короткая
    • Заглушка D40
  • Плафон, как в видео и похожие. Названия магазинов кликабельные
    • Леруа Мерлен
    • 33ideas плафон как в Леруа (доставка по РФ)
    • Мегастрой
    • Мегастрой ещё вариант
    • Brille (Украинский магазин)
    • Brille ещё вариант
    • Леонардо
    • ИКЕА + крышка под печать скачать с ЯД
    • Luxen (Беларусь)
  • Плафон НАСТЕННЫЙ
    • Леруя белый
    • Леруя чёрный
    • ЧиД
    • ЭЛЕТЕХ
    • Всеинструменты
    • Wildberries
    • Искать как Светильник “Цилиндр 1” НБУ 06-60-02 опал
  • Плафоны и прочее для ЭПИЧНОЙ версии лампы

    • БП 5V 10A – другой может не уместиться в трубе! Я брал этот https://ali.ski/oaiJ95
    • Труба Леруа
    • Абажур Леруа
    • Стойка Леруа
    • Светильник Хольмэ ИКЕА
    • Миска с крышкой OZON

    СХЕМЫ

    ПРОШИВКИ

    Здесь собрано краткое описание и инструкции к прошивкам от разных авторов из нашего сообщества. На данный момент самой прогрессивной прошивкой является версия от gunner47, основанная на версии 1.4 от AlexGyver. Там очень много всего улучшено, доработано и добавлено, для управления используется отдельное приложение под iOS и Android (см. ниже).

    • Для прошивки от AlexGyver используется приложение GyverLamp для Android и GyLamp для iOS
    • Для прошивки от gunner47 используется приложение Led Lamp (.apk) для Android и Arduino Lamp для iOS
    • К остальным прошивкам смотри описание ниже

    ВЕРСИЯ УСТАРЕЛА, СМОТРИТЕ V1.5+

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

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

    • 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, вот ссылочка
    • Также появилось приложение для iOS, ссылочка вот
    • В приложении можно настроить параметры текущего эффекта или сменить эффект на другой. После смены эффекта или изменения его параметров настройки сохраняются в энергонезависимую память через 30 секунд. При смене эффекта настройки сразу же сохраняются.
    • В приложении можно настроить 7 будильников на каждый день недели. При открытии окна будильников текущие параметры будильников подгружаются из лампы. После изменения состояния будильника или его времени настройки сразу же сохраняются в энергонезависимую память, т.е. лампе не страшна перезагрузка.
    • Логика работы рассвета такая: свет плавно включается за указанное время до будильника, разгорается до максимума ко времени будильника, и горит так ещё DAWN_TIMEOUT минут, затем отключается. Прервать рассвет можно кликом по кнопке на корпусе.

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

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

    Общая информация

    “Официальная” прошивка проекта, описание возможностей есть в самом начале этой страницы

    Версия 1.5

    • Исправлено непереключение кнопкой с первого на последний режимы
    • Добавлена настройка для отключения кнопки (для корректной работы схемы без кнопки)
    • Убран статический IP для локального режима (вызывал проблемы)
    • Добавлена возможность сброса настроек WiFi удержанием кнопки при включении лампы (

    7 секунд)

  • Добавлен вывод IP адреса на лампу по пятикратному нажатию на кнопку
  • Версия 1.5.1

    • Оптимизировано обращение к серверу времени (нет подвисаний при отсутствии интернета)
    • Оптимизация под пины NodeMCU
    • ВНИМАНИЕ! Изменения в выборе платы (Инструменты/Плата) для загрузки прошивки!
      • Для WEMOS выбираем платуLOLIN(WEMOS) D1 R2 & mini
      • Для NodeMCU выбираемNodeMCU 1.0 (ESP-12E Module)

    Версия 1.5.2

    • Исправлен незначительный баг с таймером
    • Исправлено падение по WDT при выводе IP
    • Исправлен баг с переназначением времени будильника
    • Исправлено переключение с первого на последний режимы
    • Приложение автоматически получает настройки с кнопки
    • Бегущая строка с текущим временем во время рассвета

    Версия 1.5.3

    • Увеличена плавность рассвета
    • Поправлен баг с отображением времени рассвета

    Версия 1.5.4:

    • Поправлены глюки во время рассвета

    Версия 1.5.5:

    • Поправлены ещё глюки во время рассвета

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

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

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

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

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

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

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

    Как узнать IP лампы?

    • Подключите плату к компьютеру, откройте монитор порта, перезагрузите плату (кнопка RST), адрес будет выведен в монитор
    • В версии прошивки от AlexGyver 1.5 и выше можно вывести IP адрес лампы на матрицу (пробегает строка с адресом), кликнув 5 раз по кнопке лампы.

    Сброс настроек WiFi

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

    • Подайте питание
    • Зажмите кнопку (убедитесь, что кнопка активировалась)
    • Подождите

    7 секунд

  • Настройки сброшены!
  • Работа с приложением

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

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

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

    GyverLamp2 – версия лампы v2 от AlexGyver: прошивка написана с нуля с учётом всех косяков первой версии. Полностью переосмыслено и упрощено подключение, абсолютно все настройки делаются со смартфона, куча новых режимов и возможностей, OTA обновление, стабильная работа и многое другое!

    • Вся информация по данной прошивке сейчас находится в группе ВКонтакте.
    • Проект расположен на GitHub

    Отличия от первой версии:

    • Возможность объединять устройства в группы с синхронизированными эффектами и их автоматическим переключением
    • Возможность создать свой список режимов для каждой группы устройств
    • Конструктор режимов, позволяющий получить несколько сотен уникальных эффектов
    • Минимум настроек в прошивке, всё настраивается из приложения
    • Гибкие настройки сети, позволяющие на лету менять точки подключения, адресацию и роли
    • Светомузыка – реакция на звук может быть наложена на любой эффект несколькими способами
    • Адаптивная яркость благодаря датчику освещённости
    • Режим работы по расписанию и таймер выключения для группы устройств
    • Мультиязычное приложение со встроенными инструкциями и подсказками
    • Простая и удобная загрузка прошивки (скомпилированный файл), прошивка возможна даже со смартфона!
    • Обновление прошивки «по воздуху» из приложения (требуется подключение к Интернет)
    • Схема как у первой версии, перепаивать электронику не нужно (без учёта микрофона и датчика освещённости)
    • Автоматическое определение типа кнопки
    • Устройство может работать без кнопки, все важные настройки можно сделать с приложения
    • Работа в локальной сети роутера (все устройства подключаются к роутеру)
    • Работа в локальной сети одной лампы (все устройства подключаются к одной лампе)
    • Устройства подключаются к Интернету через роутер и запрашивают текущее время
    • Работа по расписанию: час включения и час выключения
    • Таймер выключения
    • Будильник-рассвет на каждый день недели
    • GyverLamp2 может работать как с лентами, так и с матрицами различной конструкции
    • Объединение устройств в группы с индивидуальным набором настроек и режимов
    • Роли Master и Slave: состояние и яркость Slave устройств подчиняется Master устройству при ручном управлении
    • Каждой группе может быть задан свой набор режимов работы
    • Режим представляет собой эффект и его настройки (сам эффект, реакция на звук, яркость, скорость и т.д.)
    • Ручное переключение режимов кнопкой или из приложения (для всех устройств в группе)
    • Автоматическое по порядку с установленным периодом (для всех устройств в группе)
    • Автоматическое в случайном порядке с установленным периодом (для всех устройств в группе)
    • Режимы синхронизированы: все устройства группы показывают один и тот же режим в любой момент времени
    • 10 базовых эффектов, у каждого есть индивидуальные настройки
    • У некоторых эффектов возможен выбор цветовой палитры из 33 доступных
    • Эффекты синхронизированы у всех устройств в группе

    Реакция на звук:

    • При подключении микрофона все режимы могут работать как светомузыка
    • Реакция на общую громкость, отдельно низкие и отдельно высокие частоты
    • Реакция на звук может менять яркость режима, а также некоторые настройки эффекта
    • Есть возможность подключить датчик освещённости для автоматической настройки яркости лампы
    • Подключенная к роутеру группа может будить в установленное время плавным рассветом
    • Можно настроить время конкретные дни недели, а также яркость рассвета

    Общая информация

    Модифицированная прошивка от gunner47 с форума сообщества.

    • Постоянная ссылка на обновляемый пост в сообществе с описанием прошивки
    • Страница проекта на GitHub
    • Скачать архив актуальной версии
    • Прямая ссылка на загрузку .apk приложения LedLamp для Android. Подробнее о приложениях читайте ниже.

    Настройки

    Подключение:

    • В режиме локальной сети с роутером (по умолчанию)
      • Имя сети: LedLamp
      • Пароль: 31415926 (число Пи. Можно изменить в Constants.h)
      • IP адрес для приложения: роутер выдаёт автоматически, в приложении нажмите “найти лампу”
    • В режиме точки доступа (связь напрямую со смартфоном):
      • Имя сети: LedLamp (можно изменить в Constants.h)
      • Пароль: 31415926 (число Пи. Можно изменить в Constants.h)
      • IP адрес для приложения: 192.168.4.1

    Управление с кнопки:

    • Одиночный клик: включение/выключение
    • Двойной клик: следующий эффект лампы
    • Тройной клик: предыдущий эффект лампы
    • Два четверных клика: режим обновления прошивки по воздуху (ожидание второго четверного клика – 30 секунд; ожидание прошивки после двух четверных кликов – 5 минут)
    • Пятикратный клик: вывод IP бегущей строкой
    • Шестикратный клик: вывод текущего времени бегущей строкой, если время было синхронизировано
    • Семикратный клик: переключение рабочего режима лампы (ESP_MODE 0 -> 1 и 1 -> 0), сохранение в энергонезависимую память и рестарт
    • Удерживание кнопки: изменение яркости от меньшей к большей; при повторном удерживании – от большей к меньшей
    • Одиночный клик + удерживание кнопки: изменение скорости от меньшей к большей; при повторном клике + удерживании – от большей к меньшей
    • Двойной клик + удерживание кнопки: изменение масштаба от меньшего к большему; при повторном двойном клике + удерживании – от большего к меньшему
    • Удержание кнопки при запуске: сброс настроек WiFi (если активна настройка ESP_RESET_ON_START)

    Настройки в файле Constants.h:

    • ESP_USE_BUTTON: если лампа собрана без физической кнопки, нужно закомментировать или удалить строку, иначе будут фантомные срабатывания кнопки, увеличение яркости и т.д.
    • ESP_RESET_ON_START: true – при старте с зажатой кнопкой все хранимые настройки стираются, false (по умолчанию) – не стираются
    • ESP_CONF_TIMEOUT: время ожидания ввода имени WiFi сети и её пароля при первом старте в секундах; если истекло – лампа меняет рабочий режим на ESP_MODE = 0 (точка доступа), сохраняет его и перезагружается; до принудительного переключения семикратным кликом будет работать в ESP_MODE = 0
    • MOSFET_PIN: номер пина esp модуля для подключения MOSFET транзистора, который отключает питание матрицы во время, когда лампа/будильник/вывод времени выключены; может быть использован для экономии энергии, если лампа питается от аккумуляторов
    • MOSFET_LEVEL: уровень сигнала для MOSFET транзистора, при котором на матрицу подаётся питание, по умолчанию HIGH
    • ALARM_PIN: номер пина esp модуля, на который подаётся сигнал во время срабатывания рассвета + будильника (может быть использован для подключения проигрывателя и т.д.)
    • ALARM_LEVEL: уровень сигнала, который выводится при срабатывании рассвета + будильника, по умолчанию HIGH
    • AP_PASS: пароль точки доступа для рабочего режима ESP_MODE = 0 И ПАРОЛЬ ДЛЯ ОБНОВЛЕНИЯ ПРОШИВКИ ПО ВОЗДУХУ
    • SUMMER_WINTER_TIME: для тех, кому нужен переход на зимнее/летнее время – оставить строку, остальным – закомментировать или удалить
    • LOCAL_OFFSET: смещение от начального меридиана в минутах (часовой пояс), ТОЛЬКО ДЛЯ ТЕХ, У КОГО НЕТ ПЕРЕХОДА НА ЗИМНЕЕ/ЛЕТНЕЕ ВРЕМЯ
    • SUMMER_OFFSET: смещение от начального меридиана в минутах (часовой пояс) для летнего времени, ТОЛЬКО ДЛЯ ТЕХ, У КОГО ЕСТЬ ПЕРЕХОД НА ЗИМНЕЕ/ЛЕТНЕЕ ВРЕМЯ
    • WINTER_OFFSET: смещение от начального меридиана в минутах (часовой пояс) для зимнего времени, ТОЛЬКО ДЛЯ ТЕХ, У КОГО ЕСТЬ ПЕРЕХОД НА ЗИМНЕЕ/ЛЕТНЕЕ ВРЕМЯ
    • PRINT_TIME: вывод текущего времени бегущей строкой по расписанию (если время было синхронизировано): 0U – не выводить время бегущей строкой; 1U – вывод времени каждый час; 2U – каждый час + каждые 30 минут; 3U – каждый час + каждые 15 минут; 4U – каждый час + каждые 10 минут; 5U – каждый час + каждые 5 минут; 6U – каждый час + каждую минуту
    • NIGHT_HOURS_START: начало действия “ночного времени” (в минутах от начала суток, 1380U = 23:00), текущее время бегущей строкой будет выводиться с яркостью NIGHT_HOURS_BRIGHTNESS
    • NIGHT_HOURS_STOP: конец действия “ночного времени” (в минутах от начала суток, 479U = 7:59)
    • DAY_HOURS_BRIGHTNESS: яркость для вывода текущего времени бегущей строкой днём; если -1, будет использована яркость текущего эффекта (она известна, даже когда матрица выключена), [0..255]
    • NIGHT_HOURS_BRIGHTNESS: яркость для вывода текущего времени бегущей строкой ночью; если -1, будет использована яркость текущего эффекта (она известна, даже когда матрица выключена), [0..255]
    • * константы DAY_HOURS_BRIGHTNESS и NIGHT_HOURS_BRIGHTNESS используются только, когда матрица выключена, иначе будет использована яркость текущего эффекта
    • USE_MQTT: true – используется управление по mqtt, false – нет, по умолчанию false; команды для mqtt подробно расписаны в MqttManager.h в комментариях, управление из приложения и по mqtt унифицировано

    Основные изменения

    • Полный список изменений смотри в посте автора в сообществе
    • Более стабильная работа (исправлены ошибки, приводящие к циклической перезагрузке, к частым подтормаживаниям без доступа к интернету, к самопроизвольному изменению яркости в сборках без кнопки; исправлено выключение будильника, если он сработал при изначально выключенной лампе).
    • Разработано новое android приложение. Умеет сканировать сеть и искать лампы. Умеет запоминать несколько ламп и переключаться между ними. Позволяет более точно выставить все параметры. Раздел Избранные эффекты циклически переключает понравившиеся режимы по статическому/случайному таймеру.
    • Добавлено два новых эффекта: Светлячки со шлейфами и Белый свет.
    • Обновление прошивки по воздуху. (отдельная инструкция) Актуально для тех, кто уже собрал лампу, но всё ещё экспериментирует с прошивкой.
    • Включение (подача питания или перезагрузка модуля) при зажатой кнопке приводит к стиранию запомненных настроек WiFi сети.
    • При переносе лампы в новую WiFi сеть (при недоступности ранее запомненной) лампа разворачивает WiFi точку доступа для ввода имени и пароля новой WiFi сети. Не нужна перепрошивка, если не захардкожен статический IP.
    • В гитхаб репозитории выложены файлы прошивки, android приложение и файл thunkable проекта для желающих всё настроить/переделать под себя.

    Приложение

    Для прошивки от gunner47 используется отдельное приложение, с прошивкой от AlexGyver оно несовместимо!

    • Для Android: установочный .apk файл есть в архиве с проектом в папке Android, там же есть исходник (файл .aia) для Thunkable. Скачайте и запустите .apk файл из файлового менеджера смартфона.
      • Прямая ссылка на скачивание .apk файла актуальной версии.
    • Для iOS: юзер Stmf сделал приложение Arduino Lamp под iOS, скачать можно из App Store

    Общая информация

    Модифицированная прошивка с форума сообщества.

    • Постоянная ссылка на обновляемый пост в сообществе с описанием прошивки
    • Ссылка на загрузку есть в тексте поста!

    Изменения по сравнению с 1.4

    – Исправлен баг в условии процедуры вызова эффектов (у двух эффектов регулятор скорость не работал)
    – Инвертирована регулировка Скорости у всех эффектов, где она работала задом наперёд
    – Из всех эффектов убраны обращения к их порядковым номерам. Теперь любой эффект можно устанавливать на любое место (кроме номеров с 7 по 15), а также делать копии эффектов
    – Переработано распределение флеш-памяти EepromManager.h Теперь можно добавлять новые эффекты и делать копии (копии – для демонстрации одного эффекта на разных настройках).
    – В библиотеке FastLED исправлены коэффициенты расчёта потребления тока
    – Эффект Огонь заменён на “Ламповый огонь”, при максимальном Масштабе он же будет эффект Белый огонь
    – Эффект Белый огонь заменён на эффект Водопад, при максимальном Масштабе цвет воды будет белым
    – Внесены исправления эффектов Пейнтбол и Радуга диагональная от @Palpalych (выставляйте Скорость побольше, чтобы выглядело хорошо)
    – К эффекту Цвет добавлен эффект Бассейн (при максимальной Скорости блики воды исчезают, работает эффект Цвет)
    – К эффекту Смена цвета добавлен эффект Пульс (при минимальном Масштабе будет работать эффект Смена цвета)
    – Внесены исправления эффектов Метель и Звездопад от @Rampart
    – У эффекта Матрица изменена цветовая палитра и алгоритм работы (Нестыдная Матрица)
    – Эффект Светлячки со шлейфом заменён на эффект Кометы (в коде оставлены старый эффект, а также дополнительный Кометы мини, но они не подключены)
    – С прошивкой в архиве поставляется 2 приложения. Стандартное может работать только с 26 эффектами. При увеличении количества эффектов будет работать только приложение от @Koteyka
    – В архив с прошивкой добавлен файл с инструкцией в формате книжки. Правда, там уже устарели все ссылки.
    – Добавлен обработчик команды “GBR” для изменения яркости всех эффектов сразу без сохранения в энергонезависимую память. Приложение должно поддерживать данную функцию.
    – Добавлен обработчик команды “LIST” для отправки в приложение количества и реестра установленных эффектов. Приложение должно поддерживать данную функцию.

    Общая информация

    Модифицированная прошивка с форума сообщества.

    • Постоянная ссылка на обновляемый пост в сообществе с описанием прошивки
    • Ссылка на загрузку есть в тексте поста!
    • Работает с приложением от koteyka

    Список эффектов

    1. Белый свет
    2. Цвет
    3. Безумие
    4. Облака
    5. Лава
    6. Плазма
    7. Радуга 3D
    8. Павлин
    9. Зебра
    10. Лес
    11. Океан
    12. Мячики – Скорость на 255
    13. Белые мячики
    14. Мячики со шлейфом
    15. Спирали
    16. Призмата
    17. Стая
    18. Стая и хищник
    19. Синусоид
    20. Метаболз
    21. Огонь – Оттенок на 1
    22. Белый огонь – Оттенок на 100
    23. Голубой огонь – Оттенок на 55
    24. Зелёный огонь – Оттенок на 37
    25. Вихри пламени – Оттенок на 1
    26. Разноцветные вихри
    27. Матрица
    28. Водопад – Оттенок на 63
    29. Белый водопад – Оттенок на 100
    30. Водопад 4 в 1
    31. Бассейн – Оттенок на 63
    32. Медленный пульс – Масштаб на 6
    33. Быстрый пульс – Масштаб на 80
    34. Радужный пульс – Масштаб на 30
    35. Белый пульс – Масштаб на 11
    36. Комета
    37. Белая комета – Масштаб на 100
    38. Одноцветная комета
    39. Пульсирующая комета
    40. Две кометы
    41. Три кометы
    42. Парящий огонь
    43. Верховой огонь
    44. Радужный змей
    45. Конфетти
    46. Радуга вертикальная
    47. Радуга горизонтальная
    48. Радуга диагональная
    49. Волны
    50. Снегопад
    51. Цветной дождь
    52. Метель
    53. Звездопад
    54. Светлячки
    55. Светлячки со шлейфом
    56. Пейнтбол – Скорость на 240
    57. Блуждающий кубик
    58. Смена цвета
    59. Бегущая строка

    Общая информация

    Модифицированное приложение с форума сообщества.

    • Постоянная ссылка на обновляемый пост в сообществе с описанием прошивки
    • Работает с прошивкой от gunner47 и некоторыми другими (читай пост)
    • Ссылка на загрузку есть в тексте поста!

    Общая информация

    Модифицированная прошивка от Whilser c форума сообщества.

    Основные изменения

    • Поддержка работы с MQTT сервером
    • Нативная интеграция с Home Assistant методом Discovery
    • Интеграция с Home Assistant, Apple Home Kit, Алисой
    • Возможность ОТА обновления через сетевой порт с интересным эффектом “матрица” во время обновления
    • Возможность выбирать цвет из палитры Home Assistant либо через MQTT брокер
    • Автоматическое обнаружение подключенной сенсорной кнопки и корректная работа без нее
    • Корректная работа в случае недоступности MQTT брокера (адаптивное подключение)
    • Возможность настроить работу как с MQTT брокером, так и без него без повторной компиляции прошивки.
    • Добавлен веб интерфейс управления. Для управления нужно перейти по адресу http://ESP-ID.local/. Вместо ID нужно вписать ID чипа ESP8266. Он отображается в веб интерфейсе при начальной настройке
    • Управление по http – для интеграции с Яндекс Алисой через Домовенка Кузю

    Инструкции

    Все инструкции смотри на странице проекта на портале sprutAI

    Общая информация

    Модифицированная прошивка от lakec c форума сообщества.

    Основные изменения

    Веб-интерфейс для управления:

    • Изменение режимов, скорости, яркости, масштаба эффектов
    • Что не реализовано: выключение лампы, функция рассвет

    Инструкции

    • Качаем библиотеку arduinoWebSockets версии 2.1.1
    • Качаем библиотеку ArduinoJson версии 5.13.5
    • Читаем как установить ESP8266 Sketch Data Upload, если он у вас не установлен (очень внимательно читать подзаголовок “Загрузка файлов в файловую систему”).
    • После установки ESP8266 Sketch Data Upload, качаем архив из этого сообщения и распаковываем в папку с вашими скетчами Arduino.
    • Редактируем файл config.json из папки GyverLamp_v2.0/data. Вместо dd-wrt пишем ваше название точки доступа. Пароль qwerty12345 также меняете на пароль от своей точки доступа.
    • Открываем файл GyverLamp_v2.0 в arduino ide. Идем в меню инструменты – выбираем flash size: 4M (3M SPIFFS).
      Загружаем скетч на еспшку.
    • Идем в меню инструменты – выбираем ESP8266 Sketch Data Upload и ждем пока все файлы загрузятся.
    • Открываем терминал и перезагружаем устройство.
    • Ищем строку что то вроде этой Connect to http://gyverlamp.local or http://192.168.1.57 HTTP server started
    • В браузере идем по адресу gyverlamp.local и управляем устройством в свое удовольствие
    • Если адрес gyverlamp.local не работает, то переходим по 192.168.1.57 или тому адресу, что высветится у вас в терминале.
    • Имейте ввиду, страница грузится не быстро, во время загрузки страницы индикация подтормаживает, но это не критично.

    Вот тут собраны все прошивки для Arduino, т.е. именно для Arduino (без WiFi), не esp8266. Все описания лежат по ссылке.

    Общая информация

    Модифицированная прошивка от kDn c форума сообщества.

    • Ссылка на пост в сообществе (обновления смотрите там)

    Основные возможности прошивки:

    • Повторяет все возможности других прошивок по управлению эффектами
    • Включение, выключение, выбор эффекта, смена яркости/скорости/масштаба
    • DEMO-режим
    • Управление по MQTT , подробную инструкцию по установке и настройке можете почитать тут или посмотреть видео установки брокера
    • Отправка текстовых сообщений на лампу, в том числе специальных %IP, %TM
    • Настройка и вывод времени, само время синхронизуется по http/ntp или может задаваться вручную
    • Периодический вывод времени и/или новогоднего отсчета
    • OTA в двух вариантах, при обновлении файловой системы, чтобы не терять настройки можете их сохранить и поместить в папку /data .
    • Управление кнопкой, индикаторы управления
    • Добавить дополнительный ползунок можно так : [<‘R’:’127′>], делается это однократно и на текущий момент работает для дыма и мерцания
    • Подключение микрофона MAX9814 элементарное: +3.3В с ESP на Vdd микрофона, землю (GND) на землю, сигнальный (Out) микрофона на пин А0. На этом все
    • Возможно менять состояние произвольного пина/пинов (HIGH/LOW/TOGGLE) по событию. Строка настройки вида: [<‘pin’:1,’act’:’H’>], допустимые варианты ‘H’==HIGH, ‘L’==LOW, ‘T’==TOGGLE, также можно записать список, к примеруЖ [<‘pin’:1,’act’:’H’>,<‘pin’:2,’act’:’L’>,<‘pin’:3,’act’:’T’>] – 1 установит в HIGH, 2 в LOW, 3 – переключит.

    Доп. возможности прошивки:

    • Есть возможность ставить множественные будильники и прочие автоматизации
    • Добавлен микрофон (MAX9814) и цветомузыка на основе амплитуды/частоты. Добавлен эффект “Частотный анализатор”
    • Поддержка http-команд
    • Пользовательский интерфейс всегда актуален и синхронизирован с прошивкой, т.к. является частью прошивки
    • Если будет написано приложение под андроид/иос/… то оно тоже будет синхронизировано, т.к. интерфейс конструируется динамически

    По поводу настройки WiFi – фреймворк позволяет переключать режим AP STA по удержанию кнопки “Flash” NodeMsu в течение 5 секунд. Если ее удерживать в течение 10 секунд, то произойдет сброс настроек. Если лампа не может подключиться к роутеру, то будет поднята AP c пустым паролем, а дальше после перехода по адресу http://192.168.4.1 вы сможете сконфирурировать WiFi, либо же можно дополнительно прописать креденшеналы в функции
    parameters() файла interface.cpp . Если лампа подключилась к роутеру, то управлять ею можно по тому IP, что она получила от роутера.

    Общая информация

    Сильно переделанная прошивка от большого любителя матриц – vvip-68. Скачать и почитать можно у него на гитхабе: https://github.com/vvip-68/GyverPanelWiFi. Тут привожу частичное описание в качестве “завлекалочки” =)

    Описание проекта

    Этот проект основан на проекте “Крутая WiFi лампа на esp8266 своими руками” с расширением возможностей работы на неквадратных широких матрицах с размерами более 26×12.
    Основное назначение проекта – настенные экраны больших размеров или гирлянды на широкие балконы.
    Также пожходит с некоторыми ограничениями для матриц с размерами 16×16. Ограничение связаны с невозможностью отображения часов крупным шрифтом 5×7 для которого требуется матрица не менее 26 пикселей по ширине. Для матриц менее 26 колонок шириной в часах может использоваться только шрифт 3×5 для которого достаточно 15 колонок.

    Источник

    Adblock
    detector