Пульт от светильника с вайфаем для чего. Wi-Fi устройства контроля и управления Мастер Кит

Технология беспроводной передачи данных в локальных сетях Wi-Fi появилась в 1998 году благодаря инженеру австралийской лаборатории радиоастрономии CSIRO Джону О’Салливану. Первый стандарт беспроводного протокола обмена данными IEEE 802.11n был утвержден в 2009 году.

За время своего развития технология Wi-Fi приобрела широчайшую популярность, прежде всего из-за отсутствия необходимости использования проводов при подключении к сети. И если изначально технология Wi-Fi применялась для подключения носимых и наладонных компьютеров, то в настоящее время эта технология проникла и в фотоаппараты, и в бытовую технику, и в мультимедийные устройства, и в устройства управления. Широко применяются и беспроводные датчики различных физических величин – температуры, давления, влажности и т.п. Устройства контроля и управления «умным домом», оснащенные Wi-Fi модулями, могут осуществлять свои функции из любой точки, где доступна локальная беспроводная сеть, а в случае, если эта сеть через роутер имеет возможность выхода в глобальную сеть – и из любой точки, где есть интернет. С помощью своего смартфона, подключенного к интернету (посредством Wi-Fi или GSM), пользователь может не только просматривать сайты, но и управлять бытовой техникой, расположенной на любой расстоянии от него.

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

В предлагаемом обзоре мы рассмотрим некоторые модули, предлагаемые компанией Мастер Кит, использующие беспроводную технологию Wi-Fi. Некоторые модули предназначены для использования в проектах DIY, поставляются в виде печатной платы с компонентами и не имеют корпусов, другие же выполнены в виде законченных устройств и предназначены для использования «из коробки». Следует учесть, что каждое из рассматриваемых устройств является клиентом беспроводной сети, следовательно, для подключения их к сети необходима точка доступа. Также нужно обращать внимание на то, с какой сетью устройство соединяется – локальной или глобальной. Многие Wi-Fi устройства используют порталы, размещенные в глобальной сети для связи с другими такими устройствами и обмена информацией. Такой способ связи позволяет упростить соединение, так как не требует постоянного выделенного IP-адреса глобальной сети и относительно сложных сетевых настроек типа NAT («проброса» портов) для доступа извне в локальную сеть, расположенную за файрволом роутера.

Для удобства сравнения основные характеристики устройств сведены в таблицу, расположенную в конце обзора.

Начнет наш обзор с DIY-модулей Мастер Кит, использующих технологию Wi-Fi.

  1. – Wi-Fi реле с термометром и двумя реле.

Основой устройства служит получивший широкое распространение Wi-Fi модуль ESP8266. Модуль представляет собой микроконтроллер, оснащенный беспроводным интерфейсом. Он поддерживает стандарты IEEE 802.11 b/g/n, с шифрованием WEP и WPA/WPA2. Также модуль имеет 11 доступных для пользователя портов ввода/вывода и интерфейсы проводной связи SPI, I2C, I2S, UART и 10-разрядный АЦП. Имеются несколько свободно распространяемых комплектов разработчика (SDK) с компилятором и библиотеками, позволяющими эффективно использовать возможности ESP8266.

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

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

  1. – интернет реле с термометром и двумя реле, использующее сервер MQTT.

Сетевой протокол MQTT (Message Queue Telemetry Transport) является упрощенным протоколом передачи данных между устройствами и работает поверх протокола TCP/IP. Этот протокол использует поведенческий шаблон проектирования передачи сообщений, известный как «издатель-подписчик», весьма прост в использовании и администрировании, не создает больших нагрузок на каналы связи и успешно работает при наличии проблем в этих каналах, а также не накладывает ограничений на формат передаваемых данных. MQTT разработан в расчете на маломощные встроенные устройства, поэтому для его реализации требуются минимальные вычислительные мощности, с которыми справляются микроконтроллеры. Таким образом, протокол MQTT является, наряду с некоторыми другими аналогичными протоколами, например MODBUS или RS-485, отличным средством для реализации функций «интернета вещей» - IoT.

Дистанционное управление двумя реле по 2000 Вт каждое;

Прием и передача в сеть показаний подключаемых к нему двух датчиков температуры типа DS18B20;

Прием и передача показаний датчиков влажности DHT11 или DHT22, аналоговых датчиков с использованием встроенного АЦП.

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

  1. Если предыдущие два устройства используют возможности микроконтроллера ESP8266, то модуль имеет в своем составе собственный более мощный микроконтроллер серии STM8 и представляет собой устройство сбора и передачи данных по Wi-Fi.

Применение микроконтроллера STM8 позволило реализовать в небольшом объеме весьма широкий функционал. Модуль является с одной стороны законченным устройством для сбора данных о потребляемых бытовых ресурсах, таких, как вода, тепло, газ, электроэнергия, а с другой стороны – многофункциональным устройством контроля и управления исполнительными модулями и механизмами.

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

К одному прибору может быть подключено до 8 любых устройств в любой комбинации:

Счетчики воды;

Счетчики газа;

Счетчики электричества (при установке дополнительного модуля интерфейса CAN или RS-485);

Датчики температуры, например, ;

Датчики протечки воды, например, ;

Датчики уровня жидкости;

Датчики утечки газа;

Исполнительные устройства (запорно-регулирующая арматура с электроприводом), например, шаровый кран с электроприводом .

При использовании дополнительных встраиваемых модулей интерфейсов RS-485 или CAN к одному модулю, помимо 8 устройств, перечисленных выше в описании, можно подключить до 8 счетчиков электроэнергии типа Меркурий.

Модули можно объединять для увеличения количества обслуживаемых каналов сбора информации.

Прибор собирает данные со счетчиков и датчиков и по установленному в настройках расписанию передает их на сервер, расположенный на территории России. В штатном режиме данные отправляются раз в сутки с почасовой детализацией. Если обнаруживается аварийная ситуация (отключился счетчик воды, возникла протечка, садится батарея и т.д.) прибор выходит на связь немедленно и сообщает об этом владельцу с использованием PUSH или E-MAIL уведомлений. На сервере организован личный кабинет каждого пользователя.

В личном кабинете можно указать, в какой день и час сервер будет ежемесячно автоматически отправлять показания. Показания могут отправляться следующими способами: в виде PUSH уведомления, в виде E-MAIL, непосредственно на портал MOS.RU. Забудьте о рутине связанной с ежемесячной передачей показаний вручную!

Также вы можете просто смотреть показания и графики на вашем мобильном телефоне, планшете или компьютере, используя браузер или мобильное приложение для iOS и Android.

Питание модуля производится от трех щелочных (Alkaline) батареек типоразмера АА, продолжительность автономной работы не менее 3 лет. При снижении уровня заряда ниже 10% пользователю будет отправлено PUSH или E-MAIL уведомление.

Устройство связывается с сервером, используя выход в интернет через частную или публичную сеть Wi-Fi с шифрованием. Можно использоваться две сети: основную и резервную. В отсутствии связи прибор собирает и хранит почасовой журнал в течение 1 месяца, при её возобновлении передает данные на сервер. В любой нештатной ситуации (прибор не выходит на связь, произошла протечка, обрыв в линии связи до датчика или счетчика и т.п.) сервер отправит вам PUSH или E-MAIL уведомление.

Сегодня хочу Вам показать интересное устройство, при помощи которого можно управлять чем угодно через интернет при помощи Wi-Fi модуля ESP8266 (ESP-01) и микроконтроллера ATmega8A .
В данной связке модуль, выполняет роль контроллера сети WiFi и вебсервера, а ATmega8A выполняет роль контроллера силового узла, принимает строку по простому протоколу от ESP8266 и обработав ее выдает команду на открытие того или иного реле через сдвиговый регистр 74HC595 и транзисторную сборку ULN2003 .

Схема устройства:

Обращаясь по заданному IP адресу, по умолчанию: 192.168.4.1 , можно настраивать различные режимы и управлять освещением в квартире или доме. Устройство имеет веб интерфейс. Прошивка для ESP8266 создана на основе «вебсвалки» от уважаемого « PVVX» . Я просто дописал пару тройку обработчиков в файле что при получении определенной строки со стороны веб в UART интерфейс будет отсылаться 4 байтная строка - идентификатор команды. На каждый канал управления приходится две таких команды, это включить и выключить. Также, есть еще дополнительных две команды которые могут включить и выключить сразу все каналы освещения.
И потом, написав простую вебстраничку я легко управляю освещением квартиры.

Работает устройство следующим образом:

Со стороны веб : если по-простому, то при нажатии на любую из кнопок сначала вызывается скрипт, который меняет фон кнопки и меняет переменной значение с 1 на 0 и наоборот при каждом нажатии и потом вызывается обработчик AJAX, который обрабатывается программой в ESP8266 и отправляется в UART код, соответствующий команде AJAX. А уже ATmega8A , эту строку принимает и обрабатывает.

Со стороны микроконтроллера: принимается строка, обрабатывается, и если совпадает строка с проверочной, то выполняются необходимые действия. Выглядит это вот так:

Void send_data() { static char buff_data=0, rel_data=0; static char x=0; if(string_search("@1A00",rx_buffer)) // LIGHT ON кухня { rel_data|=0x81; printf("1CH ON\r\n"); clear_buffer_rx(); x=0; if(demo<42000 && demo_off==0) demo++; } .................... .................... else if(string_search("@2A00",rx_buffer)) // LIGHT OFF кухня { rel_data&=~0x81; printf("1CH OFF\r\n"); clear_buffer_rx(); x=0; if(demo<42000 && demo_off==0) demo++; } relay_send(rel_data); }

В данной функции сравнивается пришедшая строка в юарт, со строкой, которая выполняет определенные команды. Если она совпадает - то выполняется действие.

функция парсера юарт самодельная, вот ее код:

Char string_search(char *str1,char *str2) { unsigned char addr=0,x=0,y=0; str1+=0; str2+=0; while(str1!=0) { addr++; } while(str1[y]!=0 && str2[x]!=0) { if(str1[y] == str2[x]) { y++; x++; } else { if(y

Веб страничка не претендует на премию, и выглядит вот так:

При нажатии на любую из кнопок происходит включение освещения!

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

По желанию, любой может доработать основную страницу, добавив на нее кнопку или ссылку для перехода к настройкам.

192.168.4.1/protect/wifi.htm
192.168.4.1/protect/setup.htm
192.168.4.1/protect/uart.htm
192.168.4.1/protect/upload.htm

По вопросам доработки прошивки, можно .

Фото смонтированного устройства:

Внимание! Печатные платы разрабатывались как универсальные (для общего применения) и применялись платы из того, что было уже изготовлено, это все связано с сокращением времени разработки и экономии расходов на изготовление заводских плат. Поэтому некоторые узлы распаяны не для задачи управления освещением.

Несмотря на присутствие на рынке достаточно большого количества компаний, занимающихся системами типа “Умный Дом” большинство из них требуют глубокой интеграции в существующую электрику вашей квартиры, дома или офиса. Цены на такие устройства от именитых производителей также не радуют, в особо запущенных случаях вам придется расстаться с четырехзначной суммой за одно только удаленное управление освещением. И это я не про рубли или гривны говорю.

Но в последние несколько лет ситуация стала кардинально меняться. Одна за другой рождаются компании которые предлагают системы домашней автоматизации с хорошей функциональностью по вкусным ценам. Компания " " производящая приборы управления освещением с 1997 года предоставила мне на обзор свой Mini Kit «Умный дом за 1 час», о котором я сегодня и попытаюсь рассказать в максимально доступной форме. Забегая наперед и во избежание преждевременных комментариев скажу, что набор от белорусской компании не превратит ваш дом в действительно «умный», но как минимум позволит на один шаг приблизится к этой цели.

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

▌О продукции компании и обозреваемом наборе


Сейчас «Ноотехника» продает два набора для самостоятельной установки: Mini и Maxi Kit. Последний отличается возможностью управлять бо́льшим количеством групп нагрузки и оснащается дополнительными датчиками температуры/влажности и движения. Мне достался Mini Kit и он состоит из:

Красный провод, выходящий за пределы корпуса, - это перемычка, которая определяет режим работы блока. Изначально блок работает в релейном режиме, т.е. просто включает и отключает нагрузку. Разрыв этого соединения переводит устройство в режим диммирования, что дает возможность регулировать мощность соответствующих устройств (лампы накаливания, нагреватели, вентиляторы и т.д.).

Блоки типа «SU» появились в продаже совсем недавно, до этого диммируемые (SN, ST) и «релейные» (SL) блоки продавались в виде отдельных устройств. В серии SU всего 5 моделей, которые отличаются максимальной мощностью коммутации: 0.2, 0.3, 0.5, 3, 5 кВт. Есть также модули включаемые в разрыв фазы (серия SB), влагозащищенные блоки для использованиях оных на улице (серия SR) и контроллер светодиодной ленты (серия SD). Каталог силовых блоков с ценами можно посмотреть на официальном сайте «Ноотехники» по , там же есть всех существующих моделей и на серию блоков SU111.

Выключатели (пульты-радиопередатчики)
В комплекте поставки присутсвует два пульта: PU311-2 и PU313-2. Пультов у компании великое множество, хотя на самом деле существует только 3 конструктивно различные версии плюс пульт-брелок. Серия PU имеет две ревизии, которые так и обозначаются в виде приставки «1» и «2» в конце наименования. Это выключатели с сенсорными клавишами в белом или бежевом цвете и отличаются они прежде всего функциональностью самих клавиш (они не универсальны, несмотря на то что являются сенсорными).

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

Пульт работает от батареек типа CR2032. Гарантированное время автономной работы пультов составляет 1 год, но на деле же должно получиться намного больше. На официальном сайте компании , что при использовании пульта 48 раз в сутки (при стандартной емкости батарейки в 210-240 мА*ч) пульта хватит на 3.8 года с учетом саморазряда батарейки. 1 год гарантируется, т.к. максимальная заявленная дальность (50 метров) сохраняется в первые 1-1.5 лет эксплуатации. Как такового индикатора разряженной батарейки у пультов нет, в последствии определить севший элемент питания можно будет по тускло светящемуся индикатору в момент передачи команды.

Пульты бывают одно-, двух- и трехканальные. К каждому из каналов можно привязать неограниченное количество силовых блоков. Тут главное не запутаться, так как к блокам можно привязать всего до 32 пультов. Максимальная дальность работы на открытом пространстве - 50 метров. Я экспериментировал с дальностью и вот что могу сказать: блок получает и выполняет команды на заявленном расстоянии при условии прямой видимости окна комнаты, в которой он установлен. С железобетонным перекрытиями все немного сложнее: в подъезде панельной высотки блока хватает на 2-3 этажа, дальше сигнал уже не проходит. В пределах квартиры, само собой, никаких проблем нет.

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

Ethernet-шлюз
Включается в локальную сеть и является посредником между системой nooLite и компьютерами или мобильными устройствами. С виду это небольшая черная коробочка с внешней антенной. В комплекте поставки есть блок питания и патч-корд для подключения его к роутеру или модему.

Альбом с дополнительными фото, включая снимки сделанные в процессе препарации, находится по .

Ethernet-шлюз не имеет прямого доступа к сети интернет и работает в локальной сети. Он так же не умеет запрашивать DHCP адрес и доступен только по 192.168.0.168, который при последующей настройке можно изменить на иной. Не могу не отметить, что у обычного пользователя могут возникнуть проблемы при подключении данного устройства, особенно если данный статичный адрес уже используется кем-то в подсети. Но об этом я расскажу позже.

Датчик движения PM111
Был приобретен отдельно в целях оснастить одну из комнат автоматическим управлением освещением. По размерам он идентичен настенным включателям идущим в комплекте Mini Kit, а по своим функциям и вовсе их напоминает, т.к. просто посылает команду включения и последующего выключения на предварительно привязанный силовой блок.

Альбом с дополнительными фото, включая снимки сделанные в процессе препарации, находится по .

Питается PM111 от двух батареек типа ААА (есть в комплекте), а их заряда должно хватить по меньшей мере на год эксплуатации. При критическом уровне заряда светодиод, размещенный под линзой теплового сенсора, уведомит вас тремя короткими вспышками повторяющимися каждые 8 секунд. На задней панели есть три подстроечных резистора для установки: порога срабатывания в зависимости от освещенности (1… 100 люмен), времени отключения после срабатывания (5с… 21,8 минуты) и чувствительности сенсора. Поддерживается параллельная работа с любыми пультами от nooLite. Для ознакомления: датчик в и его .

▌Установка и настройка на примере собственного жилья

Самое интересное - это установка. Электрики я немного побаиваюсь, несмотря на то, что дружу с электроникой. По неизвестным мне причинам она точит на меня зуб и как только подворачивается возможность, пытается показать свое превосходство. На этот раз обошлось без проишествий, установить набор действительно можно за час, если заранее все спланировать и подготовится.

Показывать установку я буду на примере квартиры в которой сейчас проживаю. Это съемное жилье, владелец которого согласился на установку системы и мои последующие «развлечения» с квартирой при условии, что все вернется на свои места при съезде. Имеем ничем не примечательную однокомнатную квартиру в панельном доме типа со следующей схемой освещения:


Модель создана в программе . Потолочные люстры для наглядности заменены на светильники

Еще до получения набора было решено докупить датчик движения и дополнительный силовой блок, так как один из источников освещения в случае применения Mini Kit в его «чистом» виде лишался бы управления. Схема применения в итоге приобрела следующий вид:

По умолчанию вместо четвертого блока на третий канал пульта привязан блок №3, но в экспериментальных целях было решено поменять их местами. Процесс привязки/отвязки достаточно прост и описан как в отдельной , так и в полноценном на всю систему. Второй и третий канал пультов управляют светом в ванной и коридоре, что по сути является наглядным примером реализации проходного выключателя, только без проводов.

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

Альбом с дополнительными фото, включая снимки сделанные в процессе препарации, находится по .

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

В «ваговские» клеммы можно зажимать и медный одно- и многожильный провод. Сей факт я узнал уже в процессе написания статьи, так что многожильные провода от люстры были предварительно залужены. Проводники, торчащие из потолка, я зачистил в целях удаления образовавшихся на них окислов.

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

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

Абсолютно для всех точек 300-ваттные блоки являются избыточными так как у меня используются люминисцентные энергосберегающие лампы мощностью 20 Ватт. В жилой комнате суммарная потребляемая мощность составляет 60 Вт. Даже учитывая рекомендуемый производителем двухкратный запас мощности (особенно при размещении в местах где затруднена конвекция воздуха) такие блоки все равно являются избыточными. С лампами накаливания сравнимыми по световому потоку с установленными мною энергосберегающими лампами ситуация была бы диаметрально противоположной. Скорей всего он не выйдет из строя, но чувствовать себя будет очень «горячо».

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

Снимаем старый выключатель и с помощью все тех же клемм WAGO замыкаем провода так, как если бы выключатель был все время включен. Как оказалось монтажная коробка в случае с данным выключателем попросту отсутствует и вставлен последний был тупо (именно тупо) в прорезь гипсокартона.


Да, желто-зеленый провод - это фаза для подключения коридорного светильника. Грустно, правда?

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

Альбом с дополнительными фото, включая снимки сделанные в процессе препарации, находится по .

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

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

Где Б - блоки, П - пульты, а Д - датчик движения. Последний, аналогично пультам, можно крепить на саморезы или двусторонний скотч. Для начала хватит маленького кусочка клейкой ленты, так как с размещением датчика скорей всего придется основательно «поиграться». На максимально установленной чувствительности угол его обзора, выявленный экспериментальным путем достигает 120-130 градусов, а дальность срабатывания полностью перекрывает мою кухню (2.5 х 2.5 метра). После некоторых экспериментов датчик был размещен на одном из кухонных ящиков, таким образом чтобы на него не влияло местное освещение для приготовления пищи и лампы в вытяжке над плитой.


На данный момент датчик разместился по правую сторону от ручки

Срабатывает датчик моментально, но небольшая задержка все же присутсвует из-за люминисцентной лампы - она включается не сразу. Время отключения я установил порядка 10 минут. Датчик, вроде как, должен проверять наличие движения перед отправкой команды выключения на блок, но я либо замираю в эти моменты, либо датчик меня попросту не замечает. В итоге свет гаснет и приходится ждать 4-5 секунд для повторной проверки наличия движения. Порог освещенности был установлен на 30% от состояния, когда датчик постоянно включен и отслеживает движения. При таком уровне срабатывание происходит даже в особо пасмурные зимние дни, чего я и пытался добиться.

Что касается загвоздки относительно этого датчика, о которой я упоминал ранее. Представим, что помимо самого датчика управляемый блок привязан к настенному пульту, для ручного управления освещением на кухне, как в моем случае. Ни датчики, ни пульты не имеют обратной связи и если свет на кухне включится в результате срабатывания датчика движения, а выключите вы его посредством пульта или веб-интерфейса, о котором пойдет речь далее, то датчик движения продолжит думать, что свет включен с его помощью и будет продолжать отсчитывать предварительно заданные 10 минут, чтобы послать команду отключения света. Уловили суть? При повторном вхождении на кухню после отключения света вручную датчик не сработает. Поэтому я отвязал данный блок от всех пультов, включая сценарный канал «Выключить все», так как датчик движения и сам способен погасить свет на кухне при отсутствии движения.

Сценарные каналы тема не менее интересная. В каталоге «Ноотехники» можно встретить как пульты с одной сценарной клавишей, так и со всеми тремя. Сценарии позволяют управлять неограниченным количеством блоков (это базовая возможность пульта): выключать их все одновременно, включать соответствующий блок на предварительно установленный уровень яркости или цвета (для светодиодной ленты) или включать необходимую группу светильников. С помощью одного канала можно выполнять только одно действие, т.е. включить и выключить группу светильников одной клавишей не получится. Больше о возможностях создания сценариев написано в (глава 6) на всю систему nooLite. Вообще перед покупкой рекомендую ознакомится с ним - это избавит вас от большинства вопросов.

Ethernet-шлюз, управление с мобильных устройств и часов Pebble
Расскажу пока только о базовых возможностях шлюза. Информация об API и интеграции его в другие системы «Умного дома» заслуживает отдельного материала. При установке производитель рекомендует разнести роутер и Ethernet-шлюз по меньшей мере на пол метра, т.к. сигнал Wi-Fi сети создает помехи для приема сигнала в датчиков температуры/влажности. В младшем наборе последних конечно нет, но почему бы не перестраховаться на перспективу?

Отдельное спасибо разработчикам за зеленый индикаторный(!) светодиод, а не вырвиглазный синий прожектор, кои любят применять китайские производители (рядом стоящий Xiaomi несмотря на синий светодиод - исключение).

Первое включение в локальную сеть не увенчалось успехом. Во-первых моя сеть построена на адресах типа 192.168.1.x, что уже сделало работу шлюза невозможной. Окей, переводим подсеть на 192.168.0.х, но ничего по прежнему не происходит, зайти по адресу 192.168.0.168 не получается. Предполагаю, что этот адрес в сети уже занят каким-то из домашних устройств и напрямую подключаю шлюз к компьютеру посредством патч-корда. Присваиваю компьютеру адрес 192.168.0.1 с маской подсети 255.255.255.0.

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

Основные нововведения второй версии это настройка авторизации, которой раньше и вовсе не было (любой человек в локальной сети мог управлять освещением зная только адрес шлюза), функции «Рассвет» и «Закат», о которых позже, и, собственно, возможность «пробросить» необходимый порт для доступа к шлюзу из внешней сети. Для этого необходимо иметь внешний статический IP адрес (как правило, можно заказать у вашего провайдера, аренда стоит около $1-2 в месяц) и произвести наборе нехитрых манипуляций с вашим роутером. Инструкция на эту тему есть в архиве с файлами для обновления .

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

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

Помимо сценария «Выключить все» есть функции «Утро» и «Вечер». Все они независимы и никак не синхронизируются со сценарными каналами на выключателях ввиду отсутствия какой-либо обратной связи.

Записать сценарий достаточно легко. Нужно включить, выключить или установить на определенную мощность все светильники, которые вы хотите задействовать в сценарии и нажать кнопку «Сохранить». Таким образом можно создать любой сценарий, например «Просмотр кино», когда свет во всей квартире выключится, а возле кровати на минимальную мощность активируется бра или что-то в этом духе.

Помимо сценариев есть возможность установить 8 недельных таймеров (иконка в правом верхнем углу) и задействовать их в сценариях. Тут можно вспомнить добавленные во вторую версию ПО функции «Рассвет» и «Закат». С помощью недельных таймеров можно установить, например, что с понедельника по пятницу в 8 утра будет выполняться действия «Рассвет», в следствии чего выбранная группа светильников (сценарий, по сути) активируется с плавным нарастанием яркости. Сработает этот режим только в случае использования диммируемых ламп и соответственно настроенных силовых блоков.

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

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


Спустя целый месяц эксплуатации системы я так ни разу и не воспользовался веб-интерфейсом, просто потому что в нем не было надобности. Со смартфона я несколько раз игрался со светом для демонстрации системы друзьям и пару раз в кровати, когда часы оставались на столе. Относительно часов все совсем по другому. К их помощи я прибегал каждый раз, когда забывал выключить свет с помощью выключателя. Да, в будущем я скорее всего добавлю еще один пульт возле кровати (для девушки, например), но пока с этой задачей вполне себе справляются .

Что касается самого приложения для Pebble, то его весьма обоснованно Влад Зайцев (vvzvlad), когда рассказывал об экскурсии на производство компании «Ноотехника». К логике работы приложения я впоследствии привык буквально за пару дней, так что пользоваться им все таки можно. Есть еще приложение для Apple Watch, но у меня нет Apple Watch, поэтому я вам его не покажу.

▌Зачем мне (вам) это? Применение системы nooLite

Наряду с решениями применяемыми в моей квартире покажу еще несколько примеров использования данной системы.

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

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


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

3. Использование в деревянных домах где предъявляются особые требования к монтажу электропроводки. Для тех, кто не знал, скрытая электропроводка в деревянных домах как минимум не рекомендуется, а в случае использования гофрированных ПВХ труб и вовсе запрещена. Вообще нормативы для деревянных конструкций достаточно жесткие и те, кто придерживаются правил и опасаются за свою жизнь вынуждены будут потратится либо на хорошую скрытую проводку в металлических рукавах, либо закрыть красивое дерево 10-миллиметровым слоем штукатурки и уложить проводку под нее. В случае с открытой проводкой последнее время популярность набирает так называемая «ретро-проводка» с использованием стилизированного кабеля и керамических изоляторов. Решение красивое, но далеко не самое практичное, затратное по времени и средствам.

4. Беспроводной датчик движения для автоматического управления освещением . Хотелось бы, конечно, видеть больше датчиков в различных форм-факторах в арсенале «Ноотехники», но даже то, что есть, уже позволяет автоматизировать освещение в квартире и сэкономить на электроэнергии. Главное преимущество обозреваемого датчика - это отсутствие проводов. Обычно эти устройства включаются в разрыв фазного провода светильника и дополнительно требуют ноль для питания. Т.е. осложнена как установка, так и последующее перемещение датчика в случае неудачного размещения. Подробнее об этом .

5. Управление светом с часов, компьютера и мобильных устройств находящихся, в одной локальной сети. Можно, конечно, запариться и приобрести у провайдера статичный IP-адрес, пробросить порт на Ethernet-шлюз и вовсе управлять освещением из любой точки мира, но с учетом отсутствия обратной связи у блоков системы nooLite рациональность этого решения, по моему личному мнению, сводится к нулю.

Боюсь, если я продолжу описывать всевозможные сценарии, то выйду за ограничение по количеству символов, установленное на сайте для одной статьи. Больше примеров использования устройств от «Ноотехники» есть на у них на сайте. И еще, я знаю, что аналогичное управление можно реализовать на Arduino или вовсе собрав самостоятельное устройство, поэтому не нужно писать об этом в комментариях. Лучше посчитайте сколько времени у вас этой займет, а потом умножьте на стоимость одного вашего часа. Если это, конечно, не ваше хобби, а жена, дети или соседи по квартире смогут мириться с отсутствием света из-за проводимых вами отладочных работ.

    • Насколько удобны сенсорные выключатели? Как быть в темноте? Есть какая-либо подсветка?
      Нет, подсветки нет, в темноте придется ориентироваться на ощупь. В выключателях первой ревизии делать это было удобней, так как кнопки можно было нащупать по углам рамки. Во второй версии в центральную клавишу я периодически промахиваюсь. Как таковой кромешной тьмы у меня дома не бывает, всегда включена либо настольная лампа, либо ночник, а учитывая любимый мною «творческий беспорядок» я при всей своей смелости не рискну посреди ночи передвигать по квартире без, например, смартфона. При желании можно поменять сенсорные выключатели на возвратные с помощью пультов .
    • Можно ли включать свет пальцем левой ноги в теплых носках?
      Можно хоть левой, хоть правой, но либо в тонких токопроводящих носках, либо вовсе без них. А еще носом можно, да. Я не шучу, так как и такие ситуации случаются.
    • Что будет если отключат свет в квартире? Блоки потеряют привязку? В каком состоянии они окажутся после возобновления электроснабжения?
      Ничего не произойдет. В случае аварийного отключения электричества блоки не потеряют привязку так как вся информация хранится в энергонезависимой памяти. Если говорить о блоках серии SU, поставляющихся в наборе, то они не имеют функции запоминания состояния при пропадании сети 220 В. Относительно других моделей смотрите на сайте компании.
    • Легко ли взломать систему и получить контроль над управлением светом и электроприборами?
      Достаточно легко, ведь никакой серьезной защиты у системы нет. А если у вас открытая Wi-Fi сеть и вы используете Ethernet-шлюз с первой версией ПО, то любому «прохожему» достаточно будет подключиться к этой сети и перейти по стандартному адресу шлюза 192.168.0.168. Для радиоуправления используется всего 16 бит адреса, соответственно перебор возможных 65536 комбинаций займет считанные часы. Какая либо защита проприетарного протокола тоже отсутствует, сигнал с пульта легко «поймать» и записать. На Хабре даже была статья о . Вопрос в другом, кому может понадобиться «взламывать» систему управления освещением в среднестатистической квартире или доме? Кроме что каким-то школьникам-пакостникам, но у них обычно иные методы приветствуются.
    • Как предугадать когда сядут батарейки в пультах? Не хотелось бы посреди ночи остаться без возможности включить свет.
      Этот вопрос я уже подымал выше по тексту, но все же повторюсь, так как возникает он действительно часто. Как таковой индикации разрядки у пультов нет, но по мере приближения к критическому уровню заряда светодиод индикации при передаче команд будет светиться в тусклее и тусклее. Это и есть индикатор того, что батарейки пора заменить. Если вы за это время не удосужитесь заменить батарейки, а дома не окажется вас (как человека способного заменить батарейку в пульте) или, собственно, батареек формата CR2032, то да, возможности включить или выключить свет не будет.

▌Итоги

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

Я могу смело рекомендовать официальный сайт «Ноотехники» как исчерпывающий источник информации для дальнейшего изучения системы. Почти на каждый девайс есть подробные руководства, видео и краткие инфографики. Там же, на сайте, собраны системы и ее отдельных компонентов, поэтому традиционной рубрики «Ссылки по теме» в конце статьи не будет.

Что касается самой системы, то она мало того, что заслуживает внимания, так еще и стоит своих денег. Хоббийные решения на Arduino и ей подобных все же не являются plug&play устройствами и требуют кропотливой установки и настройки, а продвинутые системы для домашней автоматизации работающие на основе протоколов Z-Wave или X10 обойдутся много дороже.

Что понравилось
    • Цена базовой системы (блок-выключатель)
    • Простота монтажа и настройки
    • Расширяемость системы
    • Управление с мобильных устройств в локальной сети (с часов особенно)
Что не понравилось
    • Отсутствие обратной связи, пульты и шлюз никак не синхронизируются
    • Стоимость шлюза и его функциональные возможности
Чего хотелось бы
    • Какой либо защиты (шифрование протокола передачи данных)
    • Расширения возможностей сценарных каналов (возможность включать и выключать свет одной сценарной кнопкой, дабл тап для назначения дополнительных функций)
    • , . У себя на сайте я дублирую свои публикации со всех просторов интернета, так что тоже . :)

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

Немного общей информации

Сразу же стоит отметить, что для управления светом или любым другим электроприбором нам потребуется специальная станция или реле. Они бывают разных типов, с разными функциональными способностями, а также наборами возможностей. Например, самые дешевые устройства имеют вид розетки с пультом дистанционного управления. То есть, вы вставляете «Беспроводную розетку» в обычную розетку (для подключения к сети электропитания). В беспроводной девайс включаете, например, лампу и при помощи пульта ДУ можете выключить или включить свет. Все очень и очень просто.

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

«Беспроводная» розетка

Слово «беспроводная» здесь означает, что вы можете подключаться к ней по Wi-Fi и регулировать ее работу. Рассмотрим, как действуют подобные гаджеты, на примере устройства от компании Edup. Это китайская компания, но производит довольно качественную продукцию.

Итак, как пользоваться такой розеткой:

  1. Подключаем устройство в сеть электропитания (в обычную розетку).
  2. Сверху девайса есть кнопка. Нажмите и удерживайте ее до тех пор, пока не начнет мигать индикатор Wi-Fi (если вы держите кнопку, но постоянно мигает другой значок, то отпустите кнопку и еще раз нажмите кратковременно). Таким образом мы перевели девайс в режим поиска Wi-Fi сетей, чтобы привязаться к роутеру.

Теперь переходим к планшету или смартфону (с помощью которого будет происходить удаленное управление). В нашем случае приложение называется Edup Wi-Fi. После установки приложения на планшет вам придется зарегистрироваться.

После этого заходите в приложение под своим логином. Но сейчас в нем не будет ни одного устройства: дело в том, что добавлять оборудование нужно вручную, поэтому выходим из приложения.

Теперь открываем настройки смартфона (планшета) и переходим в раздел «Wi-Fi». Включаем адаптер. Когда система предложит список доступных для подключения устройств, найдите свою «беспроводную» розетку и подключитесь к ней. Нужное нам подключение имеет название «Wifino1». После того как мы подключились к устройству, возвращаемся в приложение Edup WiFi.

Здесь нужно нажать кнопку «Settings», которая находится в самом низу экрана справа. Далее нажимаем «Initialize Device». Сверху будет выводиться информация о подключенном устройстве: MAC-адрес и название.

Ниже потребуется ввести в поле SSID название своей Wi-Fi сети. Вводить нужно в точности так, как это указано в роутере, со всеми символами, заглавными или прописными буквами и так далее. Название должно совпадать абсолютно. И, соответственно, вводим пароль от вашей Wi-Fi сети.

После этого жмем кнопочку «Старт». Телефон начнет отправку нужных команд на Wi-Fi розетку. Вам же остается только ждать, когда сопряжение будет выполнено. Когда это произойдет, на самой розетке индикатор, который до этого мигал, перестанет мигать и будет постоянно гореть.

Теперь, когда вы снова войдете в приложение Edup WiFi, в разделе «Devices» будет ваша подключенная к роутеру беспроводная розетка. Напротив названия будет кнопка, при нажатии на которую устройство будет включаться или отключаться. Как видите, управление через Wi-Fi своими бытовыми приборами – достаточно простой и быстрый процесс.

Стоит отметить, что в розетку вы сможете включить любой бытовой прибор. Главное, чтобы его мощность не превышала номинальную мощность гаджета. Также приложение, при помощи которого происходит управление девайсом, достаточно сильно «тупит». То есть, его еще дорабатывают и совершенствуют, поэтому вы можете испытывать некоторые трудности при входе в свой зарегистрированный аккаунт, а также в работе с программой.

Вторым гаджетом, который позволит управлять светом в доме через Wi-Fi, является реле. Это оборудование помощнее, которое выдерживает более высокие нагрузки. При этом работает все напрямую. То есть, само реле раздает Wi-Fi, к которому вам нужно подключиться и после этого запустить соответствующее приложение и уже в программе контролировать работу реле.

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

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

Как защитить свою Wi-Fi сеть: Видео

Доброго времени суток, уважаемый читатель.

Немного лирики в начале. Идея «умного» выключателя света совсем не нова и, наверное, это первое, что приходит в голову тем, кто начал знакомство с платформой Arduino и элементами IoT. И я этому не исключение. Поэкспеременировав с элементами цепей, моторчиками и светодиодами хочется сделать нечто более прикладное, что востребовано в повседневной жизни и, самое главное, будет удобно в использовании, а не останется жертвой эксперимента в неугоду комфорту.

В этой статье я расскажу, как я сделал выключатель, который будет работать как обычный (т.е. что обычно закреплен на стене) и в то же время позволит управлять им через WiFi (или через Интернет, как это сделано в данном случае).

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

Так же мне понадобились: сервер, с помощью которого выключатель будет управляться через Интернет, Arduino Uno, с помощью которого я программировал ESP, роутер и расходные материалы как провода, клеммы и т.д., всё это может варироваться от вкусов и никак не повлияет на конечный результат.

Цены взяты из Ebay, где я их и покупал.

А вот как выглядят элементы из таблицы:

Теперь можно составить и схему подключения:

Как вы наверное заметили, схема очень простая. Все собиратся легко, быстро и без пайки. Эдакий рабочий прототип, с которым не нужно долго возиться. Всё связано проводами и клеммами. Единственный минус это то, что реле не влезло в гнездо выключателя. Да, изначально я планировал запихнуть всё это в стену за выключателем, чтобы смотрелось эстетично. Но к моему сожалению места в гнезде оказалось мало и реле просто напросто не влезло ни вдоль, ни поперек:

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

Изолента спасёт от удара током… надеюсь.

А теперь поговорим о програмной части.

И прежде чем приступать к разбору кода и деталей, я приведу общую схему реализации управления лампочкой.

Надеюсь, я когда нибудь все перепишу и связь будет основана на более быстром протоколе нежели HTTP, но для начала сойдет. Удаленно лампочка меняет свое состояние приблизительно за 1-1.5 секунды, а с выключателя моментально, как и подобает порядочному выключателю.

Программировании ESP8266-01

Самый простой способ сделать это - с помощью Arduino. Скачать необходимые библиотеки для Arduino IDE можно с GitHub . Там же все инструкции по установке и настройке.

Далее нам нужно подключить ESP к компьютеру, для этого понадобится либо USB to Serial Адаптер (типа FTDi , CH340 , FT232RL) либо любая Arduino платформа (у меня была Arduino Uno) с выходами RX и TX.

Стоит отметить, что ESP8266-01 питается от 3.3 Вольта, а значит ни в коем случае не подключайте его к питанию Arduino, которые (часто) питаются от 5 Вольт, напрямую иначе все сгорит к чертям. Можно использовать понижатель напряжения, который приведен в таблице выше.

Схема подключения проста: подключаем TX , RX и GND ESP к RX, TX и GND адаптера/Arduino соотвественно. После этого, собственно, подключение готово к использованию. Микроконтроллер можно программировать используя Arduino IDE.

Пара нюансов при использовании Arduino Uno:

  • На Uno есть выход для 3.3В, но его оказалось недостаточно. При подключении к нему ESP, все вроде работает, индикаторы горят, но связь с COM портом теряется. Поэтому я использовал другой источник питания на 3.3В для ESP.
  • К тому же у UNO не возникло никаких проблем при общении с ESP, с учетом того, что UNO питался от 5В, а ESP от 3В.
После нескольких экспериментов с ESP8266-01, выяснилось, что ESP чувствительны к подключенным к GPIO0 и GPIO2 напряжениям. В момент старта они ни в коем случае не должны быть заземлены, если вы намереваетесь запустить его в штатном режиме. Более подробно о старте микроконтроллера . Я этого не знал и мне пришлось слегка менять схему, т.к. в версии ESP-01 присутсвтуют только эти 2 пина и в моей схеме используются оба.

А вот и сама программа для ESP:

Показать код

#include #include #include #include #include extern "C" { // эта часть обязательна чтобы получить доступ к функции initVariant #include "user_interface.h" } const char* ssid = "WIFISSID"; // Имя WiFi const char* password = "***************"; // Пароль WiFi const String self_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для минимальной безопасности связи const String serv_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для минимальной безопасности связи const String name = "IOT_lamp"; // имя выключателя, читай лампочки const String serverIP = "192.168.1.111"; // внутренний IP WEB сервера bool lamp_on = false; bool can_toggle = false; int button_state; ESP8266WebServer server(80); // веб сервер HTTPClient http; // веб клиент const int lamp = 2; // Управляем реле через GPIO2 const int button = 0; // "Ловим" выключатель через GPIO0 // функция для пинга лампочки void handleRoot() { server.send(200, "text/plain", "Hello! I am " + name); } // функция для недействительных запросов void handleNotFound(){ String message = "not found"; server.send(404, "text/plain", message); } // Да будет свет void turnOnLamp(){ digitalWrite(lamp, LOW); lamp_on = true; } // Да будет тьма void turnOffLamp(){ digitalWrite(lamp, HIGH); lamp_on = false; } // Отправляем серверу события ручного вкл./выкл. void sendServer(bool state){ http.begin("http://"+serverIP+"/iapi/setstate"); String post = "token="+self_token+"&state="+(state?"on":"off"); // По токену сервер будет определять что это за устройство http.addHeader("Content-Type", "application/x-www-form-urlencoded"); int httpCode = http.POST(post); http.end(); } // Изменяем состояние лампы void toggleLamp(){ if(lamp_on == true) { turnOffLamp(); sendServer(false); } else { turnOnLamp(); sendServer(true); } } // Получаем от сервера команду включить void handleOn(){ String token = server.arg("token"); if(serv_token != token) { String message = "access denied"; server.send(401, "text/plain", message); return; } turnOnLamp(); String message = "success"; server.send(200, "text/plain", message); } // Получаем от сервера команду выключить void handleOff(){ String token = server.arg("token"); if(serv_token != token) { String message = "access denied"; server.send(401, "text/plain", message); return; } turnOffLamp(); String message = "success"; server.send(200, "text/plain", message); } // Устанавливаем MAC чтобы давать одинаковый IP void initVariant() { uint8_t mac = {0x00, 0xA3, 0xA0, 0x1C, 0x8C, 0x45}; wifi_set_macaddr(STATION_IF, &mac); } void setup(void){ pinMode(lamp, OUTPUT); pinMode(button, INPUT_PULLUP); // Важно сделать INPUT_PULLUP turnOffLamp(); WiFi.hostname(name); WiFi.begin(ssid, password); // Ждем пока подключимся к WiFi while (WiFi.status() != WL_CONNECTED) { delay(500); } // Назначем функции на запросы server.on("/", handleRoot); server.on("/on", HTTP_POST, handleOn); server.on("/off", HTTP_POST, handleOff); server.onNotFound(handleNotFound); // Стартуем сервер server.begin(); } void loop(void){ server.handleClient(); // Проверяем нажатие выключателя button_state = digitalRead(button); if (button_state == HIGH && can_toggle) { toggleLamp(); can_toggle = false; delay(500); } else if(button_state == LOW){ can_toggle = true; } }


Пару замечаний по коду:
  • Очень важно объявить пин GPIO0 как pinMode(button, INPUT_PULLUP ), т.к. в схеме мы не используем резистор для этой кнопки. А у ESP есть свои «вшитые» для этих самых целей.
  • При отлове состояния кнопки желательно установить задержку при считывании чтобы избежать ложного срабатывания в момент нажатия.

Программировании WEB сервера

Тут можно дать волю своей фантазии и использовать любые доступные средства для создания сервиса который будет обрабатывать запросы присылаемые выключателем и отправлять запросы на включение/выключение.

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

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

Это всё что касается портала, думаю нет смысла писать о нем больше, но если возникнут вопросы, то с радостью отвечу на них в комментариях.

Вместо заключение

Спасибо, если дочитали статью до конца и, возможно, нашли в ней что либо для себя полезное. Буду рад советам и критике. В целом, мне до сих пор кажется, что узкое место в цепи это Адаптер на 5В и буду рад, если Вы поделитесь своим опытом решения подобных задач. Что касается ESP8266-01, то пока он не вызвал у меня никаких нареканий кроме как особого использования пинов GPIO. Работает пока стабильно вторую неделю. Успехов в проектах.
Понравилась статья? Поделитесь ей
Наверх