IT Академия Samsung – Практикум: Умное освещение # Практикум: Умное освещение Пришло время подвести итоги Кейса 4 – самостоятельно решить очередную задачу! ## Задача Прочитайте высказывание заказчика: > Я хочу, чтобы в нашем офисе автоматически менялось освещение согласно времени суток. > Это позволит нам экономить электричество и платить меньше. > Нужно, чтобы каждый сотрудник имел возможность отрегулировать освещение вручную: например, > задать новый оптимальный для себя при текущей освещенности уровень и сохранить этот параметр. <!-- > > В нашей компании сотрудники работают с гибким графиком, и свет горит с 8 до 21 часов. > Мы используем потолочные светильники "Армстронг", их энергопотребление 40 Вт. > Четверо сотрудников пользуются одним и тем же потолочным светильником, они могут договориться об устраивающем их всех уровне освещенности. > Всего у нас работает 200 сотрудников. > > Мы хотим получить первый прототип через две недели. /--> ## Техническое задание 1. Система должна иметь возможность работать в **ручном** и **автоматическом** режимах. 2. В ручном режиме должна быть возможность включить и отключить лампу, отрегулировать уровень света с помощью аппаратного пульта, расположенного на рабочем месте сотрудника. 3. В автоматическом режиме управление яркостью свечения лампы должно осуществляться при помощи ШИМ на основе значений (в диапазоне от 0 до 100) публикуемых в топике `iot_practice/<UserID>/lamp/value`, где `<UserID>` – идентификатор пользователя в учебной системе IT Академии Samsung. Частота ШИМ не должна вызывать дискомфорт пользователей. Подключение лампы должно осуществляться при помощи модуля транзисторных ключей [UMDK-6FET](https://github.com/unwireddevices/umdk-boards/blob/master/umdk-6fet.pdf). 4. Показания датчика освещенности публикуются на MQTT-сервере в топике `iot_practice/<UserID>/sensor/luminosity` ## Оборудование Для решения поставленной задачи необходимо создать систему из двух взаимодействующих устройств: - Пульт дистанционного управления, совмещенный с датчиком освещенности; - Управляемый светильник. Структурная схема системы приведена на рисунке: ![smart_light_struct](/assets/images/iot-academy/smart_light_struct.png) На этом рисунке обозначено: **МК**&nbsp;– микроконтроллер, **WiFi**&nbsp;– модуль WiFi, **Д**&nbsp;– датчик освещенности, **Кн**&nbsp;– кнопочная клавиатура, **ИП**&nbsp;– источник питания, **Кл**&nbsp;– ключ, **Л**&nbsp;– лампа (LED-лента). ### Пульт/датчик Для пульта дистанционного управления, совмещенного с датчиком освещенности понадобится: - радиомодуль UNWR с платой-адаптером UMDK-RF: ![ud-min3](/assets/images/iot-academy/ud-min3.png) - плата-адаптер модулей связи 804-Xbee: ![804-xbee](/assets/images/iot-academy/804-xbee.png) - модуль связи WiFi на базе ESP8266: ![xbee-wifi](/assets/images/iot-academy/xbee-wifi.png) - модуль кнопок UMDK-4BTN: ![umdk-4btn](/assets/images/iot-academy/umdk-4btn.png) - модуль датчика освещенности UMDK-LIT: ![umdk-lit](/assets/images/iot-academy/umdk-lit.png) ### Управляемый светильник Для светильника понадобится: - радиомодуль UNWR с платой-адаптером UMDK-RF: ![ud-min3](/assets/images/iot-academy/ud-min3.png) - плата-адаптер модулей связи 804-Xbee: ![804-xbee](/assets/images/iot-academy/804-xbee.png) - модуль связи WiFi на базе ESP8266: ![xbee-wifi](/assets/images/iot-academy/xbee-wifi.png) - модуль транзисторных ключей UMDK-6FET: ![umdk-6fet](/assets/images/iot-academy/umdk-6fet.png) - uнездо питания 2.1&nbsp;мм с клеммником: ![pwr_soc_21](/assets/images/iot-academy/pwr_soc_21.png) - импульсный блок питания 12&nbsp;В: ![power_dc](/assets/images/iot-academy/power_dc.png) - лента светодиодная 12&nbsp;В: ![led_strip](/assets/images/iot-academy/led_strip.png) - провод электромонтажный (4&nbsp;шт.): ![wires](/assets/images/iot-academy/wires.png) ### Дополнительное оборудование И, конечно, понадобится: - отвертка шлицевая 2&nbsp;мм (для организации подключений); - WiFi-точка доступа (роутер); - MQTT брокер. ## Порядок выполнения работы 1. Соберите систему, в соответствии с предложенной структурой. В итоге должно получиться что-то похожее (роутер и MQTT брокер не показаны): ![smart_light_full](/assets/images/iot-academy/smart_light_full.png) 2. Используя результаты [практикума](/iot/mqtt-mbed#task) доработайте прошивку для пульта дистанционного управления, чтобы он мог передавать все необходимые команды. 3. Доработайте код получившейся программы таким образом, чтобы пульт считывал [показания датчика освещенности](/iot/sensors#luminosity) и публиковал их на сервер лаборатории с периодом 1&nbsp;раз в секунду. 4. Загрузите прошивку в пульт/датчик. Протестируйте работоспособность используя любой доступный MQTT-клиент и [виртуальную лаапу](/iot/fake-lamp). 5. Возьмите за основу программы управляемого светильника код реализацию [И-закона управления](/iot/skynet#pid). 6. Подключите светодиодную ленту к выходу 26 модуля UMDK-6FET. Переведите переключатель 26 на этом модуле в состояние `on` (остальные – `off`). Разместите светодиодную ленту на расстояние примерно 7...10&nbsp;см от датчика освещенности (пульта/датчика). Определите по показаниям датчика освещенности максимальный уровень яркости, создаваемый LED-лентой. Оцените уровень естественного освещения при выключенной LED-ленте. Подберите коэффициент. 7. Добавьте в программу управления светодиодной лентой [подписку на MQTT-топики](/iot/mqtt-mbed#demo) и логические условия, позволяющие менять режим работы устройства и задавать желаемый уровень освещенности. 8. Enjoy! <div class="best"> Прочитайте [статью](https://habr.com/ru/company/croc/blog/178425/) о том, как адаптивное освещение офиса используется в компании [КРОК](https://www.croc.ru/). Также прочитайте комментарии к статье. Используя сведения из статьи и свои собственные догадки, подумайте, какие проблемы могут появиться при создании и эксплуатации такого рода системы. </div>