Благоустрой... Вредители Выращивание 

Умный WiFi выключатель света. "Умные" Wi-Fi-выключатели света Преимущества и недостатки беспроводных выключателей

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

Сильные и слабые стороны устройства

Wi-fi выключатель света имеет следующие достоинства:

  1. Нет необходимости прокладывать дополнительный кабель.
  2. Есть возможность централизованно осуществлять управление осветительными устройствами, то есть из одной командной точки. Для того, чтобы управлять беспроводным выключателем света можно использовать смартфон, планшет, компьютер, а также пульт дистанционного управления. Для планшетов и остальных электронных устройств следует установить необходимое программное обеспечение. Его можно загрузить с интернета либо установить с диска.
  3. Большая площадь покрытия сигнала. Несмотря на стены, цифровой радиосигнал проникает в нужное помещение.
  4. Данная система является очень безопасной. Даже если конструкция устройства будет повреждена, это не грозит жильцу сильным ударом тока, ведь у Wi-fi выключателя очень незначительная сила тока.
  5. Устройство нормально работает со всеми видами лампочек (светодиодные, накаливания, энергосберегающие).
  6. Можно устанавливать разные комбинации, а также режимы работы осветительных приборов.

Если говорить о недостатках выключателей света, то их только несколько. Главные — цена намного выше обычных клавишных моделей и существует определенный риск разряда батареек в пульте, либо плохой сигнал Wi-fi.

Конструктивные особенности

В комплекте Wi-fi выключателей есть приемник и передатчик. Приемник – это реле на управлении. Можно осуществлять управление через смартфон с доступом к сети Wi-fi, либо с помощью пульта ДУ. Когда реле получает определенный сигнал, то оно замыкает цепь электропроводки. Установка реле производится возле или внутри светильника. Это возможно благодаря небольшим габаритам устройства. Причина установки прибора возле светильника заключается в том, чтобы он не выпадал из радиуса, в котором работает передатчик. Если в помещении точечное освещение, то приемник можно разместить в распределительной коробке или за подвесным потолком.

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

Виды выключателей и лучшие производители

На данное время ассортимент Wi-fi выключателей света не слишком большой. Однако продукция классифицируется по нескольким признакам:

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

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

  1. Legrand – страна изготовитель Франция. Компания имеет целую линейку продукции, которая называется Celian.
  2. Vitrum – страна производитель Италия. Эта компания применяет технологию под названием Z-Wave. Она позволяет полностью автоматизировать контроль за освещением в доме.
  3. Delumo – продукцию изготовляет российская фирма, которая в частности производит диммеры, выключатели и термостаты.
  4. Noolite – фурнитуру изготавливают белорусские производители.
  5. Livolo – страна изготовитель Китай. Данная компания выпускает специализированные приборы для автоматизации. Также в ассортиментной линейке имеется продукция как на одноместные, так и на двухместные рамки под выключатели.
  6. Broadlink (Китай). Данный производитель имеет достаточно большой выбор товара для регулирования освещением.
  7. Kopou – последняя компания, которая тоже находится в Китае. Производитель изготавливает диммеры в виде различных брелков.

На видео ниже предоставлен обзор еще одной интересной модели Wi-fi выключателя света:

Правильное подключение

Для того чтобы правильно смонтировать выключатель, необходимо знать его принцип работы, из чего состоит устройство и как подключить Wi-fi выключатель. Схема подключения данного беспроводного устройства очень проста.

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

Процесс подключения состоит всего из двух этапов:

  1. Установка приемника радиосигналов.
  2. Монтаж выключателя света (кнопки управления).

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

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

  • ноль подается на все осветительные приборы;
  • фаза разветвляется в Wi-fi выключателе;
  • фазу следует подать отдельно на каждую группу светильников.

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

«Умный» выключатель незаменим для людей с ограниченными физическими возможностями, в том числе для пожилых. Он также пригодится тем, кто часто вспоминает о невыключенном свете по пути из дома.

Принцип работы выключателя, управляемого смартфоном

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

Роль передатчика может исполнять:

  • Wi-Fi-выключатель света, размещенный на стене;
  • специальный брелок;
  • роутер (на него поступают сигналы через интернет).

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

  • отсутствие необходимости в прокладке кабеля;
  • управление всеми осветительными приборами с одного компьютера или телефона;
  • автоматическое включение/выключение освещения в установленное время по заданной программе;
  • наличие обратной связи.

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

Радиус действия прибора составляет от 30 до 160 метров. Данный показатель зависит от толщины стен. Оборудование надежно работает с лампами всех типов: накаливания, светодиодными, энергосберегающими.

Заказывайте современные «умные» Wi-Fi-выключатели света и делайте свой дом более комфортным.

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

Летом бельё сушим на балконе, зимой – в ванной комнате, достаточно вытяжной вентилятор включить. Но следить за вентилятором не всегда сподручно. Вот и решил поставить автоматику на это дело. Первый опыт внедрения оказался неудачный. Обзор был. Но я не сдался… Второй опыт более удачный, обзор тоже делал. Но в жизнь внедрить не успел. Частые командировки отнимают много времени.
Но такого подарка я не ожидал вовсе. Увидел в личке письмо с предложением сделать обзор на произведение Itead Studio. Глупо отказываться от товара на обзор, если это интересно (а уж тем более нужно) самому. Сразу после «полистал» Муську. Нашёл, как минимум, три обзора про изделия Sonoff. Я не первый:(Представляю, сколько будет голосов в комментах по поводу бесплатной печенюшки. Но плевать в спину – это удел слабых и неудачников. Поэтому этот обзор для тех, кто считает себя дееспособным.
Вот так выглядит корзина с моим выбором:


Но я допустил небольшую оплошность, не обратил внимание на текст на картинке (на красном фоне). Выключатель пришёл без пульта:(Это дополнительная опция, его надо покупать отдельно
Заказ пришёл в маленькой коробочке.


Модуль TH16 был без упаковки.

Остальное в коробочках. Но никаких инструкций не было. Это всё, что я заказал.
Человек я достаточно ленивый. Единственное, что может меня заставить что-то сделать – это обязательство перед кем-то. Говорят, что лень – двигатель прогресса. Мой двигатель – это обещание, данное кому-то. Таким образом, я убил сразу двух зайцев: написал обзор и разобрался с этими волшебными выключателями/включателями.
Немного напомню свою историю.
Когда въехал в новую квартиру, почти сразу поставил в вытяжку вентилятор с обратным клапаном. Вентилятор необходим, чтобы просушивать ванную комнату после купания. Обратный клапан нужен для предотвращения попадания в квартиру посторонних запахов от соседей (когда вентилятор молчит). И такое бывает. Вентканалы у всех индивидуальные, но цемент при кладке видно экономили. Сквозь щели, вероятно, запах и проходит.
Вентиляторы у меня есть различных вариантов. Есть простые, есть с таймером (регулировкой временнОго интервала), как на фото.


Именно таким и пользовался до сего дня.
Так как живу в многоквартирном «муравейнике», то единственное место для сушки белья – это балкон. В ванной может и затухнуть. Для сушки необходима либо низкая влажность, либо циркуляция воздуха. Выполнение обоих условий – лучший вариант. Вентилятор должен был решить эту проблему. Поначалу именно так и делал. Главное не забыть его выключить. Во время работы вентилятора необходимо приоткрывать малость окошко. Про школьную задачку с бассейном и двумя трубами напоминать не надо? Чтобы воздух выходил в вытяжку, необходимо, чтобы он откуда-то входил в квартиру. У кого окна деревянные, а не пластиковые, проблем не будет. Щелей хватит. А вот с пластиковыми квартира превращается в террариум.
Тут я и задумался об автоматизации процесса…
Печальным опытом реализации своей идеи я уже делился. Вот тот модуль. Он работать не может в ПРИНЦИПЕ.


Схему модуля я тоже рисовал.


В основе схемы лежит компаратор на LM393. С виду всё должно работать. Но есть одно но. Датчик необычный. Он меняет своё сопротивление по отношению к частоте. Чтобы снять показания, необходимо подать на него частоту (нормируемая величина 1кГц). Вот такая печаль.
На одном из сайтов было три коммента от одного пользователя по этому поводу:

Странно, это же стандартный датчик из ардуиновской периферии - должно работать.
Проверить пока нечем - не особо интересует влажность, потому пока у меня такого датчика нет. :)
Закажу при случае и отпишусь…
…У меня нет ни одного ардуиновского модуля который бы не работал.
Куплю на пробу, может и себе сделаю метеостанцию…
…думаете это делали бы если они были нерабочие?
Прошёл год…
Видимо, и не дождусь.
Перехожу к посылке.
Страница магазина с модулем TH выглядит так:

На ней можно выбрать модули Sonoff TH в зависимости от тока реле, а также модули влажности и температуры. Что именно выбрал я, вы видите. Модуль влажности в отдельной продаже на странице магазина я не нашёл (возможно, плохо искал). Поэтому при заказе будьте внимательны…


Никакой инструкции тоже не было (уже писал).
В магазине есть страничка помощи wiki:

Там есть всё, даже схема:

Размером небольшой.


Взвесил, 79г.


Начинаю разбор.
Сюда подключаются сетевые провода 220В.


Контакторы пружинные, очень тугие. Но, по мне, с винтом надёжнее.
Корпус держится на защёлках.


Всё по уму. Замечаний не имею.
Открутил 4 самореза.


Wi-Fi узел построен на ESP8266 (кто бы сомневался). Для асов целое поле для деятельности. Главное, чтоб голова работала. Остальное уже всё сделано. Не надо городить отдельное питание модуля, искать коробочку тоже не надо. Всё в сборе и работает.




Плата промыта. Следов флюса нет. По входу стоит предохранитель и варистор 10D471K от перенапряжения (расшифровка - диаметр 10 мм, напряжение 470 Вольт).

Давно такого не видел. Всё собираю в исходное.
Перехожу к модулю влажности. Этот пришёл в коробочке. Что на ней написано (на коробочке), можете почитать. Фото позволяют это сделать.

Модуль непривычно крупный.

Подключается посредством разъёма, как у наушников.


Получается таким образом.


Всё основное написано на корпусе.


В магазине есть страничка помощи wiki (уже писал):
- Temperature and humidity module
AM2301 Product Manual
На датчик температуры тоже есть мануал:
- DS18B20 - Programmable Resolution 1-Wire® Digital Thermometer
Его я не заказывал. Он мне не интересен. Плюс ко всему прочему AM2301 более универсален. В нём есть и датчик температуры и датчик влажности. Более того, в корпусе TH10/16 только одно отверстие под выносной модуль.
Разбираю AM2301. Корпус на четырёх защёлках.


С одной стороны модуля датчик температуры, влажности и кварц.


Основная схема на обратной стороне.

Этот модуль я тоже собираю.
И, наконец, smart-переключатель Sonoff RF.



Тоже никакой инструкции. Размером ещё меньше, чем Sonoff TH.


Взвесил: 49г.



Для меня особого интереса не представляет. Но что внутри, покажу.

Корпус тоже на защёлках. Последовательность разбора вы видите.
Контакторы под винт. По мне, очень удобно.


По входу стоит варистор 10D471K от перенапряжения (расшифровка - диаметр 10 мм, напряжение 470 Вольт), как и в модуле ТН.


Узел питания с гальванической развязкой от сети. Даже пропилы в плате сделали.
Плата промыта. Следов флюса нет.


Всё по уму. И здесь замечаний не имею.
И здесь WiFi узел построен на ESP8266.


Радиомодуль в виде отдельной платы.


Всё собираю в исходное.
Пора переходить к делу.
Собираю тренировочную схему. Модуль Sonoff TH подключаю к сети. Подключение не для всех очевидное. Поэтому смотрим картинку на странице магазина.

По такой схеме у нас работает мало приборов. Поэтому на «лишние» провода я поставил красный крестик.
На выход подвешиваю вентилятор.
С Sonoff RF намного проще. На выход подключаю обыкновенную лампочку для контроля.


Осталось всё это дело связать со смартфоном.
Smart-переключатели поддерживает удалённое управление по Wi-Fi, но только через облако:(
Пришло время привязать их к управляющему приложению eWeLink. Для этого его необходимо сначала скачать:) Устанавливаем, регистрируемся…
Учётная запись создана.
Сначала подключаю Sonoff TH. Запускаю приложение и следую инструкциям.
Чтобы добавить устройство нажимаю на плюсик. Далее нажимаем на беленькую кнопочку и удерживаю около 5 секунд. Синий светодиод должен равномерно замигать. Именно равномерно! Он может «войти в транс»:) и начать подавать непонятные сигналы. В этом случае нажимаем и удерживаем снова.


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


Выключатель «привязан» к моему аккаунту.
Аналогично с Sonoff RF. После привязки картинка на смартфоне выглядит так. Можно включать и выключать нагрузку, нажимая на кнопочки. Три картинки: выключен, включен и не подключен к 220В (офлайн)


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


Но это всё ручной режим. Для того чтобы войти в автоматический режим и попасть в настройку параметров включения и выключения переключателя, необходимо перевести рычажок (Авто-Вручную) в положение авто.


А уж в настройках ставлю то, что нужно.
Поясню картинки. Сейчас 55% влажности и температура 18˚С (выносной модуль на подоконнике). Переключатель выключен. При этом температура и влажность отслеживается онлайн, независимо от того в каком режиме работает переключатель (ручной или авто).
Поясню то, что я задал.
При достижении влажности 65% переключатель включится (вентилятор). При достижении влажности 60% - выключится. Можно и наоборот сделать (для увлажнителя).


Это для тех, у кого очень низкая влажность зимой.
При достижении влажности 30% переключатель включится (режим увлажнитель). При достижении влажности 40% - выключится.
Все уставки согласно ГОСТ 30494-96 «Здания жилые и общественные».


Обратите внимание на оптимальную влажность зимой. Это вовсе не 60% как многие думают! 60% - всего лишь допустимая, выше нельзя, необходимо уже бороться. ОПТИМАЛЬНАЯ 30-45%
Можно управлять переключателем по таймеру. Их два варианта.


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

Немного про smart-переключатель Sonoff RF.
Отличается от Sonoff TH тем, что имеет радиомодуль (может управляться с помощью пульта, которого у меня нет). Также у него нет возможности работать с датчиком влажности и температуры. Остальное одинаково: управление по Wi-Fi с возможностью установки таймера.
Виртуальный пульт немного отличается.


В автоматическом режиме тоже (как у ТН) два вида таймеров.


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

При установке приложения на несколько телефонов управлять можно со всех, но только если на каждом из них выполнить вход в eWeLink под одним логином и паролем.
В конце подведу небольшой итог.
Smart-переключатели поддерживает удалённое управление по Wi-Fi, но только через облако:(Необходимо их привязывать к управляющему приложению eWeLink. А если какой-нибудь добрый дядя Ляо захочет управлять вашим умным домом? Для тех, кто ему не доверяет, придётся создать свой MQTT сервер, и включать/выключать нагрузку по своему желанию и правилам. Для тех, кто владеет навыками программирования, это не сложно. Для тех, кто спокойно относится к подобной проблеме – просто подключайте и пользуйтесь. Мне, например, всё-равно при управлении вентилятором в ванной комнате. Но когда время дойдёт до полноценного «Умного дома», буду что-то думать.
На этом всё.
Эти модули идеально подойдут для работы с вентилятором, кондиционером, увлажнителем воздуха. Можно организовать умную систему полива на даче. Даже газовым котлом можно управлять по времени и по заданной температуре в комнате.
Как правильно распорядиться сведениями из моего обзора каждый решает сам. Кому что-то неясно, задавайте вопросы. Надеюсь, хоть кому-то помог. Возможно, кто-то захочет помочь мне. Я буду очень благодарен.

Удачи всем!
Проверка на работоспособность и потрошка:

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Планирую купить +69 Добавить в избранное Обзор понравился +32 +69

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

Немного лирики в начале. Идея «умного» выключателя света совсем не нова и, наверное, это первое, что приходит в голову тем, кто начал знакомство с платформой 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. Работает пока стабильно вторую неделю. Успехов в проектах.