Управление реле по wifi. Умный WiFi выключатель света

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

Итак, основные возможности модуля:
1. Управления по Wi-Fi;
2. Возможность подключения датчиков температуры(1Wire);
3. Возможность подключения датчиков или графических дисплеев по I2C;
4. Возможность управлять RGB светодиодом на 10W;
5. 2 цифровых входа/выхода и 6 аналоговых входом которыми также можно управлять по Wi-Fi.

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

В общем функциональная схема выглядит так:

Wi-Fi
В качестве Wi-Fi модуля бил выбран ESP-07 по причинам низкой цени и наличия на плате керамической антенны:

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

Для программирования модуля необходимо будет замкнуть CN14. Также была найдена библиотека для Arduino IDE github.com/esp8266/arduino .

LED Драйвер
LED драйвер бил собран на микросхеме PT4115, она обеспечивает входной ток до 1.2A, а также управления яркостью светодиода при помощи ШИМ сигнала. Так как у мене уже есть RGB светодиод на 10W то на каждый канал стоит ограничения по току в 0.3A, R9-11 =0.33Ом. В общем случае токоограничивающий резистор множа рассчитать по формуле Rs = 0.1 / Iout (A):

Реле модуль
Схема управления реализована через сдвигающий регистр 74HC595, это сделано для уменьшения ног МК, необходимых для управления реле.
Также каждое реле имеет светодиод, который показывает текущее состояние реле, то есть если светодиод горит, значить реле замыкает контакты 1 и 2, иначе замкнутыми будут контакты 2 и 3.

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

Микроконтроллер
В качестве МК используется Arduino NANO, в будущем она будет заменена на STMF10x по причине больших возможностей STM.

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

Wi-Fi реле предназначено для управления электрическими приборами через домашнюю или корпоративную WiFi-сеть и может быть использовано в проектах с общим названием «Интернет вещей». Сердцем WiFi реле является самый популярный на сегодня WiFi-чип ESP8266. Реле позволяет дистанционно включить или выключить два устройства, подключенных к выходным контактам двух независимых друг от друга реле. Если ваш интернет-провайдер обеспечивают возможность доступа к сети извне, то у вас появляется возможность управлять вашими устройствами отовсюду, где есть в Интернет. Благодаря беспроводной связи с модулем упрощается его размещение рядом с устройствами, которыми необходимо управлять. Для работы модуля не требуется прокладка кабеля Ethernet. Управлять модулем можно с помощью бесплатных программ для Андроид-устройств. Одна из них прилагается. Кроме этого доступна система простых команд модуля, с помощью которых вы можете встроить управление реле в свои собственные приложения.

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

Чем же так интересен чип ESP8266 или, как его называют, «народный wi-fi»? На фото вы можете его видеть, он синего цвета. Дело в том, что ESP8266 является одним из самых высокоинтегрированных и недорогих решений для работы с Wi-Fi и его можно легко использовать в качестве «мозга» будущего изделия. Основных применений в составе готовых устройств два – это обеспечение Wi-Fi связи и организация логики управления домашними приборами с помощью свободных ресурсов встроенного микроконтроллера.

«Мастер КИТ» выпустил модуль под номером «МР3500» на универсальной, фактически «отладочной» плате. На ней есть источник питания с широким диапазоном входного напряжения, хотя, в случае с реле, плату надо подключать строго к источнику 12 Вольт. Есть разъем для подключения внешнего микроконтроллера, например, Ардуино-совместимого. Этот же разъем можно использовать для перепрограммирования модуля ESP8266. Для этого потребуется всего лишь USB-UART адаптер.

В ближайшее время появятся новые Wi-Fi – решения на той же плате.

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

Рассмотрим сам блок поближе:

Технические особенности MP3500

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

Технические характеристики МР3500:

Напряжение питания: 12 B
Ток потребления максимальный: 450 мА
Тип питания: постоянный
Количество выходов: 2 шт
Напряжение коммутации: 220 В
Максимально допустимый ток нагрузки: 10 А
Длина модуля: 75 мм
Ширина модуля: 38 мм
Высота модуля: 20 мм
Вес, не более: 100 г

Как работает модуль?

Есть два варианта работы модуля – это раздача c собственной сети WI-FI и подключение МР3500 к уже существующей домашней сети. В комплекте с устройством идет понятная инструкция и бесплатная программа WIFI_2RELE.apk для Android, с помощью которой можно управлять каждым из двух реле, установленных на плате.

Кроме представленной программы WIFI_2RELE, также доступна система встроенных АТ-команд, зная которые вы можете получить доступ к управлению модулем из своих собственных приложений, на любой платформе, которая поддерживает протокол TCP/UDP. С помощью терминальной утилиты HERCULES от компании HWgroup, которую вы можете найти на www.HW-group.com - вы можете наглядно изучить процесс передачи команд и получения ответа от модуля на уровне протокола.

Примеры АТ-команд модуля:

SetR0_1 - выключить реле 1
!SetR1_1 - включить реле 1
!SetR0_2 - выключить реле 2
!SetR1_2 - включить реле 2

Возможные применения Wi-Fi реле:

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

Варианты применения:

1.) Проекты «Умный дом»
2.) Управление освещением, вентиляцией, жалюзи, воротами
3.) Подключение бытовых приборов, к примеру мультиварки
4.) Кормление домашних животных

Пример решения

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

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

Подведем итоги:

1. МР3500 – это собственная разработка Мастер Кит на чипе ESP8266, представляющее из себя два дистанционно управляемых реле.
2. Небольшие размеры, а далее я думаю появится и «нано-версия»
3. Простота в использовании
4. Привлекательная цена готового решения
5. Подходит под разные потребности

С появлением такого модуля даже у домашних разработчиков различных arduino-решений «умных домов» появляется возможность подключения своих устройств в 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 сервера

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

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

Реле Sonoff World On, из семейства приборов для беспроводного управления включением и отключением от сети бытовых нагрузок по Wi-Fi, станет довольно полезным и удобным элементом вашей системы домашней автоматизации. Если вы пользуетесь смартфоном, у вас дома есть Wi-Fi, а также имеется желание управлять питанием различных сетевых нагрузок прямо со смартфона, даже если вы находитесь вне дома, то эти Wi-Fi реле как раз для вас.

Просто установите реле Sonoff возле розетки или выключателя (или даже вместо розетки или вместо выключателя), и соедините последовательно через него ваш бытовой прибор с сетью 220 вольт. Затем создайте подключение через интернет, настройте связь с реле через Wi-Fi, и управляйте своими бытовыми электроприборами прямо через приложение со смартфона. Рассмотрим более внимательно пять моделей реле Sonoff World On.

Sonoff World On

Это первое реле в линейке Wi-Fi реле Sonoff. Оно предназначено для управления питанием любых электроприборов мощностью до 2,2 кВт от стандартной бытовой сети переменного тока 220-240 В. Диапазон рабочих температур самого реле (небольшая пластиковая коробочка с виду) - от -20°C до +65°C, причем максимальная допустимая влажность окружающего воздуха — 95%. Реле изначально предназначено для использования внутри помещения.

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

Вся настройка и управление осуществляются через фирменное приложение Ewelink на русском языке, которое доступно как для IOS, так и для Android. Вы всегда сможете посмотреть в приложении статус устройства (включено оно или выключено), и по желанию удаленно включить или отключить его от сети. Принципиально количество устройств Sonoff World On, которыми можно управлять с одного смартфона, не ограничено.

Это следующая модель Wi-Fi реле из семейства Sonoff World On. Данная модель оснащена встроенными датчиками влажности и температуры. Таким образом, устройство имеет возможность не только работать по 8 таймерам, оно также может включать и выключать ваши нагрузки по достижении влажностью или температурой определенных, предустановленных в приложении Ewelink, значений.

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

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

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

Данная модель Wi-Fi реле способна работать так же, как и Sonoff World On, функциональные возможности и характеристики у нее те же, только помимо главной функции управления питанием электроприборов по Wi-Fi, здесь добавлена возможность управления еще и с пульта на частоте 433 МГц (один пульт идет в комплекте к реле). Модель с пультом идеально подойдет для установки на посту охранника для управления воротами, шлагбаумом при въезде на территорию частного дома и т. п.

WiFi реле по характеристикам аналогично Sonoff World On, однако предназначено оно для управления одновременно двумя электроприборами, максимальная мощность каждого из которых составляет 2,2 кВт. Приборы могут работать параллельно, что вдвое расширяет возможности в плане максимальной коммутируемой мощности. Например, это могут быть два масляных обогревателя по 2 кВт каждый.

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

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

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

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

Теперь имеется возможность управлять реле через локальную сеть Wi-Fi, а если хозяин находится далеко от дома, то через интернет посредством облака. В приложении всегда отражается, какие из реле на связи, а какие — нет. Включенные и выключенные реле видно в приложении. Реле модели Sonoff World On RF без проблем сопрягается с пультами 433 МГц-интерфейса.

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

Коммутируемая
Мощность
3500 ВА

Напряжение
сети
220 В

Размер
реле
8,8x3,8x2,3 см

WiFi реле Sonoff World On TH (TH16A) является умной версией выключателя sonoff. Это реле может устанавливать и поддерживать температуру и влажность воздуха из любой точки мира через сеть интернет с помощью специального приложения, которое можно установить на любой смартфон.
Применяется чаще всего для поддержания комфортной температуры и влажности в помещении. То есть к реле можно подключить отопительную систему и увлажнитель воздуха и прибор в автоматическом режиме будет включать/выключать систему обогрева и увлажнения. Также используется реле в террариумах, где нужно особенно точно поддерживать условия содержания рептилий.
Особенности работы WiFi реле Sonoff World On TH (TH16A):
- Мониторинг температуры и влажности в реальном времени
- Автоматический режим включения/выключения по заданной температуре или влажности
- Возможность установить ручной режим. Мгновенное включение/выключение.
- Дистанционное включение/выключение приборов даже без подключенных датчиков.
- Таймеры обратного отсчета для включения/выключения в указанное время.
Производится WiFi реле Sonoff World On TH (TH16A) в Китае. Качество подтверждается официальной гарантией и сертификатом. В нашем интернет магазине Вы можете купить по выгодной цене.

Видео обзор WiFi реле Sonoff World On TH (TH16A)

Посмотрите видео об обогревателях и магазине Греем Вас

. Дистанционное управление через смартфон
. Бесплатное русскоязычное приложение
. Включение и выключение по расписанию или по таймеру.
. Измерение температуры и влажности
. Оповещение о статусе прибора.
. Низкая цена

.
. Датчик температуры и влажности
. Гарантийный талон

Достоинства:
. Дистанционное управление влажностью и температурой воздуха в помещении
. Бесплатное приложение для смартфона на платформе IOS/Android
. Цена
Недостатки:
. Для дистанционного управление необходимо подключение к WiFi

Фотографии WiFi реле Sonoff World On TH (TH16A)

Инструкции, сертификат на WiFi реле Sonoff World On TH (TH16A)

Часто задаваемые вопросы (FAQ)

Что такое WiFi реле Sonoff World On TH (TH16A), и как оно работает?
Реле Sonoff World On TH (TH16A) представляет собой электроприбор со встроенным Wi-Fi модулем, что позволяет дистанционно управлять электроприборами через интернет из любой точки мира.

Какими электроприборами можно управлять через WiFi реле Sonoff World On TH (TH16A)?
Управлять можно любыми электроприборами, требующими периодического включения и выключения. Например, системами полива или обогрева.

Что нужно сделать, чтобы управлять через WiFi реле Sonoff World On TH (TH16A)?
Для этого нужно скачать и установить на телефон или планшет приложение eWeLink. Далее, следуя инструкции, подключить реле и можно пользоваться.