Знакомство с ESPHome. WiFi розетка

Здравия всем! Продолжим изучения ESPHome. Одной из самых популярных задач, является так называемая WiFi розетка. В этой статье расскажу, как её настроить в ESPHome на доступных компонентах: контроллере NodeMCU v3 и модуля реле.

Схема подключения

Для реализации WiFi розетки, нам нужен контроллер на esp8266 лучше всего подходит плата NodeMCU v3, и готовый модуль реле.

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

Nodemcu v3 pinout

Безопасные выводами считаются следующие:

  • D1 ( GPIO5 )
  • D2 ( GPIO4 )
  • D5 ( GPIO14 )
  • D6 ( GPIO12 )
  • D7 ( GPIO13 )
Безопасными выводами, считаются выводы, от которых не зависит загрузка микроконтроллера, и на которые при загрузке не выдаются сигналы.

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

Будьте очень внимательны при работе с высоким напряжением 220в. Оно опасно для
жизни!

Настройка конфигурации в 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

12 ответов к «Знакомство с ESPHome. WiFi розетка»

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

    1. Здравствуйте, Алексей!
      Платку не знаю. У меня есть опыт эксплуатации бп для пайки на плату от Hi-Link. Один бп держит реле и esp ху. Вот есть такие вариации, в зависимости от вольтажа реле:
      HLK-PM01 — 5 Вольт 0.6 Ампера
      HLK-PM03 — 3.3 Вольта 0.9 Ампера
      HLK-PM12 — 12 Вольт 0.25 Ампера.

  2. Не подскажите в чем может быть проблема? Сделал все по Вашей инструкции, но при загрузке платы реле сразу срабатывает и больше не реагирует на переключатель. Может сам модуль кривой?
    switch:
    — platform: gpio
    pin:
    number: D6
    inverted: true
    name: «Pump_And_Cool»
    id: «pic»
    icon: mdi:power

    1. Здравствуйте, Сергей. Необходимо проверить сам модуль. Можно это сделать очень просто. Подключить пины питания и земли к блоку питания, а управляющий пин по очереди подключать к либо к +5в, либо к земле. Если модуль реле реагирует, значит живой. Потом нужно определить, модуль у вас инверторный или прямой.

        1. Значит модуль рабочий и инверторный( управляется землей). А какой у вас модуль с ESP. Можете фото показать или пример аналогичного вашему?

          1. Попробуйте переключить на D5 и в коде тоже поменять на D5, что нибудь поменяется?

          2. На D5 у меня термометр висит, на D7 можно?

          3. Нет, тоже самое. Только отработала прошивка и прошла загрузка — сразу же сработало реле

          4. Попробуйте в коде поменять пункт inverted: true на inverted: false

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.