Выключатель сенсорный с wi fi. "Умные" 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. Работает пока стабильно вторую неделю. Успехов в проектах.

23.02.2017

В современных умных домах идеальна каждая деталь, разработано все на современных технологиях и, конечно же, в каждом умном доме есть Wi-Fi. Так зачем ставить какие-то другие технологии и беспроводные сети, если можно поставить беспроводные кнопки с встроенным Wi-Fi?

Схема работы:

Минусы и плюсы использования:

Не все так просто. В этом решении есть несколько больших минусов: Комфорт! Технологии которые сейчас используются в WI-FI выключателях требуют наличия нулевого провода, что очень большая редкость в проводке на всей территории СНГ. И большинство выключателей просто не смогут работать. Есть так же выключатели на батареях, но на сегодняшний момент разработчикам ясно, что в случае беспроводного выключателя по Wi-Fi сам выключатель будет потреблять довольно много и батареи хватит максимум на месяц. Хватит ли у Вас терпение менять каждый раз батарею?

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

Третий самый опасный минус - Безопасность! То, что любую сеть Wi-Fi не сегодня, так завтра взломают. Пусть выключатели защищены на все 100% 32 разрядным кодом. Все остальные механизмы имеют WPA2 максимум шифрование, ее то обычно взламывают в первую очередь.

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

Отзывы

Рассматривал несколько систем Умного дома. Смогли предложить сразу три варианта. Легко идут на общение, ну вот как то понимаешь, что сделают. Не стал ничего выдумывать, сделал управление через IPAD.

Александр, 02.06.2015

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

Умный дом

от 99 тысяч рублей Предлагаем минимум 3 решения заявки.

Один пульт

Реализуем управление всеми системами Умного дома через iPad, iPhone и Android.

Одна клавишная панель

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

Действительно лучшая цена

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

Опытные проектировщики

Выполнено 32 объекта, от промышленных объектов до квартир.

Быстрое согласование проекта за 14 дней

Делаем качественно, со всеми требованиями Ростехнадзора и Управляющих компаний.

У нас свой склад

95% оборудования для Вашего Умного дома уже в наличие на нашем складе. И только 5% оборудования мы покупаем у сторонних поставщиков.

Батарейка не сядет

90% решений проводные. Дублируемое управление и с клавиш и с беспроводных панелей iOS (Ipad, IPhone) и Android.

Здравствуйте, уважаемые читатели и гости сайта «Заметки электрика».

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

Но сегодня Ваше внимание я хотел бы обратить на реле (переключатель) Sonoff версии Basic с возможностью управления прямо c мобильного телефона через сеть Wi-Fi или Интернет.

Реле Sonoff Basic представляет из себя небольшое по габаритам устройство (88х38х23 мм), которое без проблем можно разместить за потолочным пространством, в строительной нише, или чаше люстры или светильника.

Его стоимость на момент выхода статьи составляет чуть меньше 300 рублей. Как Вы понимаете, это вполне приемлемые деньги, к тому же за такой современный девайс. Приобрел я его на всем известной торговой площадке АлиЭкспресс (ссылочка будет в конце статьи).

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

Реле Sonoff имеет следующие технические характеристики, часть которых отображена прямо на его корпусе:

  • максимальный ток управляемой нагрузки 10 (А)
  • напряжение питания от 90 (В) до 250 (В)
  • стандарт беспроводной связи 802.11 b/g/n
  • протокол безопасности WPA-PSK/WPA2-PSK
  • температура эксплуатации от 0°С до 40°С
  • масса около 50 г

Возможности реле Sonoff Basic:

  • управление нагрузкой через Wi-Fi
  • управление нагрузкой через Интернет
  • управление нагрузкой по заданному таймеру, как с прямым, так и с обратным отсчетом
  • управление нагрузкой с нескольких мобильных телефонов

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

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

Итак, поехали.

Установка и подключение реле Sonoff

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

Для крепления реле к поверхности у него имеются два крепежных отверстия.

Схема подключения реле Sonoff очень простая.

На клеммы (L) и (N) со стороны (Input-Вход) подключается, соответственно, фаза и ноль питающего напряжения 220 (В). Естественно, что при подключении не забываем про .

Обратите внимание, что подключаемые жилы должны быть сечением не больше 1,5 кв.мм. Но я все же попробовал подключить жилы сечением 2,5 кв.мм. В результате, жесткий (однопроволочный) провод еще можно подключить без проблем, а вот гибкий (многопроволочный) со уже с большим трудом вставляется в клемму, так что пришлось его даже не много сплющить и деформировать.

Для примера я использовал питающий кабель марки ПВС, который как раз таки имеет сечение 2,5 кв.мм. На другом конце кабеля имеется вилка, которую в дальнейшем я подключу в любую розетку с напряжением 220 (В).

На клеммы (L) и (N) со стороны (Output-Выход) подключается, соответственно, фаза и ноль нагрузки.

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

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

Вот так получается все красиво и аккуратно. Реле Sonoff подключено.

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

Вот простенький пример схемы подключения реле Sonoff для группы светильников.

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

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

Будет это выглядеть примерно вот так.

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

А теперь рассмотрим все возможности управления реле Sonoff более подробнее.

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

Управление нагрузкой через телефон по сети Wi-Fi

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

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

Для реализации возможности управления нагрузкой через Wi-Fi и Интернет необходимо установить на телефон мобильное приложение eWeLink. Это приложение можно найти, как для устройств с Android, так и с iOS. Для облегчения поиска приложения можно воспользоваться необходимыми QR-кодами на упаковке.

Для устройств с Android приложение eWeLink можно бесплатно скачать с Google Play и без особых проблем установить себе на телефон. Интерфейс программы поддерживает русский язык.

Для устройств с iOS данное приложение доступно в App Store. Скачивать и устанавливать данное приложение на iPhone или iPAD я не пробовал, поэтому, кто опробовал данное приложение на устройствах с iOS, отпишитесь пожалуйста в комментариях о результатах.

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

После этого на почту придет проверочный код (действителен 30 минут), который необходимо ввести в соответствующей строке «Email код». На этой же страничке необходимо ввести пароль для входа в свой будущий аккаунт (не менее 8 символов).

Кстати, на почтовые сервисы Mail.ru и Mail.yandex.ru (Яндекс-почта) письма доходят без проблем. Но насколько я осведомлен, то на почтовый сервис Gmail.ru (Гугл-почта) письма с проверочным кодом доходят не всегда, так что учтите данный момент.

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

Теперь необходимо выбрать из списка нашу Wi-Fi сеть и ввести от нее пароль. Чтобы каждый раз не вводить пароль, то можно поставить галочку «Запомнить пароль». Нажимаем «Далее», после чего начнется поиск нашего устройства и его регистрация (по времени это заняло у меня не более 2-3 минут).

После успешного сопряжения, реле автоматически передает данные на китайское облако (Amazon AWS или Coolkit), что дает возможность управлять им через Интернет. Но к этому я еще вернусь чуть позже.

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

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

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

Теперь можно попробовать включить реле через телефон. Для этого нажимаем на «Реле 1». Тут же появилась красная надпись о том, что необходимо обновить приложение eWeLink, хотя в Google Play обновление не отображается.

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

Запомните!!! Главное условие работы реле — это наличие доступа в Интернет.

Если вдруг пропадет доступ в Интернет, то на корпусе реле начнет мигать зеленый светодиод, а в приложении на его вкладке отобразится режим Offline (Офлайн), т.е. не доступен для управления.

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

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

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

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

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

  • однократный (разовое срабатывание по заданной дате и времени)
  • повторный (периодические срабатывания по заданной дате и времени, в том числе с указанием конкретных дней недели)

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

Помимо прямого и обратного таймеров, во вкладке «Настройки» (три точки в правом углу) имеется цикличный таймер.

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

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

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

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

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

А можно ли управлять реле сразу с нескольких телефонов?

Можно! Естественно, что при этом на каждый телефон необходимо установить приложение eWeLink.

Здесь есть два варианта. Первый вариант, это заходить в приложение eWeLink под одинаковым именем и паролем с разных телефонов и управлять реле.

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

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

Управление нагрузкой через Интернет

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

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

Немного об облаке.

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

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

Кстати, если Вам необходимо аналогичное устройство, но с дополнительной функцией радиоуправления с пульта, то можно заказать реле Sonoff версии RF.

Если Вы хотите управлять нагрузкой там, где нет вообще сети Интернет, то можно воспользоваться реле Sonoff версии G1 (GSM/GPRS с поддержкой SIM-карты). Также у данного производителя имеются в наличии реле с датчиками температур и влажности Sonoff ТН10/ТН16 и двухканальные (для управления двумя независимыми нагрузками) реле Sonoff Dual.

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

Купить реле Sonoff можно здесь:

  1. Sonoff Basic: https://goo.gl/jXyNm3
  2. Sonoff RF (с радиоуправлением): https://goo.gl/TRPqN6
  3. Sonoff G1(GSM/GPRS с поддержкой SIM-карты): https://goo.gl/EkpTdp
  4. Sonoff ТН10/ТН16 (датчик температуры и влажности): https://goo.gl/MWAL5p
  5. Sonoff Dual (двухканальный): https://goo.gl/a7rV56

И уже по традиции, видеоролик по материалам статьи, где более наглядно можно посмотреть настройку и управление реле Sonoff:

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

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

В современном мире становится распространенной система «умный дом». С ее помощью можно дистанционно управлять многими элементами и приборами нашего жилища. Также можно осуществлять удаленное управление освещением в комнате. Такие изобретения способствуют комфорту данного помещения, а также применяются, где живут пожилые люди, и люди с ограниченными возможностями. В этой статье пойдет речь о том, как работает, и для чего нужен 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 выключателе;
  • фазу следует подать отдельно на каждую группу светильников.

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

Похожие статьи