Как собрать свой измеритель мощности для розетки: напряжение, ток, ватты

Если вы когда-нибудь задавались вопросом, сколько на самом деле жрёт ваш старый холодильник, блок питания ноутбука или обогреватель — эта статья для вас. Я расскажу, как собрать простой и точный измеритель мощности бытовой электроники, который покажет реальное потребление, а не то, что написано на шильдике.

Зачем это вообще нужно

На каждом приборе есть наклейка с ваттами или киловаттами. Проблема в том, что это максимальное значение, часто указанное для худшего сценария. Реальное потребление может отличаться в разы. Холодльник, например, на шильдике пишет 400 Вт, а в реальности он работает импульсами: включился на 150 Вт, потом выключился, потребление упало до нуля. Счётчик на оплату электричества этого не показывает.

Свой измеритель нужен, если вы:

  • хотите понять, где реально утекает электричество;
  • проверяете, не врёт ли производитель о экономичности;
  • настраиваете солнечную электростанцию или ИБП и хотите знать точный расход;
  • просто любите понимать, что происходит в вашей проводке.

Что мы будем измерять

Три параметра:

  • Напряжение (В) — в розетке не всегда ровно 220 В. Может быть 210, может быть 235. Это влияет на работу приборов.
  • Ток (А) — сколько ампер потребляет прибор в данный момент.
  • Мощность (Вт) — то, за что мы платим. Произведение напряжения на ток с учётом коэффициента мощности.

Коэффициент мощности (cos φ) — штука коварная. У лампочки накаливания он почти единица, у блока питания с импульсным преобразователем — 0.5–0.7. Это значит, что прибор берёт из розетки больше тока, чем реально превращает в полезную работу. Простое умножение U×I даст полную мощность (ВА), а активная (Вт) будет меньше.

Два пути: готовый прибор или самодельный

Прежде чем паять, давайте честно: готовые розеточные ваттметры стоят от 500 до 2000 рублей и работают достаточно точно. Если вам нужно просто знать цифры — купите. Но если интересен сам процесс, хотите понимать схему, добавить логгер или дисплей с графиками — собирать самому интереснее и гибче.

Готовые решения для сравнения

Вариант Что измеряет Точность Цена (ориентир) Свои руки
Розеточный ваттметр (например, TS-100) Вт, А, В, кВт·ч ±1–2% 500–1000 ₽ Нет
Arduino + датчик тока ACS712 В, А, Вт ±3–5% 300–600 ₽ Да
ESP32 + трансформатор тока SCT-013 В, А, Вт, кВт·ч ±2–3% 400–800 ₽ Да
HLK-PM01 + Arduino В, А, Вт ±2% 500–900 ₽ Да

Собираем сами: на базе ESP32 и SCT-013

Я выбрал именно эту связку, потому что ESP32 — с Wi-Fi, дешёвый, и для неё готовые библиотеки для измерений уже написаны. SCT-013 — это разъёмный трансформатор тока, который не требует разрыва цепи. Просто надели на провод — и всё.

Что понадобится

  1. ESP32 (любая плата с Wi-Fi, например ESP32 DevKitC) — 300–500 ₽.
  2. Трансформатор тока SCT-013-030 (на 30 А) — 200–350 ₽.
  3. Резистор нагрузки (burden resistor) — 33 Ом, 1/4 Вт. Идёт в комплекте с некоторыми SCT-013, если нет — докупить за 10 рублей.
  4. Делитель напряжения — для измерения сетевого напряжения через адаптер HLK-PM01 (модуль преобразователя 220В→5В с аналоговым выходом) — 200–300 ₽.
  5. OLED-дисплей SSD1306 (0.96 дюйма, I2C) — 150–250 ₽.
  6. Соединительные провода, макетная плата, корпус.

Итого бюджет: около 1000–1500 рублей, если покупать всё отдельно.

Как это работает

SCT-013 — это катушка, которая надевается на один провод нагрузки (только на один, не на весь шнур!). По проводу течёт переменный ток, вокруг него возникает магнитное поле, трансформатор преобразует его в пропорциональный переменный ток в нашей измерительной цепи. Резистор нагрузки преобразует этот ток в напряжение, которое мы снимаем с аналогового входа ESP32.

HLK-PM01 берёт 220 В из той же розетки и выдаёт маленькое переменное напряжение на выходе, пропорциональное сетевому. Через делитель резисторов мы приводим его к уровню, безопасного для АЦП ESP32 (0–3.3 В).

Микроконтроллер оцифровывает оба сигнала, умножает мгновенные значения напряжения и тока, и получает мгновенную мощность. Усредняем за период — получаем активную мощность.

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

Подключение SCT-013:

  • Разъём трансформатора → два конца резистора нагрузки (параллельно).
  • Один конец резистора → GPIO34 ESP32 (аналоговый вход).
  • Второй конец → GND ESP32.
  • Средняя точка (делитель из двух резисторов по 10 кОм, включённых между 3.3В и GND) → к тому же GPIO34, чтобы сместить сигнал в середину диапазона АЦП.

Подключение HLK-PM01:

  • Выход AC модуля → делитель 47 кОм + 10 кОм → GND.
  • Средняя точка делителя → GPIO35 ESP32.

Дисплей SSD1306 подключается по I2C: SDA → GPIO21, SCL → GPIO22.

Прошивка

Используем библиоту EmonLib — она заточена именно под такие задачи. Устанавливается через библиотечный менеджер Arduino IDE.

Основная идея кода:

  1. Считываем с АЦП значения напряжения и тока несколько тысяч раз за период сетевой частоты (50 Гц).
  2. Вычисляем среднеквадратичные значения (RMS).
  3. Перемножаем — получаем полную мощность.
  4. Если известен cos φ нагрузки, умножаем на него для получения активной мощности. Для простоты можно использовать фиксированный коэффициент 0.85 для типичной бытовой техники.
  5. Выводим на дисплей и отправляем по Wi-Fi (например, на сервер Home Assistant или просто в браузер).

Калибровка — самый важный этап. Подключаем заведомо известную нагрузку (например, лампу накаливания 100 Вт) и подгоняем коэффициенты в коде, чтобы показания совпадали. Без калибровки погрешность может быть 10–15%.

Важный момент с безопасностью

Вы работаете с сетевым напряжением 220 В. Это не 5 В от USB, здесь реально можно получить серьёзный удар.

Правила, которые я соблюдаю:

  • HLK-PM01 — это изолированный модуль, он рассчитан на работу в сетевых измерителях. Но дорожки на плате всё равно под высоким потенциалом. Не трогайте, когда подключено.
  • Всё, что идёт от HLK-PM01 к ESP32, должно быть через изолированный канал. Сам HLK-PM01 обеспечивает гальваническую развязку, но убедитесь, что плата не повреждена.
  • Корпус — обязательно диэлектрический. Пластик ABS подойдёт.
  • Никаких открытых контактов сетевого напряжения внутри корпуса. Всё пропаяно и заизолировано термоусадкой.
  • Перед разборкой или перепрошивкой — отключайте от розетки. Всегда.

Частые ошибки при сборке

Ошибка 1. Надеть SCT-013 на весь сетевой шнур (и на фазу, и на ноль). Ток в них течёт в противоположных направлениях, поля компенсируются, датчик покажет ноль. Надевать только на один провод. Проще всего — использовать удлинитель, у которого один провод можно отделить от другого.

Ошибка 2. Забыть про смещение сигнала с трансформатора тока. АЦП ESP32 меряет напряжение от 0 до 3.3 В, а сигнал с SCT-013 — переменный, с отрицательной полуволной. Без смещения отрицательная часть будет обрезана, и измерения будут неправильными.

Ошибка 3. Использовать SCT-013 без резистора нагрузки. Трансформатор тока нельзя оставлять разомкнутым — это может привести к насыщению сердечника, искажению показаний и даже нагреву.

Ошибка 4. Не калибровать. Без калибровки на известной нагрузке ваш прибор будет видеть цифры, но доверять им нельзя.

Ошибка 5. Путать полную и активную мощность. Если вы просто умножаете U×I, вы получаете ВА, а не Вт. Счётчик в щитке считает Вт. Разница может быть до 30–40% для импульсных блоков питания.

Что выбрать под вашу ситуацию

Нужно просто узнать расход — без разборки и пайки.
Берите готовый розеточный ваттметр. Поставили между розеткой и прибором — видите цифры. Точность достаточная для бытовых задач. Модели с функцией учёта электроэнергии (кВт·ч) удобнее — можно узнать, сколько нажёг обогреватель за ночь.

Хотите логирование и графики в телефоне.
Собирайте на ESP32 + SCT-013. Данные можно отправлять по MQTT в Home Assistant или на любой сервер. Получаете историю потребления, графики по часам и дням, алерты при превышении.

Нужна высокая точность (для проверки оборудования или лабораторных задач).
Смотрите в сторону профессиональных анализаторов качества сети или используйте готовые модули на базе ADE9153A — это специализированная микросхема для измерений с точностью до 0.2%. Но там нужна пайка SMD и понимание аналоговой схемотехники.

Работаете с постоянным током (солнечные панели, аккумуляторы).
ESP32 + INA219. Это модуль на базе чипа от Texas Instruments, измеряет напряжение шины, падение на шунте и считает мощность. Подключается по I2C, библиотеки готовые. Точность приличная, до 1%. Работает до 26 В, для низковольтных систем — идеально.

Как проверить, что всё работает правильно

  1. Подключите лампу накаливания 100 Вт. Она должна показать примерно 100 Вт, напряжение 220–230 В, ток около 0.45 А. cos φ у лампы ≈ 1.0.
  2. Подключите вентилятор или пылесос с коллекторным двигателем. Мощность будет чуть меньше, чем U×I — из-за cos φ ≈ 0.7–0.8.
  3. Подключите зарядку телефона. Там импульсный преобразователь, cos φ может быть 0.5–0.6. Активная мощность — 5–10 Вт, полная — в полтора-два раза больше.
  4. Сравните показания с розеточным ваттметром, если есть. Расхождение в пределах 5–10% — нормально для самодельного прибора.

Итог

Собрать свой измеритель мощности — задача на пару вечеров, если у вас есть минимальный опыт с Arduino/ESP32. Главное — не пренебрегать калибровкой и безопасностью при работе с сетевым напряжением.

Если вам нужны просто цифры — купите готовый ваттметр за 500 рублей. Если хотите понимать процесс, логировать данные и видеть графики — собирайте на ESP32 с SCT-013. Это даст вам полноценный инструмент за сопоставимые деньги, но с гораздо большими возможностями.

Начните с малого: соберите схему на макетке, подключите одну лампочку, добейтесь правильных показаний. А потом уже переносите в корпус и добавляйте логирование. Так вы не перегорите от сложности и получите работающий прибор, а не кучу деталей в ящике.

radio-blog.ru — электроника и технологии