- Универсальное (1-8 каналов) Wi-Fi реле на ESP8266
- Прошивка и настройка платы
- 4 канальное Wi-Fi реле на esp8266 (NodeMCU) с приложением
- Приложение для управления WiFi реле на esp8266 (NodeMCU).
- Схема подключения WiFi реле на NodeMCU.
- Прошивка Wi-Fi реле на esp8266 (NodeMCU).
- Можно данную прошивку Wi-Fi реле использовать в ESP32?
- Исходники приложения для телефона на Xamarin C# «Wi-Fi реле».
- Wi-Fi реле управления двумя лампочками.
Универсальное (1-8 каналов) Wi-Fi реле на ESP8266
Это полностью готовый проект — заливай скетч и пользуйся. Имеет несколько ключевых особенностей:
- может быть легко перестроен под любое количество реле (от 1 до 8);
- имеет диспетчер подключения к Wi-Fi (например в случае необходимости замены точки доступа или смены пароля от Wi-Fi);
- управление через WEB интерфейс с любого устройства в локальной сети через браузер (подключение к Интернет не требуется);
- запрос статуса состояния реле и возможность управления с помощью других плат ESP;
- возможность присвоения статического IP адреса;
- возможность работы с разными типами модулей реле.
Общий алгоритм работы показан блок-схеме:
После подачи питания программа ищет в файлах информацию необходимую для подключения к локальной (домашней) сети Wi-Fi. Если информация не найдена (первый запуск устройства) или сменился пароль от сети Wi-Fi — плата ESP82666 запускается как точка доступа.
Подключившись к этой точке доступа, можно открыть браузер, вбить в адресную строку IP 192.168.4.1 и в открывшейся странице задать параметры сети Wi-Fi, к которой необходимо подключиться.
Там же можно присвоить статический IP адрес и прописать шлюз. Перед этим необходимо зайти на домашний роутер и посмотреть, что раздает DHCP сервер и какие IP не заняты.
После нажатия кнопки Submit ESP8266 перезагрузится и будет доступна внутри домашней сети по адресу, который вы укажите. Я выбрал 10.168.0.200
Библиотека ESPAsyncWebServer умеет делать «динамический» HTML — количество отображаемых кнопок будет зависеть от настроек которые вы зададите в скетче. События происходящие при нажатии кнопок обрабатываются с помощью JavaScript — перезагрузка и обновление WEB страницы не требуются!
При запросе страницы — ползунки обновляются в соответствии с последним состоянием GPIO (можно одновременно управлять с нескольких устройств ПК, смартфон через WEB браузер).
Для проверки и отладки кода был собран прототип. (8 светодиодов + 8 резисторов номиналом 330-990 Ом)
Кроме WEB интерфейса, изменить состояние светодиодов можно отправив GET запрос вида:
Можно запросить состояние всех GPIO с помощью запроса:
Английская буква алфавита — номер реле, цифра после неё 1/0 включено/выключено.
Прошивка и настройка платы
Перед использованием необходимо установить в систему Arduino IDE две библиотеки:
В Папке с проектом есть папка DATA.
Файлы из этой папки необходимо разместить в файловой системе ESP (LittleFS).
Как установить загрузчик и загрузить файлы, читайте в этой статье:
После загрузки файлов необходимо откорректировать несколько строк в скетче:
Если устройств планируется несколько — лучше присвоить точке доступа понятное название. Я использую место установки + последняя цифра IP адреса который я планирую задать.
Задать пароль для точки доступа. Если у вас моргнет электричество и возникнет проблема с роутером, все ваши самодельные девайсы перейдут в режим точки доступа — чтобы в этот момент к ней не смог подключиться «замечательный сосед», лучше придумать свой надежный пароль.
Можно задать понятное название устройства — в WEB странице управления GPIO включена поддержка русской кодировки.
Количество реле — именно столько кнопок будет нарисовано в WEB интерфейсе управления. (у меня два реле)
Отредактировать массив к которым будут подключены реле (модули реле). Определиться с выбором GPIO, физических контактов на плате и особенностями подключения Вам поможет эта статья:
4 канальное Wi-Fi реле на esp8266 (NodeMCU) с приложением
Продолжаю тему беспроводного управления реле. В предыдущем проекте я делал управление реле с помощью bluetooth. Сегодня рассмотрим, как можно реализовать 4 канальное Wi-Fi реле на esp8266. Для удобства управления устройством, написал приложения для телефона на Xamarin C#. А в прошивке для esp8266 (NodeMCU) реализовал поддержку высокоуровневого и низкоуровневого реле. С возможностью использовать для управления реле внешней кнопки с фиксацией и без фиксации. Для чего все это нужно, сейчас подробно рассмотрим.
Приложение для управления WiFi реле на esp8266 (NodeMCU).
Давайте рассмотрим приложение, которое позволит управлять WiFi реле на esp8266 (NodeMCU). На главной странице приложения расположены элементы управления реле. Тут присутствуют кнопки, позволяющие включать и выключать 4 реле. Ниже есть 2 кнопки, которые позволяют включить и выключить все реле одновременно.
Если вдруг не получилось подключиться к устройству или нет подключения к Wi-Fi сети, внизу появится надпись «Нет подключения».
Вторая страница — «Настройки». Для того чтобы перейти к настройкам, нужно нажать на кнопку с иконкой шестерёнки, в верхнем правом углу.
На странице настроек можно задать IP-адрес устройства о том, как его узнать, об этом расскажу позднее.
После того, как IP адрес указан, можно нажать кнопку «Сохранить», что позволяет сохранить данные, и их уже не нужно будет вводить при следующем запуске приложения.
Внизу выводится статус подключения к сети. Если подключение к устройству не установлено, выводится надпись «Нет подключения». После подключения, надпись меняется на «Соединение установлено».
Также планировал вынести в настройки выбор типа подключённого реле:
И выбор внешнего управления:
Но так как данные параметры нужно указывать всего 1 раз при подключении, и меняться они больше не будут. Оставил данные настройки в прошивке, о чем расскажу далее. Как вы считаете, нужно выносить данные настройки в приложение? Пишите свои предложения в комментариях.
Схема подключения WiFi реле на NodeMCU.
Давайте рассмотрим схему подключения. Чтобы в дальнейшем было понятно, для чего у нас та или иная строчка кода в прошивке. В проекте буду использовать отладочную плату NodeMCU. Вы можете использовать любую плату на ESP8266, с достаточным количеством pins для данного проекта.
Как видим, в данной схеме используются обычные тактовые кнопки. Вместо которых, можно использовать выключатели. Они будут выступать в роли кнопки с фиксацией. Для сборки на стенде использовал 2 выключателя и 2 лампочки, которыми буду управлять. Схема для тестирования проекта WiFi реле на NodeMCU будет выглядеть следующим образом.
Прошивка Wi-Fi реле на esp8266 (NodeMCU).
Давайте перейдем к прошивке Wi-Fi реле на esp8266 (NodeMCU). И рассмотрим основные параметры, которые стоит изменить. В первую очередь, нужно настроить среду Arduino IDE для поддержки плат ESP8266, как это сделать — подробно рассказываю вот в этой статье.
Внимание! Перед тем как открыть скетч код, обязательно нужно разархивировать. Запускать надо файл «Relay-1.2.ino». Если вы сделали все правильно, откроется несколько вкладок с кодом.
В самой прошивке необходимо настроить подключение к вашей Wi-Fi сети, указав логин и пароль.
Если у вас нет возможности подключиться к сети, оставьте данные поля без изменения, и настройте поля ниже, которые отвечают за точку доступа, которая автоматически поднимется. Для подключения к которой, на телефоне нужно найти Wi-Fi сеть с указанным названием. В моем случае это «ATRelay«. При подключении указать пароль, который изменили в прошивке. При таком подключении в приложении нужно указать IP-адрес «192. 168. 4. 1». Который вы также можете поменять в прошивке.
Если же вы подключаетесь к домашней Wi-Fi сети, после загрузки нужно открыть монитор порта, в котором увидите IP-адрес устройства, его то и нужно указать в приложении.
Сеть настроили, давайте перейдём к настройке работы с реле. Для этого есть переменная «level» ,которая отвечает, какое реле будем использовать:
Затем нужно выбрать внешний источник управления, тип которого задается в переменной «fixing»:
Если вы будете иcпользовать не NodeMCU в своем проекте, то вам скорее всего нужно будет поменять пины подключения, которые находятся в следующих массивах.
Можно данную прошивку Wi-Fi реле использовать в ESP32?
Уже предчувствую кучу подобных вопросов. К сожалению, использовать прошивку Wi-Fi реле с ESP32 не получится . Тут нужно внести некоторые изменения в схеме подключения или написать очень много кода для адаптации прошивки. Что я, к сожалению, не предусмотрел. Но в следующей версии прошивки обязательно сделаю поддержку ESP32 .
Исходники приложения для телефона на Xamarin C# «Wi-Fi реле».
В связи с тем, что приложение написано на Xamarin C# в коде есть некоторые моменты, которые нужно настраивать, и даже если я выложу исходники в открытый доступ. Помочь всем у меня просто не будет времени. Поэтому исходники можно скачать по подписке, на сайте Бусти . Там же проконсультирую по всем возникшим вопросам.
Wi-Fi реле управления двумя лампочками.
Так как мой стенд сделан под 2 выключателя и 2 лампочки, пример работы покажу на 2 источниках управления.
Как вы уже поняли, подключить мы можем любое реле: электромагнитное, твердотельное и пр. Поэтому я протестировал работу на твердотельном реле с высоким уровнем управления.
И на низкоуровневом электромагнитном реле.
Все работает отлично. Можно включать свет с выключателя и при этом параллельно управлять с приложения. Но тут есть небольшой нюанс. Приоритет у приложения, и мы можем управлять реле с его помощью, как пожелаем. Даже если свет был включен или включен с помощью выключателя. Но если включить свет с помощью выключателя и выключить с помощью приложения, для того чтобы свет снова включить, выключателем нужно сперва перевести включатель в положения выключения света и после чего произвести включение. Это, конечно, немного не удобно, но вы можете управлять светом не вставая с дивана. И не нужно думать: «в правильном положении выключатель или нет».
При управлении света, с помощью выключателя, всегда видим в приложении статус, включен свет или нет. Это достаточно удобно, не нужно вставать из-за компьютера для того, чтобы проверить выключили свет дети у себя в комнате или нет.
Перед сборкой на стенде, проверил работоспособность устройства на макетной плате. Протестировал работу всех 4 каналов управления. И все 4 комбинации реле и кнопок. Так что проект готов к любым ситуациям ;).
Подведем итог.
4 канальное Wi-Fi реле на esp8266 (NodeMCU) с приложением получилось достаточно функциональное и легко настраиваемое под разные варианты применения, но не смотря на это, можно сделать ряд дополнений в приложении и в коде. Например: добавить таймеры, расписание, подключение различных датчиков и пр. Также планирую сделать универсальную прошивку под платы ESP8266, ESP32.
Если у вас есть предложения, пишите их в комментариях.
Понравился проект 4 канальное Wi-Fi реле на esp8266 (NodeMCU) с приложением? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!