RSS блога
Подписка
"Умный" монитор энергопотребления на DIN рейку
- Цена: $4.83
- Перейти в магазин
Однажды долгим зимним вечером возникла у меня идея автоматизировать процесс подачи показаний счетчика электроэнергии, но для этого мне надо было знать сколько электроэнергии я фактически потратил. К сожалению счетчик электроэнергии у меня был старый, глупый и единственный способ узнать сколько он насчитал — это подсчитывать мигания светодиодов. Поэтому решил сделать свой счетчик, конечно же на основе популярного модуля PZEM-004T и не менее популярного микроконтроллера ESP-8266.
Основные компоненты — PZEM-004T и ESP-12F заказал на Aliexpress, а мелочевку — двухцветный светодиод, пару кнопок, модуль питания импульсный HLK-PM03 на 3,3V (для питания ESP) и корпус DIN-1 купил в местном радиомагазине.
Вначале проверил совместную работу PZEM и ESP на макетной плате — у меня были сомнения из-за того, что последовательный порт PZEM рассчитан на 5В, а ESP на 3.3В. В старых версиях PZEM-004T это решалось дополнительными сопротивлением, но сейчас продают модуль версии v3, (визуально можно отличить по белым оптопарам рядом с разъемом последовательного порта) который прекрасно заработал с 3.3В без какой либо переделки.
Нарисовал в EasyEDA схему — easyeda.com/viperet/powermonitor, предусмотрел на ней две кнопки для управления и двухцветный красно-зеленый светодиод для отображения состояния устройства
Схема получалась очень простая и решил для пробы заказать ее изготовления на JLCPB, первый заказ на 5 плат с учетом купона который выдается новым пользователям обошелся мне в $2. Когда получил платы — был очень приятно удивлен, ну что сказать — изготовленная в заводских условиях плата выводит самоделки на совершенно иной уровень.
Прошивку для ESP сделал используя PlatformIO и мою любимую IDE Visual Studio Code. Добавил функционал настройки используя WiFiManager, периодическую отправку всех показателей, которые регистрирует PZEM-004T на удаленный сервер по протоколу MQTT и так же отображение текущий показателей через web-интерфейс с обновлением каждую секунду.
Исходники прошивки доступны на GitHub: github.com/viperet/esp8266-power-monitor
Перед тем, как прошивать устройство, необходимо «собрать» веб интерфейс (необходим NodeJS):
После этого можно заливать SPIFFS из PlatformIO и прошивать микроконтроллер. При первом включении он создает точку доступа, подключившись к которой можно настроить параметры доступа к WiFI (SSID, пароль), а так же адрес, порт, логин, пароль и топик MQTT, куда будут отправляться показатели.
После перезагрузки устройство подключается к WiFi и начинает работу, мигание зеленого светодиода означает отправку данных на сервер, красный — ошибка.
Если зайти на адрес ESP браузером, то можно посмотреть текущие показатели почти в реальном времени — микроконтроллер увеличивает частоту опроса PZEM до 1 раза в секунду и отправляет значения в браузер по протоколу WebSocket.
На своем домашнем сервере автоматизации запустил небольшое приложение на NodeJS которое «слушает» сообщения от счетчика в MQTT и сохраняет данные в InfluxDB для истории и красивых графиков. В принципе сохранение данных в InfluxDB можно сделать и напрямую с ESP8266, добавлю это в следующей версии прошивки. InfluxDB сохраняет все данные и позволяет просматривать графики:
Конечно можно сделать все гораздо проще, купить готовое устройство, например недавно был обзор Zemismart ZMAi-90, но мне было интересно собрать свое устройство, написать для него прошивку, которая надеюсь кому-то будет полезна.
Основные компоненты — PZEM-004T и ESP-12F заказал на Aliexpress, а мелочевку — двухцветный светодиод, пару кнопок, модуль питания импульсный HLK-PM03 на 3,3V (для питания ESP) и корпус DIN-1 купил в местном радиомагазине.
Вначале проверил совместную работу PZEM и ESP на макетной плате — у меня были сомнения из-за того, что последовательный порт PZEM рассчитан на 5В, а ESP на 3.3В. В старых версиях PZEM-004T это решалось дополнительными сопротивлением, но сейчас продают модуль версии v3, (визуально можно отличить по белым оптопарам рядом с разъемом последовательного порта) который прекрасно заработал с 3.3В без какой либо переделки.
Нарисовал в EasyEDA схему — easyeda.com/viperet/powermonitor, предусмотрел на ней две кнопки для управления и двухцветный красно-зеленый светодиод для отображения состояния устройства
Схема получалась очень простая и решил для пробы заказать ее изготовления на JLCPB, первый заказ на 5 плат с учетом купона который выдается новым пользователям обошелся мне в $2. Когда получил платы — был очень приятно удивлен, ну что сказать — изготовленная в заводских условиях плата выводит самоделки на совершенно иной уровень.
Прошивку для ESP сделал используя PlatformIO и мою любимую IDE Visual Studio Code. Добавил функционал настройки используя WiFiManager, периодическую отправку всех показателей, которые регистрирует PZEM-004T на удаленный сервер по протоколу MQTT и так же отображение текущий показателей через web-интерфейс с обновлением каждую секунду.
Исходники прошивки доступны на GitHub: github.com/viperet/esp8266-power-monitor
Перед тем, как прошивать устройство, необходимо «собрать» веб интерфейс (необходим NodeJS):
npm install
npm run build
После этого можно заливать SPIFFS из PlatformIO и прошивать микроконтроллер. При первом включении он создает точку доступа, подключившись к которой можно настроить параметры доступа к WiFI (SSID, пароль), а так же адрес, порт, логин, пароль и топик MQTT, куда будут отправляться показатели.
После перезагрузки устройство подключается к WiFi и начинает работу, мигание зеленого светодиода означает отправку данных на сервер, красный — ошибка.
Если зайти на адрес ESP браузером, то можно посмотреть текущие показатели почти в реальном времени — микроконтроллер увеличивает частоту опроса PZEM до 1 раза в секунду и отправляет значения в браузер по протоколу WebSocket.
На своем домашнем сервере автоматизации запустил небольшое приложение на NodeJS которое «слушает» сообщения от счетчика в MQTT и сохраняет данные в InfluxDB для истории и красивых графиков. В принципе сохранение данных в InfluxDB можно сделать и напрямую с ESP8266, добавлю это в следующей версии прошивки. InfluxDB сохраняет все данные и позволяет просматривать графики:
Конечно можно сделать все гораздо проще, купить готовое устройство, например недавно был обзор Zemismart ZMAi-90, но мне было интересно собрать свое устройство, написать для него прошивку, которая надеюсь кому-то будет полезна.
Самые обсуждаемые обзоры
+73 |
3606
145
|
+32 |
2825
55
|
+53 |
3798
69
|
Инфлакс хранит только временные ряды, но делает это очень эффективно. MySQL/Postgres – универсальное решение, но менее производительно для задач хранения телеметрии (хотя для DIY-задач разница не заметна).
PostgreSQL уж, если на то пошло…
Только запилить отправку показаний на вайбер
в айсикью ещё и в лайвджорнал постить )
А ещё бывает, что в доме/подъезде образуется человек, который за всех соседей отправляет данные счётчиков. И вот он тоже может брать показания по вайберу.
Все это бесплатно!
у меня работают с sonoff basic и mini
там для basic, для mini- делается по аналогии, в инете есть схема где у него Rx и Tx
Вот это я называю «живут люди». Когда я могу увидеть эти данные в кабинете моего поставщика энергии :)
Можно ли использовать другой токовый трансформатор? Этот, вроде, максимум на 100А, а можно ли подключить на 500А? например, такой https://aliexpress.ru/item/item/33035621426.html
А зачем на верхушке?
На верхушке, чтобы симулировать самый тяжёлый случай включения нагрузки. Если включать в момент перехода через ноль, пусковой ток может быть гораздо меньше.
«нужен именно пусковой ток» — а случайно не двигателя? :)
Детектор нуля вот есть, например:
github.com/unwireddevices/umdk-boards/blob/master/umdk-2dim.pdf
Или просто вместо того, чтобы раз в месяц вбить две группы цифр в окошки формы? Однако…
плюс минус километр контролёрам до лампочки)
а одинаковые показания перепроверят.
у нас ходят каждый месяц
Почему бы и нет?
хотя, пожалуй, не вариант. есп у меня с pzem снимает статистику, а не сам считает. (на случай ребутов контроллера). и вот суммарное потребление и расходится.
Все упаковано в корпус от горелого блока питания от ноута, питание +5 и +3,3 завел от платы sonoff basic R2 (на ней ESP8285 поехала кукухой), модуль взял ESP-01 с перепаяной нормальной winbond (ESP-12 это слишком жирно для монитора имхо).
А на текущее потребление (измеряемое двумя pzem в разных точках) опирается как раз фазовый регулятор, чтобы свести разницу между показаниями к минимальной.
Подключен к домотикзу
2)" Для целей подачи показаний точности хватает."
ИМХО вот эти два предложения автора топика определяют проделанную работу как нахрен никому ненужную…
1. На сколько китайские измерители расходятся с коммерческими счетчиками?
2. Не увидел многотарифной системы, которая уже несколько лет используется. Даже если все это залить в прошивку, расхождения еще больше будут (((
P..S. Для коммерческого учета все это не годно, так как нет 100% гарантии что данный показометр считает с счетчиком коммерческого учета. Рано или поздно придется производить сверку и корректировку. Особенно сильно вносят расхождения перезагрузки контроллера, которые, увы, случаются.
ИМХО, нормальное снятие показаний — это именно чтение данных неспосредственно с коммерческих счетчиков. Благо, таких сейчас навалом занедорого. Все остальное, это потешить свое техническое самолюбие
Реально интересно, что может столько потреблять. У меня месячное потребление в районе 200квт.
прошивка работает с багами — бывают выбросы показаний и нет сглаживания(((
Вашу версию можно настроить на народмон и отправку показаний раз в 5-10мин?
Кстати встречал мнение, что максимальная точность у ТТ, если кабель проходит через кольцо строго перпендикулярно и строго по центру.
«максимальная точность у ТТ, если кабель проходит через кольцо строго перпендикулярно и строго по центру.» — не знаю — не спец
Прошивку использовал от sav13, немного измененную, логи пишутся в файлики по часу, и потом сервер эти файлы скачивает и ложит в БД, удаляются с ESP. Сервер писал сам на php.
Может кто-то видел обучения по созданию визуализаций несложных для ESP под IDE Visual Studio Code, как у автора, я в ютубе не нашёл хороших для чайников.
Буду благодарен.
Текущее потребление посмотреть, скачут ли уровни, не тырит ли сосед ЭЭ, посмотреть сколько кушает освещение, бойлер и т.д.
Но в последнем случае проще его включить через управляемую розетку с мониторингом.
Какая версия pzem?
нужна соответственная прецизионная настройка и опорные элементы соотв точности и ТКR ТКС
А вас там майнинг-ферма?
я например поменял старые лампочки в прожекторах(были по 1000w) на светодиоды когда нашел какие они волны рисуют на графике
Но по России вроде больше 8 рублей на Чукотке тарифов и не встречается.
у меня около 3500kwh в месяц (самый холодный и самый жаркий месяц года) при цене 0.22 евроцента за 1 kwh (раньше расходовал ~4000-4500kwh)
ps. я на 3 фазы так и сделал, 3 pzem+3sonoff mini
pm.h-net.ru/
Аптайм 3 дня — планово меняли счётчик, до этого работал годами. Высокая температура — датчик на блоке питания, низкая — датчик в электрощите.
Вечером после 23 часов работает посудомойка (ночной тариф). Мелкие пики — работает термопот (700Вт).
Токовые клещи же имеют промежуток, а здесь все сплошные кольцом.
Не подскажете почему там на них миниджек на 3 провода, хотя нужно 2?
Такой, например. Или такой.
Собранное устройство можно приобрести за ~2000 руб., набор для сборки — за 1000 руб. Я взял второй вариант, сборка несложная. Естественно счетчик должен быть с импульсным выходом.
LILYGO TTGO T-OI + Tasmota 6.7.1 + openHAB 2
Планирую установить в щиток подобное устройство для контроля включения электроплиты, чтобы на это время блокировать на уровне openhab-a включение обогревателей и бойлера. Общей мощностью 15 Квт ограничен, потому хочу исключить перегруз вводных автоматов. В основном, точность не требуется, достаточно самого факта, что нагрузка, например, от плиты превысило 1 КВт