Здравия всем! Продолжим изучения ESPHome. Одной из самых популярных задач, является так называемая WiFi розетка. В этой статье расскажу, как её настроить в ESPHome на доступных компонентах: контроллере NodeMCU v3 и модуля реле.
Схема подключения
Для реализации WiFi розетки, нам нужен контроллер на esp8266 лучше всего подходит плата NodeMCU v3, и готовый модуль реле.
Для того, чтобы разобраться куда подключать наше реле, в интернете есть схема выводов NodeMCU v3
Безопасные выводами считаются следующие:
- D1 ( GPIO5 )
- D2 ( GPIO4 )
- D5 ( GPIO14 )
- D6 ( GPIO12 )
- D7 ( GPIO13 )
Подключим наш контроллер и модуль реле к блоку питания постоянного тока на 5в, а также управляющий вывод реле соединим с выводом D6 на схеме желтый проводник:
жизни!
Настройка конфигурации в ESPHome
С подключением разобрались. Создадим новое устройство в ESPHome. Зайдем в редактор конфигурации, нажав кнопку Edit.
Увидим там конфигурацию. Как мы помним конфигурация ESPHome пишется на языке разметки YAML. Данные в YAML хранятся в виде пары ключ-значение, где ключ — это имя пары, а значение — связанные данные, отделенные друг от друга двоеточием «:». Каждый внутренний раздел отделен от верхнего пробелами.
Поменяем тип платы в разделе board на nodemcuv2:
esphome:
name: lesson2-relay
esp8266:
board: nodemcuv2
Для наглядности включим Web интерфейс на нашей WiFi розетке. Для этого добавим в конец следующий код
web_server:
За реле в ESPHome отвечает компонент switch на платформе GPIO. Добавим в конце нашей конфигурации следующий код:
switch:
- platform: gpio
pin:
number: D6
inverted: true
name: "WiFi Socket"
icon: mdi:power
- platform: мы говорим компилятору, что реле работает платформе GPIO
- pin: Определяем вывод
- number: Указываем физический вывод, к которому подключено реле.
- inverted: Этот параметр определяет как управляется реле, нулем или +3.3в. Тк большинство китайских модулей управляются нулем, нужно инвертировать состояние
- name: Имя нашего реле. Под ним мы будем видеть наше реле в Web интерфейсе ESPHome или в Home Assistant
- icon: Мы можем указать любую иконку из коллекции с сайта Material Icons
Давайте сразу сделаем публикацию и управление нашей WiFi розеткой через MQTT брокера. Для этого добавим следующий код
mqtt:
broker: mqtt_ip
username: mqtt_user
password: mqtt_password
- broker: указываем IP адрес mqtt сервера
- username: указываем логин для доступа на mqtt сервера
- password: указываем пароль для доступа на mqtt сервера
Если на вашем mqtt сервер нет авторизации, тогда код будет такой:
mqtt:
broker: 192.168.1.4
Что же наша конфигурация готова, сохраним её и скомпилируем прошивку. После этого зальем её в наш контроллер. Как это делать я описывал в статье: Знакомство с ESPHome. Пишем первую программу
После того, как модуль прошили и перезагрузили. В статусе устройства появиться Online, и появится кнопка VISIT
Щелкнем на неё и мы увидим Web интерфейс нашей WiFi розетки в, котором сможем пощелкать выключателем реле.
Когда подключим нашу WiFi розетку к Home Assistant, в Web интерфейсе, мы тоже сможем управлять ею
Итоговая конфигурация
Для удобства и понимая выкладываю полный код получившейся конфигурации:
esphome:
name: lesson2-relay
esp8266:
board: nodemcuv2
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "DGe696UGxGHtUtbLsVPqGL+IsDP+v9mnNww1ZcA6ZmY="
ota:
password: "8bc4f1dee9892cade0019930d3f6a2cd"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Lesson2-Relay Fallback Hotspot"
password: "CpC46rUNsOm3"
captive_portal:
web_server:
mqtt:
broker: mqtt_ip
username: mqtt_user
password: mqtt_password
switch:
- platform: gpio
pin:
number: D6
inverted: true
name: "WiFi Socket"
icon: mdi:power
Заключение
Как мы видим создать WiFi розетку на платформе ESPHome очень легко. Платформа позволяет очень легко сделать Web интерфейс, подключить у MQTT брокеру и Home Assistant
Здравствуйте а не посоветуете платку компактного бп чтобы можно было питать есп-шку и реле, думал может можно уместить все в одной розетке
Здравствуйте, Алексей!
Платку не знаю. У меня есть опыт эксплуатации бп для пайки на плату от Hi-Link. Один бп держит реле и esp ху. Вот есть такие вариации, в зависимости от вольтажа реле:
HLK-PM01 — 5 Вольт 0.6 Ампера
HLK-PM03 — 3.3 Вольта 0.9 Ампера
HLK-PM12 — 12 Вольт 0.25 Ампера.
Не подскажите в чем может быть проблема? Сделал все по Вашей инструкции, но при загрузке платы реле сразу срабатывает и больше не реагирует на переключатель. Может сам модуль кривой?
switch:
— platform: gpio
pin:
number: D6
inverted: true
name: «Pump_And_Cool»
id: «pic»
icon: mdi:power
Здравствуйте, Сергей. Необходимо проверить сам модуль. Можно это сделать очень просто. Подключить пины питания и земли к блоку питания, а управляющий пин по очереди подключать к либо к +5в, либо к земле. Если модуль реле реагирует, значит живой. Потом нужно определить, модуль у вас инверторный или прямой.
Щелкает только при замыкании с землей. на +5 молчит
Значит модуль рабочий и инверторный( управляется землей). А какой у вас модуль с ESP. Можете фото показать или пример аналогичного вашему?
https://hserv.su/wp-content/uploads/2022/10/nodemcu-relay-1024×539.jpg
Точно такой же как и у Вас на картинке))))) И esp и релейный)))
Попробуйте переключить на D5 и в коде тоже поменять на D5, что нибудь поменяется?
На D5 у меня термометр висит, на D7 можно?
Да можно и на D7
Нет, тоже самое. Только отработала прошивка и прошла загрузка — сразу же сработало реле
Попробуйте в коде поменять пункт inverted: true на inverted: false