Skip to content

degorov/smart-lamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wi-Fi smart lamp built with ESP32 and MicroPython
Frontend app built with React and Material UI
Android app built with Capacitor and its Community HTTP Plugin

====================================================================================================

Добавлено в сентябре 2021 / Updated September 2021:

Из-за обновлений политики безопасности в Chrome 94, веб-версия приложения больше не работает
в этом браузере. Для Android в разделе Releases есть собранный apk-файл.

Due to security policy updates in Chrome 94, web app stopped working there.
Apk for Android is available in the Releases section.

Больше информации / more info here: https://developer.chrome.com/blog/private-network-access-update/

====================================================================================================

Sorry, app and documentation is only in Russian for now, but full sources are available anyway.

Начало работы

1) В папке /dev находится файл с прошивкой (.bin), его необходимо залить в контроллер светильника.
   Если используется Thonny, то можно воспользоваться скриптами erase.cmd / program.cmd

2) В корневую папку светильника нужно загрузить все файлы *.py из корневого каталога этого
   репозитория. Никакие другие папки загружать в светильник не нужно, все необходимые файлы
   конфигурации с начальными настройками код прошивки создаст при первом включении.

3) Для настройки светильника используется страничка по адресу http://lamp.degorov.com/
   Приложение хостится из ветки gh-pages этого же репозитория. Используется HTTP, а не HTTPS, потому
   что светильник работает по HTTP, а Mixed Content XHR запросы в браузерах запрещены. Приложение
   разрабатывается и проверяется в первую очередь на мобильных устройствах. Поддерживаются и
   тестируются браузеры iOS Safari 12+ и последние 2 версии Chrome. Приложение рекомендуется
   установить как PWA.

Загрузка, первоначальная настройка и сброс настроек:

1) По умолчанию светильник загружается в режиме точки доступа с именем сети "Smart-Lamp" без пароля.
   Сетевые настройки светильника по умолчанию: 192.168.4.1 / 255.255.255.0, DHCP в сети включен.

2) Чтобы сбросить все настройки и вернуть светильник в вид "из коробки", при включении держите
   нажатой кнопку на верхней части светильника до момента включения анимации радуги.

3) При загрузке на светильнике отображаются цветные кольца. Если загрузка прошла успешно, то весь
   светильник окрасится цветами радуги и радуга станет анимированной.

4) Если загрузка остановилась на жёлтом кольце, то настроенный светильник не смог подключиться
   к Wi-Fi. Попробуйте перезагрузить его ещё раз и/или проверить, что Wi-Fi сеть в помещении
   работает. Если был введён неправильный пароль или же настройки сети изменились, сбросьте
   настройки и настройте параметры Wi-Fi заново.

5) Если загрузка остановилась на голубом кольце, то настроенный светильник не смог получить время по
   NTP. Попробуйте перезагрузить его ещё раз и/или проверить, что из Wi-Fi сети, в которой находится
   светильник, доступен NTP сервер pool.ntp.org. В светильнике нет батарейки и время он получает
   по Wi-Fi, поэтому невозможность установки точного времени является критичной для его работы и
   загрузка светильника намеренно останавливается, если точное время получить не удалось. В режиме
   точки доступа (не настроенный светильник "из коробки") доступность NTP сервера не проверяется,
   время устанавливается в unix time, соответственно, в этом режиме будильник нормально не работает.

Управление:

1) Нажатие на кнопку в верхней части светильника переключает выбранный эффект и выключает рассвет.

2) Вращение колеса в верхней части светильника регулирует общую яркость светильника, которая
   применяется ко всем эффектам, кроме рассвета. Во время симуляции рассвета яркость светильника
   изменяется автоматически по алгоритму, в момент срабатывания будильника яркость максимальна.

3) Вращение колеса при нажатой кнопке регулирует параметр выбранного эффекта. Для некоторых
   эффектов полноценное управление возможно только через приложение, так как колесом можно
   регулировать только один параметр, а у некоторых эффектов их несколько.

Будильник:

1) Если выбраны дни повтора будильника, то будильник при включении в настройках будет срабатывать
   только в эти дни и не сработает в текущий или следующий день, если этот день недели не выбран в
   расписании. После срабатывания будильника, он автоматически будет переактивирован на следующий
   день согласно расписания. Если светильник будет перезагружен, то при следующей загрузке будильник
   останется включенным в настройках и сработает в указанное время в ближайший день из расписания.

2) Если дни для повтора не выбраны, то будильник при включении в настройках сработает в указанное
   время в текущих или следующих сутках. После срабатывания будильника, он будет деактивирован в
   настройках и больше срабатывать не будет, пока не будет активирован заново вручную. Если
   светильник будет перезагружен и будильник ещё не отработал, то он переактивируется на заданное
   время относительно момента загрузки светильника. Таким образом, не рекомендуется выключать
   светильник при установленном вручную будильнике до момента его срабатывания.

3) При выборе времени для активации будильника, светильник учитывает и период, необходимый для
   работы эффекта рассвета. Если момент начала рассвета уже прошёл, то будильник в этот день уже не
   сработает. Светильник не является звуковым будильником, который срабатывает в заданный момент,
   а рассчитан именно на симуляцию рассвета, поэтому описанное поведение не является ошибкой и
   выбрано намеренно.