Умный счетчик на ESP32 и PZEM-004T для Алисы: энергомониторинг

Умный счетчик на ESP32 и PZEM-004T для Алисы: энергомониторинг
Достоинства
  • Высокая точность измерения напряжения (±0.5%), тока (±0.5%), активной мощности (±1%) и суммарной энергии
  • Безопасное бесконтактное измерение переменного тока до 100А через разъемный трансформатор тока
  • Мгновенное голосовое предупреждение Алисы при перегрузке выделенной мощности и просадке напряжения
  • Низкая себестоимость сборки (в 3–4 раза дешевле заводских трехфазных и однофазных умных счетчиков)
Недостатки
  • Требуются базовые навыки пайки, прошивки микроконтроллеров и работы в силовом электрощите 220В
  • Модуль PZEM-004T v3.0 измеряет только одну фазу (для трехфазного ввода 380В необходимо 3 модуля PZEM)
  • Питание измерительной части PZEM гальванически связано с сетью 220В (требуется соблюдение мер электробезопасности)
Главное из статьи:
  • Связка ESP32 и PZEM-004T передает по **Wi-Fi** в умный дом напряжение, ток, мгновенную мощность, частоту и энергопотребление в кВт·ч.
  • Через сервис интеграции Home Assistant или MQTT ваттметр пробрасывается в «Дом с Алисой» как нативное сенсорное устройство.
  • Сценарии защиты отключают неприоритетные нагревательные приборы (бойлер, теплый пол) до выбивания вводного автомата.

В современных домах количество мощных электроприборов постоянно растет: индукционные плиты, электрические котлы, теплые полы и зарядные станции. При одновременном включении нескольких приборов суммарная нагрузка легко превышает выделенный лимит (5 кВт или 15 кВт), что приводит к срабатыванию вводного автомата и отключению света.

Сборка DIY умного счетчика электроэнергии на ESP32 и PZEM-004T для Алисы позволяет в реальном времени отслеживать текущую потребляемую мощность, напряжение в сети и расход энергии в кВт·ч. При приближении к предельной нагрузке система умного дома автоматически отключит неприоритетные линии, а Алиса предупредит голосом о перегрузке.


Архитектура системы энергомониторинга

Комплекс объединяет измерительный модуль, микроконтроллер ESP32 с передачей данных по Wi-Fi и исполнительные силовые реле Zigbee.

+-----------------------+
| Сеть 220В (Фаза L)    | ---> Трансформатор CT (100A)
+-----------+-----------+
            |
            v
+-----------------------+
| Модуль PZEM-004T v3.0 | ---> Измерение V, A, W, kWh
+-----------+-----------+
            | (UART **Modbus**)
            v
+-----------------------+
| Микроконтроллер ESP32 | ---> Прошивка ESPHome
+-----------+-----------+
            | (**Wi-Fi**)
            v
+-----------------------+
| «Дом с Алисой»        | ---> Голосовые отчеты
| (Яндекс Хаб/Станция)  |      + Сценарии реле **Zigbee**
+-----------------------+

Измеряемые параметры сети:

  1. Напряжение (Voltage): Диапазон 80–260 В, точность 0.5%.
  2. Сила тока (Current): Диапазон 0–100 А, точность 0.5%.
  3. Активная мощность (Active Power): Диапазон 0–23 000 Вт, точность 1.0%.
  4. Потребленная энергия (Energy): Накопительный счетчик 0–9999.99 кВт·ч.
  5. Частота сети (Frequency): 45–65 Гц.
  6. Коэффициент мощности (Power Factor): 0.00–1.00 PF.

Необходимые компоненты и схема соединений

Для сборки одного измерительного канала понадобятся:

  • ESP32 NodeMCU / ESP32-WROOM-32: Отладочная плата с встроенным Wi-Fi-модулем.
  • Модуль PZEM-004T v3.0 с разъемным трансформатором тока (CT 100A): Позволяет смонтировать датчик без разрыва фазного провода.
  • Блок питания на DIN-рейку 5V 1A (Mean Well HDR-15-5): Источник питания микроконтроллера.
  • Корпус на DIN-рейку (2 модуля): Для безопасного размещения в щите.
[ PZEM-004T v3.0 ]              [ ESP32 NodeMCU ]
  VCC (5V)   ────────────────────>  VIN (5V)
  GND        ────────────────────>  GND
  TX         ────────────────────>  GPIO16 (RX2)
  RX         ────────────────────>  GPIO17 (TX2)

IMPORTANT

Измерительная часть платы PZEM-004T находится под опасным потенциалом сети 220В. Оптопары обеспечивают гальваническую развязку логической части UART до 2000 В. Никогда не прикасайтесь к высоковольтным клеммам платы при поданном напряжении!


Конфигурация прошивки ESPHome

Для быстрой интеграции без написания сложного C++ кода используйте открытую прошивку ESPHome.

esphome:
  name: energy-meter-main
  friendly_name: "Главный счетчик электроэнергии"

esp32:
  board: esp32dev
  framework:
    type: esp-idf

wifi:
  ssid: "Home_IoT_2.4G"
  password: "YourStrongPassword"

uart:
  id: uart_pzem
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 9600
  stop_bits: 1

sensor:
  - platform: pzemac
    uart_id: uart_pzem
    voltage:
      name: "Напряжение сети"
      unit_of_measurement: "V"
      accuracy_decimals: 1
    current:
      name: "Ток нагрузки"
      unit_of_measurement: "A"
      accuracy_decimals: 2
    power:
      name: "Текущая мощность"
      unit_of_measurement: "W"
      accuracy_decimals: 0
      id: pzem_power
    energy:
      name: "Расход энергии"
      unit_of_measurement: "kWh"
      accuracy_decimals: 2
    frequency:
      name: "Частота сети"
      unit_of_measurement: "Hz"
      accuracy_decimals: 1
    power_factor:
      name: "Коэффициент мощности PF"
      accuracy_decimals: 2
    update_interval: 2s

button:
  - platform: template
    name: "Сброс счетчика энергии"
    icon: "mdi:restore"
    on_press:
      - pzemac.reset_energy: pzem_power

Монтаж в распределительном электрощите

  1. Установите корпус с ESP32 и блок питания на свободное место DIN-рейки.
  2. Подключите сетевые клеммы L и N измерителя PZEM через отдельный двухполюсный автомат 2–6А.
  3. Монтаж трансформатора тока (CT): Разомкните защелку токовых клещей и защелкните их строго вокруг одного вводного фазного провода.

WARNING

Категорически запрещено охватывать кольцом трансформатора тока одновременно фазный (L) и нулевой (N) проводники. В этом случае встречные магнитные поля взаимно компенсируются, и показания тока будут равны 0.0 А.


Сценарии автоматизации и голосовые отчеты Алисы

После проброса сенсоров мощности в приложение «Дом с Алисой» через Home Assistant настраиваются защитные правила:

Сценарий 1: «Аварийный сброс неприоритетной нагрузки»

  • Условие (ЕСЛИ): Текущая мощность в щите превышает 6500 Вт дольше 10 секунд.
  • Действие (ТОГДА):
    1. Отключить умную розетку Zigbee накопительного бойлера.
    2. Отключить теплые полы в коридоре и санузле.
    3. Яндекс Станция произносит: «Внимание: потребляемая мощность достигла 6.5 киловатт. Нагрев бойлера и полов временно отключен во избежание перегрузки».

Сценарий 2: «Предупреждение о критической просадке напряжения»

  • Условие (ЕСЛИ): Напряжение в сети падает ниже 195 В ИЛИ поднимается выше 250 В.
  • Действие (ТОГДА):
    1. Отправить экстренное PUSH-уведомление на смартфон владельца.
    2. Включить подсветку Яндекс Станции желтым цветом и предупредить о скачке напряжения.

Сценарий 3: «Вечерний голосовой отчет по расходу энергии»

  • Условие (ЕСЛИ): Голосовая команда «Алиса, сколько электричества мы потратили?».
  • Действие (ТОГДА):
    • Алиса считывает текущий дневной расход из интеграции и отвечает: «Сегодня израсходовано 14.2 киловатт-часа. По дневному тарифу это составило 92 рубля».

Сравнение DIY ваттметра и готовых решений

ПараметрDIY (ESP32 + PZEM-004T)Готовое Zigbee-реле на DIN-рейкуЗаводской трехфазный счетчик
Стоимость~1 200 – 1 500 руб~3 500 – 5 000 руб~12 000 – 18 000 руб
Максимальный ток100 А (Бесконтактно)63 А (Через контакты)60–100 А (Прямой/Трансформаторный)
Частота опроса1–2 секунды10–30 секунд1–5 секунд
Протокол связиWi-Fi (ESPHome/MQTT)ZigbeeWi-Fi / RS-485 / Matter
Нагрев при 50АОтсутствует (Трансформатор)Высокий нагрев клеммУмеренный нагрев клемм

TIP

Для трехфазного ввода 380В подключите 3 модуля PZEM-004T к одной плате ESP32: соедините их линии TX/RX параллельно на одну шину UART, предварительно назначив каждому модулю уникальный Modbus-адрес (0x01, 0x02, 0x03) через специальную команду калибровки.


Диагностика и устранение типичных неполадок

1. Модуль PZEM-004T показывает 0 Вт при включенных электроприборах

  • Причина 1: Трансформатор тока охватывает одновременно фазу и ноль. Убедитесь, что токовые клещи защелкнуты строго на одном фазном кабеле.
  • Причина 2: Перепутана ориентация трансформатора. На корпусе CT есть стрелка направления тока — она должна указывать от ввода (автомата) в сторону нагрузки (приборов).
  • Причина 3: Не подан провод нейтрали N на высоковольтные клеммы измерителя. Без опорного напряжения микросхема не может вычислить активную мощность.

2. Ошибка чтения UART (CRC Error / Timeout)

  • Проверьте правильность перекрестного подключения: контакт TX на PZEM подключается к RX2 (GPIO16) на ESP32, а контакт RX — к TX2 (GPIO17).
  • При длине сигнального шлейфа более 30 см используйте экранированную витую пару и установите подтягивающий резистор 4.7 кОм между линией 5V и RX2.

Смежные руководства по DIY и энергосбережению

Инструкция по настройке

1

Шаг 1: Подключение платы PZEM-004T к микроконтроллеру ESP32

Распайка линий аппаратного UART (TX2/RX2), подача стабильного питания 5V и подключение токового трансформатора.

2

Шаг 2: Написание конфигурации и прошивка ESPHome

Конфигурирование компонентов modbus и pzemac в YAML, калибровка частоты опроса и интеграция в Home Assistant.

3

Шаг 3: Настройка защитных сценариев и голосовых отчетов в приложении «Дом с Алисой»

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

SH
Умный Дом с АлисойTG Канал
Автор статьи Инженер по автоматизации и Home Assistant
6+ лет практики

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

Обсуждение статьи