Сделай с нами: умная подсветка!

Мы живем в век прогресса и высоких технологий. Уже сегодня в каждом доме есть компьютер, а также куча мобильных девайсов, таких как планшеты, смартфоны, нетбуки, трансформеры (нетбуки со съемным сенсорным дисплеем или планшеты с докстанциями) и так далее. Неудивительно, что уже сейчас у многих есть возможность выполнять управление светом через Wi-Fi. Более того, можно управлять не только светом, но и другими электроприборами. Подобные установки называются «Умный дом» и были известны уже с начала 2000-х, но получили распространение среди обычных пользователей только в наши дни.

В этой статье Вам будет представлена предельно бюджетная система управления электроприборами через Wi-Fi сеть. По сути данное устройство (далее будем его назвать просто "радиореле") представляет собой беспроводной модуль ESP8266 ESP-07 с подключенным к нему приемником на 315МГц (с аппаратным декодером пароля РТ2272) и 4-мя реле. Соответственно этому модуль может управлять 4-мя устройствами либо через радиоканал при помощи брелков, либо через домашнюю Wi-Fi сеть. При желании количество управляемых устройств можно увеличить либо за счет отказа от использования радиобрелков на 315МГц либо заменой модуля на ESP-12F или аналогичный с большим количеством выводов, или же использовать для расширения сдвиговые регистры 74НС595.

Фактически для меня (автора) это устройство является уже второй версией данной системы. Первой версией было радиореле на 4 канала с управлением посредством кнопок на плате или брелке. Вторая версия устройства понадобилась поскольку отсутствовала возможность проверки состояния радиореле из соседнего здания кроме как выйти во двор и проверить факт включения освещения. Таким образом радиореле подключенное к домашней сети решало две проблемы:

  1. Можно проверить состояние включения освещения без необходимости визуального контроля
  2. Управлять освещением стало возможно не только с помощью брелков, но и при помощи ПК или смартфона.

Что собственно требуется от данного устройства:

  1. Возможность включать/выключать освещение с помощью радио брелков с внешним приемником-декодером
  2. Возможность включать/выключать освещение с помощью WEB - интерфейса доступного прямо из локальной сети (БЕЗ использования внешних хостинг-ресурсов типа Blynk или др. ради успокоения собственной паранойи в целях безопасности)
В результате данных требований можно определиться с необходимыми компонентами:

  1. Контроллер ESP8266 ESP-07 или ESP-12 - 1 шт.
  2. Радиоприемник и брелки PT2262/2272 - не менее 1 шт.
  3. Модуль реле на 4 канала - 1 шт.
  4. Импульсный стабилизатор XM1584 - 2 шт.
  5. Резисторы 510Ом - 8 шт.

Эти компоненты собираем в простую схему предварительно выставив стабилизаторы на напряжение 5В и 3,3В соответственно потребителю:

Как видно из схемы выше всё довольно просто. Радиоприемник U3 подает сигнал TTL уровня соответствующий нажатой кнопке. Через резистивные делители сигнал опускается до уровня порядка 2,5В, что допустимо для цифровых входов ESP8266 (U4). Далее обработанный сигнал с U4 передается на блок реле M1, которое собственно и управляет нагрузкой. U1 и U2 преобразовывают напряжение с блока питания на 9В до напряжений соответствующих потребителям. Подключение их обязательно раздельное - последовательно их включать нельзя: при включении и выключении реле идет всплеск напряжения, который приводит к перезагрузке контроллера, что чревато ошибками работы системы, да и контроллеру жить хочется с напряжением не более 3,45В - иначе из него выйдет весь синий дым.

Код программы представлен ниже. Данная программа выполняет следующие функции: в рамках беспроводной локальной сети радиореле подключается и получает IP-адрес при помощи DHCP сервера. Для установки жесткого IP-адреса для радиореле более предпочтительно воспользоваться возможностями маршрутизатора Вашей сети. При кратком нажатии (0,5-1 сек) на кнопку на пульте, программа включает соответствующее реле, при длительном (более 2 сек) - выключает. Также при входе по IP-адресу (кроме случаев, когда Ваш локальный маршрутизатор предоставляет локальный DNS сервер, который может привязать классическое доменное имя к MAC-адресу точки доступа, тогда Вы в вашей локальной сети можете указать для него ЛЮБОЕ доменное имя) через браузер данный модуль представляет пользователю простой и достаточно функциональный Web-интерфейс для того, чтоб включать/выключать реле и настраивать доступ к модулю (без авторизации модуль не разрешает управлять реле).

Web-интерфейс пользователя представляет собой три экрана:

  1. Экраны входа:

  2. Экран управления реле:
  3. Экран настройки:

Интерфейс пользователя создан на базе разметки Bootstrap, что позволяет ему одинаково адекватно отображаться на любых дисплеях размером не менее 360х480. Вы же можете поэкспериментировать с интерфейсом сами. Формирование страницы происходит приблизительно также как и на обычных LAMP серверах (правда БД пользователя имеет структуру типа "ключ-значение" жестко сформированную при компиляции и загрузке в память контроллера), только с учетом того, что вместо php у пользователя С++ и всю разметку модуль сначала формирует в ОЗУ, а потом только отправляет компьютеру пользователя. Попытки отправить страницу в несколько итераций привели к плачевному результату - страница прогружалась некорректно.

Как видно из снимков выше, при подключении к модулю отображается страница ввода логина и пароля, посредством которых пользователю дается доступ к управлению реле со смартфона. В случае неправильного ввода логина или пароля перейти к управлению не получится, а на экране отобразится предупреждение о неверном логине или пароле. Уровень защиты применен минимальный с использованием Cookies Вашего браузера. Так, что если Вы очистите Cookies - естественно Вам придется входить в систему снова.

После ввода верной пары "логин-пароль" (они на всех пользователей одни и те же) пользователю предоставляется экран 2, который позволяет управлять реле (кнопки ON/OFF), перейти в меню настроек (кнопка Configure), обновить страницу (кнопка Refresh) или же завершить сессию (кнопка Logout) управления модулем. Состояние каждого реле указано в блоке между кнопками ON и OFF. Белый фон или надпись ON указывают на включенное реле, серый фон или надпись OFF - на выключенное. На всех страницах отсутствует команда автоматического обновления страницы, так что кнопки Refresh придется нажимать пользователю при необходимости узнать. Потоковый режим передачи данных станет слишком расточительным для вычислительных ресурсов контроллера, так что необходимость в применении последнего отсутствует.

Страница конфигурирования представляет пользователю возможность выбрать подключение к другой Wi-Fi сети при условии, что доступных точек доступа несколько (Осторожно: контроллер не поддерживает режим SPLIT для Wi-Fi сети включающей несколько точек, т. е. он подключается к первой подходящей под записанные в память параметры и далее при обрыве соединения, восстанавливает его только перезагрузка, в противном случае код управления Wi-Fi модулем более целесообразно изменять на режим SoftAP, в таком случае пользователь будет общаться напрямую с радиомодулем). Также на странице конфирурирования можно изменить параметры входа в виде логина и пароля (пара логин и пароль одинаковая для всех, подключаться к модулю может любое количество пользователей).

Таким образом Вы легко и непринужденно сможете с помощью любого КПК/Смартфона/Планшета/ноутбука/CarPC управлять освещением в своем доме.

Предлагаю полный спектр услуг по разработке систем автоматики и автоматизации бытового и промышленного направления. Имею в наличии готовые модульные решения для системы «умный дом»: вентиляция, отопление, освещение, дистанционное управление. Поверьте, «Умный дом», сегодня, уже не роскошь, а вполне ДОСТУПНАЯ для каждого из нас РЕАЛЬНОСТЬ!)))