Умный счетчик на 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 для Алисы позволяет в реальном времени отслеживать текущую потребляемую мощность, напряжение в сети и расход энергии в кВт·ч. При приближении к предельной нагрузке система умного дома автоматически отключит неприоритетные линии, а Алиса предупредит голосом о перегрузке. Если вам требуется опрашивать внешние промышленные сенсоры по витой паре, изучите подключение датчиков RS-485 Modbus к Алисе через ESP32.
Архитектура системы энергомониторинга
Комплекс объединяет измерительный модуль, микроконтроллер ESP32 с передачей данных по Wi-Fi и исполнительные силовые реле Zigbee.
| Уровень системы | Аппаратный компонент | Протокол связи | Передаваемые параметры / Функция |
|---|---|---|---|
| Силовой ввод | Фаза 220 В + кольцо CT (100A) | Индуктивная связь | Бесконтактное измерение тока нагрузки |
| Измерительный узел | Модуль PZEM-004T v3.0 | UART Modbus-RTU | Прецизионный расчет напряжения, мощности и кВт·ч |
| Сетевой контроллер | Плата ESP32 (ESPHome) | Wi-Fi | Обработка телеметрии и публикация в экосистему |
| Голосовой ассистент | Яндекс Станция / Хаб | Локальная сеть | Голосовые отчеты Алисы и автоматизация реле Zigbee |
Измеряемые параметры сети:
- Напряжение (Voltage): Диапазон
80–260 В, точность0.5%. - Сила тока (Current): Диапазон
0–100 А, точность0.5%. - Активная мощность (Active Power): Диапазон
0–23 000 Вт, точность1.0%. - Потребленная энергия (Energy): Накопительный счетчик
0–9999.99 кВт·ч. - Частота сети (Frequency):
45–65 Гц. - Коэффициент мощности (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 | Пин ESP32 NodeMCU | Назначение линии |
|---|---|---|
| VCC (5V) | VIN (5V) | Питание логической части оптопар |
| GND | GND | Общий провод сигнальной земли |
| TX | GPIO16 (RX2) | Передача данных Modbus в микроконтроллер |
| RX | GPIO17 (TX2) | Прием команд конфигурации от ESP32 |
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
Монтаж в распределительном электрощите
- Установите корпус с ESP32 и блок питания
5Вна свободное место DIN-рейки. - Подключите сетевые клеммы
LиNизмерителя PZEM через отдельный двухполюсный автомат2–6А. - Монтаж трансформатора тока (CT): Разомкните защелку токовых клещей и защелкните их строго вокруг одного вводного фазного провода.
WARNING
Категорически запрещено охватывать кольцом трансформатора тока одновременно фазный (L) и нулевой (N) проводники. В этом случае встречные магнитные поля взаимно компенсируются, и показания тока будут равны 0.0 А.
Сценарии автоматизации и голосовые отчеты Алисы
После проброса сенсоров мощности в приложение «Дом с Алисой» через Home Assistant настраиваются защитные правила:
Сценарий 1: «Аварийный сброс неприоритетной нагрузки»
- Условие (ЕСЛИ): Текущая мощность в щите превышает
6500 Втдольше10 секунд. - Действие (ТОГДА):
- Отключить умную розетку Zigbee накопительного бойлера.
- Отключить теплые полы в коридоре и санузле.
- Яндекс Станция произносит: «Внимание: потребляемая мощность достигла 6.5 киловатт. Нагрев бойлера и полов временно отключен во избежание перегрузки».
Сценарий 2: «Предупреждение о критической просадке напряжения»
- Условие (ЕСЛИ): Напряжение в сети падает ниже
195 ВИЛИ поднимается выше250 В. - Действие (ТОГДА):
- Отправить экстренное PUSH-уведомление на смартфон владельца.
- Включить подсветку Яндекс Станции желтым цветом и предупредить о скачке напряжения.
Сценарий 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) | Zigbee | Wi-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 и энергосбережению
- Умный счетчик воды на ESP32 с импульсным выходом для Алисы — цифровой учет расхода воды.
- Многоканальное реле на DIN-рейку на ESP32 с Алисой — сборка умного электрощита.
- DIY раздвижной электрокарниз на ESP32 и TMC2209 с Алисой — бесшумные шторы своими руками.
- Сборка радара присутствия LD2410 на ESP32 — микроволновый датчик движения.
- Оптимизация нагрева бойлера по ночному тарифу — умная экономия электричества.
- Управление теплым полом по ночному тарифу — аккумулирование тепла в стяжке.
- Автозапуск генератора и мониторинг сети 220В на даче — аварийное энергоснабжение.
Инструкция по настройке
Шаг 1: Подключение платы PZEM-004T к микроконтроллеру ESP32
Распайка линий аппаратного UART (TX2/RX2), подача стабильного питания 5V и подключение токового трансформатора.
Шаг 2: Написание конфигурации и прошивка ESPHome
Конфигурирование компонентов modbus и pzemac в YAML, калибровка частоты опроса и интеграция в Home Assistant.
Шаг 3: Настройка защитных сценариев и голосовых отчетов в приложении «Дом с Алисой»
Создание сценариев ограничения пиковой мощности, мониторинга ночного тарифа и предупреждений о перекосе фаз.