Умный WiFi выключатель света. Беспроводный выключатель, что это такое и стоит ли его устанавливать 3 х фазный wi fi выключатель

  • Tutorial

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

Примерный план (посмотрим по ходу действия) ожидается следующий:

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

Начало

На текущий момент имеются следующие вводные:
  1. Хочется реализовать удаленное управление светом и вытяжкой.
  2. Выключатели есть одно- и двух-секционные (свет и свет+вытяжка).
  3. Выключатели установлены в стене из гипсокартона.
  4. Вся проводка - трехпроводная (присутствует фаза, нуль, защитное заземление).
С первым пунктом - все понятно: нормальные желания надо удовлетворять.

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

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

Четвертый пункт - существенно облегчает поиск источника питания (220В есть «под рукой»).

Принципы и элементная база

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

Для этого обычные двухпозиционные (включено-выключено) выключатели заменим на аналогичные по дизайну выключатели без фиксации (кнопки):


Эти выключатели работают примитивно просто: когда клавиша нажата - пара контактов замкнуты, когда клавишу отпускаем - контакты размыкаются. Очевидно, что это обычная «тактовая кнопка» (собственно так ее и будем обрабатывать).

Теперь практически становится понятно, как это реализовать «в железе»:

  • берем МК (atmega8, atmega168, atmega328 - использую то, что есть «прямо сейчас»), в комплекте с МК добавляем резистор для подтяжки RESET к VCC,
  • подключаем две «кнопки» (для минимизации количества навесных элементов - будем использовать встроенные в МК резисторы подтяжки), для коммутации нагрузки воспользуемся реле с подходящими параметрами (у меня как раз были припасены реле 833H-1C-C с 5В управлением и достаточной мощностью коммутируемой нагрузки - 7A 250В~),
  • естественно, нельзя обмотку реле напрямую подключить к выходу МК (слишком высокий ток), поэтому добавим необходимую «обвязку» (резистор, транзистор и диод).
Микроконтроллер будем использовать в режиме работы от встроенного осциллятора - это позволит отказаться от внешнего кварцевого резонатора и пары конденсаторов (чуть сэкономим и упростим создание платы и последующий монтаж).

Радиоканал будем организовывать с помощью nRF24L01+:


Модуль, как известно, толерантен к 5В-сигналам на входах, но требует для питания в 3.3В, соответственно, в схему добавим еще линейный стабилизатор L78L33 и пару конденсаторов к нему.

Дополнительно добавим блокировочные конденсаторы по питанию МК.

МК будем программировать через ISP - для этого на плате модуля предусмотрим соответствующий разъем.

Собственно, вся схема описана , осталось только определиться с выводами МК, к которым будем подключать нашу «периферию» (радиомодуль, «кнопки» и выбрать пины для управления реле).

Начнем с вещей, которые уже фактически определены:

  • Радиомодуль подключается на шину SPI (таким образом, подключаем пины колодки с 1 по 8 на GND, 3V3, D10 (CE), D9 (CSN), D13 (SCK), D11 (MOSI), D12 (MISO), D2 (IRQ) - соответственно).
  • ISP - вещь стандартная и подключается следующим образом: подключаем пины разъема с 1 по 6 на D12 (MISO), VCC, D13 (SCK), D11 (MOSI), RESET, GND - соответственно).
Дальше остается определиться только с пинами для кнопок и транзисторов, управляющих реле. Но не будем торопиться - для этого подойдут любые пины МК (как цифровые, так и аналоговые). Выберем их на этапе трассировки платы (банально выберем те пины, что будут максимально просто развести до соответствующих «точек»).

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

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

Сформируем «список покупок» (BOM - bill of materials) для «двухканального» модуля:
  • микроконтроллер - atmega168 в корпусе TQFP32 - 1 шт.
  • транзистор - MMBT2222ALT1 в корпусе SOT23 - 2 шт.
  • диод - 1N4148WS в корпусе SOD323 - 2 шт.
  • стабилизатор - L78L33 в корпусе SOT89 - 1 шт.
  • реле - 833H-1C-C - 2 шт.
  • резистор - 10кОм, типоразмер 0805 - 1 шт. (подтяжка RESET к VCC)
  • резистор - 1кОм, типоразмер 0805 - 1 шт. (в цепь базы транзистора)
  • конденсатор - 0.1мкФ, типоразмер 0805 - 2 шт. (по питанию)
  • конденсатор - 0.33мкФ, типоразмер 0805 - 1 шт. (по питанию)
  • электролитический конденсатор - 47мкФ, типоразмер 0605 - 1 шт. (по питанию)
Дополнительно к этому потребуются клеммники (для подключения силовой нагрузки), колодка 2х4 (для подключения радиомодуля), разъем 2х3 (для ISP).

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

Поскольку вся схема уже практически «сформирована» (по крайней мере, в голове), можно приступать к проектированию нашего модуля.

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

Проектирование

Для этого воспользуемся замечательной программой - EAGLE .

На мой взгляд - очень простая, но в то же время - очень удобная программа для создания принципиальных схем и печатных плат по ним. Дополнительные «плюсы» в копилку EAGLE: мультиплатформенность (мне приходится работать как на Win-, так и на MAC-компьютерах) и наличие бесплатной версии (с некоторыми ограничениями, которые для большинства «самодельщиков» покажутся совершенно несущественными).

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

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

Схема :

  • Создаем новый проект, внутри которого добавляем «схему» (пустой файл).
  • Добавляем МК и необходимую «обвеску» (подтягивающий резистор на RESET, блокировочный конденсатор по питанию и т.п.). Обращаем внимание на корпуса (Package) при выборе элементов из библиотеки.
  • «Изображаем» ключ на транзисторе, который управляет реле. Копируем этот кусок схемы (для организации «второго канала»). Входы ключей - пока оставляем «болтаться в воздухе».
  • Добавляем на схему разъем ISP и колодку для подлючения радиомодуля (делаем соответствующие соединения в схеме).
  • Для питания радиомодуля добавляем в схему стабилизатор (с соответствующими конденсаторами).
  • Добавляем «разъемы» для подключения «кнопок» (один пин разъема сразу «заземляем», второй - «болтается в воздухе»).
После этих действий у нас получается полная схема, но пока остаются неподключенными к МК транзисторные ключи и «кнопки».
  • Размещаю клеммники для подключения силовой нагрузки.
  • Правее клеммников - реле.
  • Еще правее - элементы транзисторных ключей.
  • Стабилизатор питания для радиомодуля (с соответствующими конденсаторами) размещаю рядом с транзисторными ключами (в нижней части платы).
  • Размещаю колодку для подключения радиомодуля снизу справа (обращаем внимание на то, в каком положении окажется сам радиомодуль при паравильном подключении к этой колодке - по моей задумке он должен не выступать за пределы основной платы).
  • Разъем ISP размещаю рядом с разъемом радиомодуля (поскольку используются одни и те же «пины» МК - чтобы было проще разводить плату).
  • В оставшемся пространстве располагаю МК (корпус надо «покрутить», чтобы определить наиболее оптимальное его положение, чтобы обеспечить минимальную длинну дорожек).
  • Блокировочные конденсаторы размещаем максимально близко к соответствующим выводам (МК и радиомодуля).
После того, как элементы размещены на своих местах - делаю трассировку проводников. «Землю» (GND) - не развожу (позже сделаю полигон для этой цепи).

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


Расположение чипа МК на плате у меня как раз соответствует картинке выше (только повернут на 45 градусов по часовой стрелке), поэтому мой выбор следующий:
  • Транзисторные ключи подключаем на пины D3, D4.
  • Кнопки - на A1, A0.
Внимательный читатель увидит, что на схеме ниже фигурирует atmega8, в описании упоминается atmega168, а на картинке с чипом - вообще amega328. Пусть это вас не смущает - чипы имеют одинаковую распиновку и (конкретно для этого проекта) взаимозаменяемы и отличаются только количеством памяти «на борту». Выбираем то, что нравится/имеется (я в последствии в плату запаял 168 «камушек»: памяти побольше, чем у amega8 - можно будет побольше логики реализовать, но об этом во второй части).

Собственно, на этом этапе схема принимает финальный вид (делаем на схеме соответствующие изменения - «подключаем» ключи и кнопки на выбранные пины):


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


У меня получилась платка размером 56х35мм.
Архив со схемой и платой для Eagle версии 6.1.0 (и выше) находится по ссылке .

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

Изготовление печатной платы

Плату делаю методом ЛУТ (Лазерно-Утюжная Технология). В конце поста есть ссылка на материалы, которые мне очень помогли.

Приведу для порядка основны шаги по изготовлению платы:

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

Тонер смываю ацетоном.

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

Контроль качества

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

Для самоуспокоения - контроль тестером всех соседствующих проводников (удобно пользоваться режимом «прозвонка», когда при «коротком замыкании» тестер подает звуковой сигнал).

Если все-таки где-то обнаружен ненужный контакт - исправляю это острым ножом. Дополнительно обращаю внимание на возможные «микротрещины» (пока просто фиксирую их - исправлять буду на этапе лужения платы).

Лужение, сверление

Я предпочитаю плату перед сверлением залудить - так мягкий припой позволяет чуть проще сверлить и сверло на «выходе» из платы меньше «рвет» медные проводники.

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

Когда все готово - отмываю плату с обычным жидким мылом.


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


А вот с переходными отверстиями (я их делаю сверлом 0,6мм) несколько сложнее - выходное отверстие, как правило, получается немного «рваным» и это может приводить к нежелательному разрыву проводника.
Тут можно посоветовать делать каждое отверстие за два прохода: засверлить сначала с одной стороны (но так, чтобы сверло не вышло с другой стороны платы), а затем - аналогично с другой стороны. При таком подходе «соединение» отверстий произойдет в толще платы (и небольшая несоосность не будет проблемой).

Монтаж элементов

Сначала распаиваются межслойные перемычки.
Там где это просто переходные отверстия - просто вставляю кусочек медной проволоки и запаиваю его с двух сторон.
Если «переход» осуществляется через одно из отверстий для выводных элементов (разъемы, реле и т.п.): распускаю многожильный провод на тонкие жилы и аккуратно запаиваю кусочки этой жилы с двух сторон в тех отверстиях, где нужен переход, при этом минимально занимая пространство внутри отверстия. Это позволяет реализовать переход и отверстия остаются достаточно свободными для того, чтобы соответствующие разъемы нормально встали на свои места и были распаяны.

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

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

Теперь можно приступать непосредственно к монтажу элементов.

Мой принцип: «снизу вверх» (сначала распаиваю наименее высокие компоненты, потом те, что «повыше» и те, что «высокие»). Такой подход позволяет с меньшими неудобствами разместить все элементы на плате.

Таким образом, сначала распаиваются SMD-компоненты (я начинаю с тех элементов, у которых «больше ног» - МК, транзисторы, диоды, резисторы, конденсаторы), потом дело доходит и до выводных компонентов - разъемов, реле и т.п.

Таким образом, получаем уже готовую плату.

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

Летом бельё сушим на балконе, зимой – в ванной комнате, достаточно вытяжной вентилятор включить. Но следить за вентилятором не всегда сподручно. Вот и решил поставить автоматику на это дело. Первый опыт внедрения оказался неудачный. Обзор был. Но я не сдался… Второй опыт более удачный, обзор тоже делал. Но в жизнь внедрить не успел. Частые командировки отнимают много времени.
Но такого подарка я не ожидал вовсе. Увидел в личке письмо с предложением сделать обзор на произведение 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 Правил сайта.

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

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

Еще недавно такие технологии были недоступны из-за высокой цены и ограниченности производства.

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

Для чего нужен беспроводной выключатель?

Дистанционные системы, обеспечивающие управление теми или иными устройствами на расстоянии, получают все большее распространение. Беспроводный настенный выключатель не исключение.

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

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

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

Сфера применения

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

Они отличаются стильным внешним видом и устанавливаются в течение нескольких минут.

Применение таких изделий актуально в следующих случаях:


Разновидности

Беспроводные выключатели не отличаются многообразием, но определенный выбор все-таки имеется.

Они классифицируются по трем основным признакам:

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

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


Устройство и принцип работы основных элементов устройства

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


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

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

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

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

Управление светом производится следующими способами:

  • Путем прикосновения к специальной сенсорной панели;
  • Нажатием на механическую кнопку;
  • Подачей сигнала с пульта ДУ или телефона.

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

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

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

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

Чаще всего сигнал передается на расстояние от двадцати до двадцати пяти метров. Передатчик питается от батареек.

Недостаток пульта управления в том, что он постоянно теряется и управление освещением приходится осуществлять вручную.

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

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

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

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

Несмотря на удобство применения, беспроводные выключатели нагрузки (в нашем случае освещения) имеют не только преимущества, но и недостатки. Но обо всем подобнее.

  • Легкость монтажа. Для установки и подключения не требуется долбить стены и прокладывать отдельную «ветвь» электрической проводки.
  • Возможность управления сразу несколькими источниками света с пульта ДУ или через смартфон.
  • Большой диапазон действия. Сигнал управления на открытом участке может достигать приемника на расстоянии до 30 метров. При этом стены или предметы мебели не являются препятствием.
  • Безопасность для взрослых и детей. Даже случайное повреждение конструкции не несет рисков для здоровья. Рабочий ток в беспроводных дистанционных выключателях минимален и не опасен для здоровья.
  • Стоимость таких изделий выше, чем классических «проводных» выключателей. Приверженцы экономии и консерваторы отдают предпочтение привычным изделиям.
  • Невозможность управления из-за разряда батарейки в пульте ДУ или невозможность управления по причине слабой Wi-Fi связи.

Особенности и принцип работы дистанционного выключателя света

Более подробно остановимся на беспроводной системе управления. Она включает в себя комплект оборудования, который применяется для управления уровнем освещенности в квартире или доме.

Для управления используется не стандартный выключатель, а специальный пульт ДУ или телефон (про это частично упоминалось выше).

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

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

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

В основе дистанционного выключателя лежит радиопередатчик. Именно он передает сигнал о включении/отключении на осветительные устройства.

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

Радиопередатчик получает сигнал с пульта ДУ, а далее передает его на источники света. Пульт ДУ, как правило, имеет два канала, но бывают и восьмиканальные модели.

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

В комплект с беспроводным дистанционным устройством часто включается радиолокатор. Он применяется для подключения пульта и розеток. С его помощью управление может производиться через мобильный телефон. Такие устройства получили название GSM-выключателей.

Управление может производиться одним из следующих способов:


Характеристики, на которые стоит обращать внимание при выборе

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

  • Тип лампочек, которым управляет устройство;
  • Материал, цвет и внешний вид корпуса;
  • Рабочее напряжение;
  • Число каналов;
  • Радиус действия;
  • Габариты;
  • Номинальный ток;
  • Комплектация.

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

  • Рабочий диапазон частот;
  • Способ передачи сигнала;
  • Наличие кодировки;
  • Тип питания передатчика;
  • Расчетное время замены батареи;
  • Способ крепежа;
  • Рабочий диапазон температур;
  • Цена.

Что предлагает рынок?

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

Ниже рассмотрим лишь несколько моделей, которые предлагает рынок:

  • Fenon TM-75 - выключатель с дистанционным управлением, выполненный из пластика и рассчитанный на напряжение 220 В. К особенностям устройства стоит отнести наличие двух каналов, 30-метровый радиус действия, наличие пульта ДУ и функцию включения с задержкой.
    К каждому каналу можно подключить по группе осветительных приборов и управлять ими. Беспроводный выключатель Fenon TM-75 можно использовать с люстрами, точечными, светодиодными и , а также другими приборами, работающими от 220 Вольт.
  • Inted 220V - беспроводный радиовыключатель, предназначенный для крепления на стене. Он имеет одну клавишу и устанавливается в комплексе с приемным блоком. Рабочее напряжение изделия составляет 220 Вольт, а радиус действия 10-50 метров. Крепление беспроводного выключателя света производится с помощью саморезов или на двухсторонний скотч. Корпус выполнен из пластика.
  • INTED-1-CH - выключатель света с дистанционным управлением от ДУ. С помощью этой модели можно управлять источниками света дистанционно. Мощность ламп может составлять до 900 Вт, а рабочее напряжение изделия равно220 В. С помощью радиовыключателя можно управлять оборудованием, включать и отключать свет или сигнализацию. В основе изделия лежит приемник и передатчик. Последний имеет вид брелока, имеющего небольшой размер и передающего сигнал на расстояние до 100 м. Корпус изделия не имеет защиты от влаги, поэтому при монтаже на улице необходимо предусмотреть дополнительную защиту.
  • Беспроводный сенсорный выключатель с управлением через пульт ДУ. Изделие крепится на стене, отличается небольшими габаритами и выполнено из закаленного стекла и ПВХ. Рабочее напряжение составляет от 110 до 220В, а номинальная мощность - до 300 Вт. В комплектацию входит выключатель, пульт ДУ и болты для крепления аксессуара. Средний цикл жизни составляет 1000 нажатий.
  • Inted 220 В на 2 приемника - беспроводный выключатель освещения для крепления на стене. Управление производится с помощью двух клавиш. Корпус выполняется из пластика. Рабочее напряжение составляет 220 В. Количество независимых каналов - 2.
  • BAS-IP SH-74 - беспроводный радиовыключатель, имеющий два независимых канала. Управление производится с помощью мобильного телефона на операционной системе Андроид. Для работы необходимо установить приложение BAS. Модель SH-74 применяется для управления лампами накаливания, имеющими мощность до 500 Вт, а также лампочками дневного света (ограничение по мощности - 200 Вт).
  • Feron TM72 - беспроводный выключатель, управляющий освещением на расстоянии до 30 метров. Источники света объединяются на приемный блок, а включение и отключение производится с помощью пульта. В модели TM72 предусмотрено два канала, к каждому из которых можно подключить определенную группу устройств. Изделие имеет большой запас по мощности на один канал (до 1 кВт), что позволяет подключать различные типы источника света. Большим плюсом модели является наличие задержки, равной от 10 до 60 секунд.
  • Беспроводный 3-канальный выключатель на 220В Smartbuy предназначен для подключения источников света на три канала с ограничением по мощности до 280 Вт. Номинальное напряжение питания составляет 220 В. Управление производится от пульта ДУ, имеющего диапазон действия, равный 30 метрам.
  • Z-Wave CH-408 - радиовыключатель настенного типа, позволяющий программировать различные сценарии управления световыми приборами. При необходимости к нему можно подключить до восьми выключателей. Из дополнительных возможностей стоит выделить управление Z-Wave устройствами (до 80-ти) и удобство настройки вне зависимости от главного контроллера. Устройство питается от двух батареек, при разряде которых подается соответствующий сигнал. Обновление прошивки производится по сети Z-Wave. Максимальное расстояние до контроллера не должно превышать 75 метров. Класс защиты - IP-30.
  • Feron TM-76 - беспроводный выключатель освещения, который управляется дистанционно с помощью радиосигнала. Приемник соединяется с источниками света, а пульт ДУ управляет приемным блоком на расстоянии до 30 метров. Модель Feron TM-76 имеет три независимых канала, к каждому из которых можно подключить свою группу осветительных приборов. Управление в этом случае будет производиться раздельно, с помощью пульта. Максимальный запас мощности составляет до 1 кВт, что позволяет подключать лампы различных типов (в том числе и накаливания). Рабочее напряжение составляет 220 В.

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

Рассмотрим порядок подключения беспроводного выключателя на примере Zamel RZB-04.

В комплект поставки модели входят следующие элементы:

  • 2-канальный радиоприемник небольших размеров (тип ROP-02);
  • 2-канальный 4-х режимный радиовыключатель (тип RNK-04);
  • Крепление для установки изделия (дюбели с саморезами, а также вспененный двухсторонний скотч).

Приемник может работать в пяти разных режимах:

  • Включение. При включении клавиши происходит зажигание одного или нескольких светильников. Настроить включение можно на любое из положений клавиш.
  • Отключение. Принцип аналогичен тому, что рассмотрен выше. Разница в том, что при нажатии на клавишу происходит выключение света.
  • Моностабильный. В этом режиме свет будет гореть только в период нажатия кнопки. После его отпускания происходит отключение лампы.
  • Бистабильный. В этом случае каждое нажатие приводит к изменению состояния - включение и отключение происходит циклически.
  • Временный. Здесь после нажатия на клавишу свет будет гореть определенное время. Эта опция полезна при установке беспроводного выключателя в подъезде, спальне или длинном коридоре. При входе можно зажечь свет, пройти определенное расстояние (дойти до кровати), после чего свет отключится.

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

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

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

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

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

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

По ней видно, как подключить устройство:

  • К контакту «L» необходимо подвести фазный провод. При этом проводить его через выключатель не нужно - изделие работает в постоянном режиме.
  • К клемме «N» подключите нулевой проводник, который берется из распределительной коробки.
  • К контакту «OUT1» подсоединяется фаза, которая идет на группу или один светильник. Здесь потребуется 0-ой проводник, который можно взять с распредкоробки или приемника (клемма N).
  • К «OUT2» подключите фаза, которая идет ко второй группе или одному светильнику. Как и в прошлом случае, ноль берется из распредкоробки или с клеммника N приемника.
  • К «INT1» подведите импульсный выключатель. Особенность в том, что при нажатии он отправляет только кратковременный сигнал. После срабатывания меняется режим работы 1-й группы светильников. Благодаря этой особенности, приемником ROP-02 можно управлять с применением пульта или стационарного импульсного выключателя.
  • К «INT2» требуется подключить импульсный выключатель (один или группу). После нажатия на него будет меняться режим работы 2-й группы. Принцип здесь такой же, как описан выше.

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

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

Для программирования такого режима сделайте следующее:


Перепрограммирование второй кнопки производится по аналогичному принципу. Разница в том, что все манипуляции будут производиться со второй (незапрограммированной) клавишей.

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

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

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

Монтаж беспроводного дистанционного выключателя завершен, и можно ставить контрольную лампу, после чего проверять работоспособность системы.

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

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

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

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

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

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

Я использовал для этих целей