IoT, ESP, NODE WiFi лампа-будильник. Обсуждение проекта

gunner47

Проходящий мимо
18.06.2019
184
189
43
Исправлена ошибка выключения будильника, если перед его срабатыванием был активен эффект "матрица" (или другой эффект, где задействовано мало светодиодов). Наблюдалось остаточное неправильное заполнение матрицы светодиодов.
Добавлено обновление по воздуху. Работает только в режиме WiFi клиента и при подключенной кнопке (потому что режим прошивки активируется кнопкой). Нужно для тех, кто собрал уже лампу, поставил подальше от компа, но всё ещё часто её перепрошивает. Кому не нужно, можно не использовать или отключить фичу, закомментировав строку "#define OTA".
Инструкция по использованию:
1. Обновите библиотеку GyverButton на версию из этого архива. Скопируйте поверх прежней в c:\Program Files (x86)\Arduino\libraries\GyverButton или туда, где она у вас установлена. В эту версию добавлена одна функция обработки четверного нажатия.
2. Для перехода в режим обновления нужно дважды сделать четверной тап по кнопке: 4 последовательных касания, пауза от 1 до 30 секунд, потом ещё 4 последовательных касания. Если что-то пошло не так, через 30 секунд esp вернётся в исходное состояние. Если всё пошло так, то esp в течение 5 минут будет ждать перепрошивку. Потом перезагрузится (даже если не дождётся, просто чтобы выйти в основной режим).
3. Перепрошивка производится из Arduino IDE. В меню Инструменты - Порт появится дополнительный элемент "Сетевые порты" и под ним что-то типа "GyverLamp-xxxxxxx at 192.168.0.2". Нужно выбрать этот сетевой порт вместо ранее выбранного COM<цифра>. Если сетеврой порт не появился, перезапустите Arduino IDE, должен появиться. Компьютер с Arduino IDE должен быть в той же сети, куда подключается esp'шка. При обновлении будет запрошен пароль. Нужно ввести то, что опредлено в константе AP_PASS.
4. Во время ожидания прошивки лампа работает как обычно, ей можно управлять, менять режимы и т.д.
5. Подключены дополнительные библиотеки ArduinoOTA и ESP8266mDNS, но отдельно их устанавливать не нужно, они устанавливаются при установке поддержки платы esp8266.
6. При заливке другой прошивки, функция обновления по воздуху исчезнет (если другая прошивка её не поддерживает).
 

Вложения

Последнее редактирование:
21.06.2019
8
2
3
40
Доброго. Почему то у всех на скринах в среде arduino ide выставлена частота процессора esp8266, при прошивке 80 МГц. У меня в 3 д принтере, esp8266 прошита с частотой процессора 160 Мгц и не плохо себя чувствует. Я пока ещё собираюсь повторить проект, но может кто уже пробовал так, работает ли? Мне кажется увеличение частоты процессора в 2 раза, это хороший прирост производительности.
 
12.07.2019
6
1
3
Доброго. Почему то у всех на скринах в среде arduino ide выставлена частота процессора esp8266, при прошивке 80 МГц. У меня в 3 д принтере, esp8266 прошита с частотой процессора 160 Мгц и не плохо себя чувствует. Я пока ещё собираюсь повторить проект, но может кто уже пробовал так, работает ли? Мне кажется увеличение частоты процессора в 2 раза, это хороший прирост производительности.
Привет, я прошивал на 160 , все ОК
 
12.07.2019
6
1
3
Исправлена ошибка выключения будильника, если перед его срабатыванием был активен эффект "матрица" (или другой эффект, где задействовано мало светодиодов). Наблюдалось остаточное неправильное заполнение матрицы светодиодов.
Добавлено обновление по воздуху. Работает только в режиме WiFi клиента и при подключенной кнопке (потому что режим прошивки активируется кнопкой). Нужно для тех, кто собрал уже лампу, поставил подальше от компа, но всё ещё часто её перепрошивает. Кому не нужно, можно не использовать или отключить фичу, закомментировав строку "#define OTA".
Инструкция по использованию:
1. Обновите библиотеку GyverButton на версию из этого архива. Скопируйте поверх прежней в c:\Program Files (x86)\Arduino\libraries\GyverButton или туда, где она у вас установлена. В эту версию добавлена одна функция обработки четверного нажатия.
2. Для перехода в режим обновления нужно дважды сделать четверной тап по кнопке: 4 последовательных касания, пауза от 1 до 30 секунд, потом ещё 4 последовательных касания. Если что-то пошло не так, через 30 секунд esp вернётся в исходное состояние. Если всё пошло так, то esp в течение 5 минут будет ждать перепрошивку. Потом перезагрузится (даже если не дождётся, просто чтобы выйти в основной режим).
3. Перепрошивка производится из Arduino IDE. В меню Инструменты - Порт появится дополнительный элемент "Сетевые порты" и под ним что-то типа "GyverLamp-xxxxxxx at 192.168.0.2". Нужно выбрать этот сетевой порт вместо ранее выбранного COM<цифра>. Если сетеврой порт не появился, перезапустите Arduino IDE, должен появиться. Компьютер с Arduino IDE должен быть в той же сети, куда подключается esp'шка.
4. Во время ожидания прошивки лампа работает как обычно, ей можно управлять, менять режимы и т.д.
5. Подключены дополнительные библиотеки ArduinoOTA и ESP8266mDNS, но отдельно их устанавливать не нужно, они устанавливаются при установке поддержки платы esp8266.
6. При заливке другой прошивки, функция обновления по воздуху исчезнет (если другая прошивка её не поддерживает).

Это замечательно! А что с белым светом? Можно ли лампу включить просто как обычный светильник?
 
Это замечательно! А что с белым светом? Можно ли лампу включить просто как обычный светильник?
Делайте себе матрицу из ленты SK6812-RGBW . Это улучшенный вариант ленты WS2812B, в неё добавлен 4-ый, белый светодиод. Из этой ленты легко реализовать белый режим светильника. Тем более это будет более экономично, чем включать сразу три RGB светодиода.
 
05.07.2019
33
26
18
Это замечательно! А что с белым светом? Можно ли лампу включить просто как обычный светильник?
Можно добавить функцию
Код:
void whitecolor() {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = CHSV(0, 0, 255);
  }
}
Но яркость не задирать, будет греться матрица и бп.
 

gunner47

Проходящий мимо
18.06.2019
184
189
43
Это замечательно! А что с белым светом? Можно ли лампу включить просто как обычный светильник?
Технически матрица на это способна, белым светом светит будильник перед отключением. Вопрос в том, как включить белый свет? И что при этом будет показывать android приложение? Были бы его иходники, тогда без проблем.
 
28.06.2019
5
11
3
И что при этом будет показывать android приложение? Были бы его иходники, тогда без проблем.
В целом приложение - просто оболочка для UDP команд, отправляешь на IP: PORT в ASCII и парсишь ответ, если нужно обновлять интерфейс. Вот основные из них:

BRI1 (1-255 яркость)
SPD1 (1-255 скорость)
SCA1 (1-100 масштаб)
EFF0 (0-17 эффект)
P_OFF (выключить)
P_ON (включить)
DAWN1 (1-9 рассвет за (5,10,15,20,25,30,40,50,60))
ALM_SET1 ON (1-7 ON-OFF) включить выключить один из будильников
ALM_SET1 810 (часы: floor(810/60), минуты: 810 - часы * минуты, 810 = 13:30)
GET получить настройки (режим, яркость, скорость, масштаб, флаг включения)
DEB получаем OK + текущее время. Для проверки доступности.
 
23.05.2019
9
1
3
Проект отличный, игрушка классная! Собрал за вечер. Все строго по видеоролику, прокручивая части по несколько раз. С плафонами в июне был напряг, но следил по интернету за поступлениями в Леруа и купил в июле. Единственный затык был с роутером, был включен режим "Изоляция клиентов". Но выключив данный режим, лампа стала управляться со смартфона.
 
Последнее редактирование:
02.11.2018
3
2
3
Уважаемые знатоки, есть вопрос.
Версия GyverLamp была урезана для Arduino Nano с управлением кнопкой. Цветовая гамма установлена GRB. Все эффекты работают как надо, вот только эффект огня зеленого цвета (если ставить RGB, то скорее розовый, чем красный). В каком месте кода нужно внести коррекцию?
 

gunner47

Проходящий мимо
18.06.2019
184
189
43
Уважаемые знатоки, есть вопрос.
Версия GyverLamp была урезана для Arduino Nano с управлением кнопкой. Цветовая гамма установлена GRB. Все эффекты работают как надо, вот только эффект огня зеленого цвета (если ставить RGB, то скорее розовый, чем красный). В каком месте кода нужно внести коррекцию?
За цвет огня отвечает scale (масштаб).Непонятно, как вы управляете масштабом с помощью кнопки.
Если никак, то можно захардкодить значения для естественного цвета огня, это scale = 0. Для этого в файле effects.ino найдите:
modes[1].scale * 2.5 + pgm_read_byte(&(hueMask[y][newX])),
и замените на:
pgm_read_byte(&(hueMask[y][newX])),
и ещё чуть ниже:
modes[1].scale * 2.5 + pgm_read_byte(&(hueMask[0][newX])),
на:
pgm_read_byte(&(hueMask[0][newX])),
 
02.11.2018
3
2
3
Непонятно, как вы управляете масштабом с помощью кнопки.
А я и не управляю) это ночник сыну будет, поэтому и нужно пофиксить цвет.
Спасибо за информацию, как исправлю - отпишу. Ну и как ночник сделаю выложу в соответствующей теме.
 
12.07.2019
6
1
3
Делайте себе матрицу из ленты SK6812-RGBW . Это улучшенный вариант ленты WS2812B, в неё добавлен 4-ый, белый светодиод. Из этой ленты легко реализовать белый режим светильника. Тем более это будет более экономично, чем включать сразу три RGB светодиода.
Согласен!
 
05.03.2019
22
10
3
Привет! А можешь выложить часть кода, которую ты добавил? Я бы в свою сборную солянку пихнул, а то программировать не хватает духу выучиться, а копи/пейст фроде норм.
Да там кода-то...
###В начало###
#define ResWiFiPin 5

###В секции setup() ###
pinMode(ResWiFiPin, INPUT_PULLUP);
if(digitalRead(ResWiFiPin) == LOW){wifiManager.resetSettings();}
 
12.07.2019
6
0
1
А я и не управляю) это ночник сыну будет, поэтому и нужно пофиксить цвет.
Спасибо за информацию, как исправлю - отпишу. Ну и как ночник сделаю выложу в соответствующей теме.
Я этот вопрос задавал когда управлял лампой только с кнопки. Потом подключил приложение и там масштабом меняется цвет пламени.
 
12.07.2019
6
1
3
Исправлена ошибка выключения будильника, если перед его срабатыванием был активен эффект "матрица" (или другой эффект, где задействовано мало светодиодов). Наблюдалось остаточное неправильное заполнение матрицы светодиодов.
Добавлено обновление по воздуху. Работает только в режиме WiFi клиента и при подключенной кнопке (потому что режим прошивки активируется кнопкой). Нужно для тех, кто собрал уже лампу, поставил подальше от компа, но всё ещё часто её перепрошивает. Кому не нужно, можно не использовать или отключить фичу, закомментировав строку "#define OTA".
Инструкция по использованию:
1. Обновите библиотеку GyverButton на версию из этого архива. Скопируйте поверх прежней в c:\Program Files (x86)\Arduino\libraries\GyverButton или туда, где она у вас установлена. В эту версию добавлена одна функция обработки четверного нажатия.
2. Для перехода в режим обновления нужно дважды сделать четверной тап по кнопке: 4 последовательных касания, пауза от 1 до 30 секунд, потом ещё 4 последовательных касания. Если что-то пошло не так, через 30 секунд esp вернётся в исходное состояние. Если всё пошло так, то esp в течение 5 минут будет ждать перепрошивку. Потом перезагрузится (даже если не дождётся, просто чтобы выйти в основной режим).
3. Перепрошивка производится из Arduino IDE. В меню Инструменты - Порт появится дополнительный элемент "Сетевые порты" и под ним что-то типа "GyverLamp-xxxxxxx at 192.168.0.2". Нужно выбрать этот сетевой порт вместо ранее выбранного COM<цифра>. Если сетеврой порт не появился, перезапустите Arduino IDE, должен появиться. Компьютер с Arduino IDE должен быть в той же сети, куда подключается esp'шка.
4. Во время ожидания прошивки лампа работает как обычно, ей можно управлять, менять режимы и т.д.
5. Подключены дополнительные библиотеки ArduinoOTA и ESP8266mDNS, но отдельно их устанавливать не нужно, они устанавливаются при установке поддержки платы esp8266.
6. При заливке другой прошивки, функция обновления по воздуху исчезнет (если другая прошивка её не поддерживает).
Здорово, сейчас порпробую! А как менять настройки если я поменяю роутер? Насколько я помню они записаны в файле конфига. Перезаливать его? Или есть возможность указать в скетче?
 

gunner47

Проходящий мимо
18.06.2019
184
189
43
Здорово, сейчас порпробую! А как менять настройки если я поменяю роутер? Насколько я помню они записаны в файле конфига. Перезаливать его? Или есть возможность указать в скетче?
Если лампа не сможет подключиться к WiFi сети, она поднимет WiFi точку доступа. Подключитесь к ней с телефона, откройте браузер, вбейте http://192.168.4.1 (если не меняли в прошивке) и введите имя/пароль от новой WiFi сети. Лампа сохранит их, перезагрузится и подключится к указанной сети. Не нужно ничего перепрошивать, перезаливать и т.д. Лучше почитайте комментарии в коде, там написано это и многое другое.
 
12.07.2019
6
1
3
Если лампа не сможет подключиться к WiFi сети, она поднимет WiFi точку доступа. Подключитесь к ней с телефона, откройте браузер, вбейте http://192.168.4.1 (если не меняли в прошивке) и введите имя/пароль от новой WiFi сети. Лампа сохранит их, перезагрузится и подключится к указанной сети. Не нужно ничего перепрошивать, перезаливать и т.д. Лучше почитайте комментарии в коде, там написано это и многое другое.
Спасибо, да , все есть плохо читал.
 
23.05.2019
9
1
3
Доброго времени суток. Столкнулся с нехорошим эффектом: при отключении интернета от роутера, лампа через каждые 3 секунды начинает замирать на 1 секунду. Прошивка стандартная с гитхаба v 1.4. Проявляется на всех режимах. При восстановлении интернета, работа восстанавливается.