Умный счетчик на 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**
+-----------------------+
Измеряемые параметры сети:
- Напряжение (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 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
Монтаж в распределительном электрощите
- Установите корпус с 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 и энергосбережению
- DIY раздвижной электрокарниз на ESP32 и TMC2209 с Алисой — бесшумные шторы своими руками.
- Сборка радара присутствия LD2410 на ESP32 — микроволновый датчик движения.
- Оптимизация нагрева бойлера по ночному тарифу — умная экономия электричества.
- Управление теплым полом по ночному тарифу — аккумулирование тепла в стяжке.
- Автозапуск генератора и мониторинг сети 220В на даче — аварийное энергоснабжение.
Инструкция по настройке
Шаг 1: Подключение платы PZEM-004T к микроконтроллеру ESP32
Распайка линий аппаратного UART (TX2/RX2), подача стабильного питания 5V и подключение токового трансформатора.
Шаг 2: Написание конфигурации и прошивка ESPHome
Конфигурирование компонентов modbus и pzemac в YAML, калибровка частоты опроса и интеграция в Home Assistant.
Шаг 3: Настройка защитных сценариев и голосовых отчетов в приложении «Дом с Алисой»
Создание сценариев ограничения пиковой мощности, мониторинга ночного тарифа и предупреждений о перекосе фаз.
Обсуждение статьи