Снова мой обзор об модулях «умного дома» SONOFF от компании ITEAD.CC.
Я уже писал про разработку своих прошивок под модуль
Сегодня речь пойдет об «умном реле», которое умеет не только включать/выключать нагрузку, но и мерить ее мощность.
Изначально модуль POW, как и другие модули Sonoff, работает через приложение WeLink.
Но функционала стандартной прошивки мне показалось мало. А писать прошивки на модули Sonoff опыт уже есть. Поэтому сразу приступим к программированию устройства.
Для измерения электроэнергии данный девайс использует микросхемку HLW8012 китайской компании HLW Technology. Даташит на нее я нашел только на китайском языке.
Эта микросхема представляет собой однофазный измеритель среднеквадратичных (RMS) значений тока, напряжения и активной мощности.
Как видно из схемы, на вход микросхемы поступает значение напряжения на измерительном шунте и делителе, что позволяет измерять ток и напряжение нагрузки.
Два выхода дают частоту, пропорциональную измеряемым величинам — активной мощности и напряжению или току, в зависимости от состояния входа выбора измеряемой величины.
Теперь посмотрим схему Sonoff POW Включение HLW8012 соответствует даташиту. Подключение ESP8266 в этом устройстве такое:
- GPIO14 — измерение мощности
- GPIO13 — измерение тока/напряжения
- GPIO5 — переключение измерения тока или напряжения
- GPIO12 — Реле и красный светодиод
- GPIO15 — Синий светодиод
- GPIO0 — Кнопка на корпусе
Для измерения электрических показателей нужно программку, которая мерит частоту на двух входах ESP. После этого останется только откалибровать значения измеряемых величин
или подобрать коэффициенты по формуле в китайском даташите
или взять из интернета готовую библиотечку
Используя данную библиотечку не трудно сделать простейшую программу «показометр»
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#include "power.h" ESP8266PowerClass power_dev; uint32_t ms1 = 0; bool showVolage = true; void setup() { // Инициализируем порт для вывода отладочных сообщений Serial.begin(115200); Serial.println("Sonoff example start ..."); // Включаем разетку при старте pinMode(12,OUTPUT); digitalWrite(12,HIGH); // Иницилизируем модуль измерения power_dev.enableMeasurePower(); power_dev.selectMeasureCurrentOrVoltage(VOLTAGE); power_dev.startMeasure(); } void loop() { uint32_t ms = millis(); // Каждые 2000 мс if( ms1 == 0 || ms1 - ms >= 2000 ){ ms1 = ms; // Выводим показание мощности Serial.print("Power (Wt) = "); Serial.println( power_dev.getPower() ); // Выводи значение напряжения и переводим в режим измерения тока if( showVolage ){ Serial.print("Voltage (V) = "); Serial1.println(power_dev.getVoltage()); power_dev.selectMeasureCurrentOrVoltage(CURRENT); } // Выводим значение тока и переводим в режим измерения напряжения else { Serial.print("Current (mA) = "); Serial1.println(power_dev.getCurrent()); power_dev.selectMeasureCurrentOrVoltage(VOLTAGE); } showVolage = !showVolage; } } |
Применение данной программы чревато тем, что нужно при питании Sonoff от сети одновременно подключить его через USB/UART конвертер к компьютеру. В первый раз такое подключение у меня закончилось «БОЛЬШИМ БУМ»
Поэтому я сразу загружаю в Sonoff POW мою предыдущую наработку для модуля Sonoff LED/.Загружаю один единственный раз через разъем для программирования и все дальнейшие прошивки буду делать через WEB-интерфейс
Используя Googlе Chart можно быстро сделать «показометр» на веб-страничке.
Теперь переходим собственно к измерению профиля мощности. Для этого разработал прошивку, которая запоминает в памяти 720 значений с установленным промежутком между измерениями и выводит эти измерения в виде графика либо массива данных для обработки в том де Excel.
На экране отображается мгновенное значение мощности и средняя мощность за измеряемый период времени, что в данном случае эквивалентно расходу электроэнергии.
Скачать рабочий скетч можно взять отсюда
Займемся анализом.
Строительный фен бош
Первым мне попался строительный фен «бош». Взята температура 550С, затем 250С, затем режим «охлаждения»
Работа фена через минуту после включения
Профиль мощности
Из профиля мощности видно, что фен сперва сперва включает вентилятор, затем нагреватель на максимальную мощность 1.6КВт до выхода на рабочую температуру, затем мощность нагревателя снижается до 850Вт, что позволяет поддерживать рабочую температуру 550С. Причем мощность постепенно падает до 750Вт.
Для поддержания температуры 250С фен тратит около 500Вт. Режим охлаждения — 100Вт потребления вентилятора.
Для детального анализа более удобны данные в Excel
Электрическая духовка
Если регулятор фена работает практически в непрерывном режиме, то электродуховка — включение/выключение по значениям температуры.
При максимальной мощности почти 2КВт, средняя потребляемая мощность — 1.3КВт
Духовка сперва выходит на режим 250С длительным нагревом, затем включениями/выключениями нагревательного элемента поддерживает заданную температуру в своей камере
Холодильник
Цикл работы холодильника составляет 1-2 часа.
Хорошо видно из графика, когда холодильник открывался (работал дополнительный потребитель — лампочка).И после нескольких открытий видно как сократился период между включением компрессора.
Далее можно смотреть, как меняется режим работы холодильника в зависимости от температуры в комнате, загрузки продуктами и режима охлаждения. А так же насколько повлияет на работу замена износившегося уплотнителя основной камеры, особенно в жару.
Стиральная машина
Режим 30-минутной стирки с нагревом до 40С и отжимом на 1000 об/мин.
Как видно из показаний средней мощности — 30-минутный цикл приводит к энергопотреблению 0.3КВт/ч
В профиле виден нагрев с потреблением почти 2КВт, полоскание и три отжима с нарастанием оборотов.
Режим полной стирки на 2.5 часа с нагревом 40С показал расход порядка 0.5КВт/ч.
Профиль показывает также один нагрев, а дальше куча циклов полосканий и отжимов.
Полный режим работы, хоть и длится в пять раз дольше короткого, электроэнергии расход электроэнергии при этом больше всего на 80%.
Зачем мне все это нужно?
Нужно для детального анализа работы электроприборов и понимания, откуда берутся цифры в расчетке за электроэнергию.
Ведь производитель указывает на приборах чаще всего максимальную мощность, а сами приборы имеют порой довольно сложную логику управления работай и их энергопотребление — величина далеко не линейная.
Возвращаясь к модулю Sonoff POW.
Лично для меня модуль оказался очень полезным. Давно хотел заняться детальным анализом энергопотребления.
К достоинствам можно отнести невысокую стоимость, возможность загрузки как альтернативных, так и собственных прошивок.
К недостатком бы я отнес отсутствие трансформатора тока, обеспечивающего гальваническую развязку потребителя. Но такой трансформатор увеличил бы как стоимость, так и габариты конструкции.
У кота сегодня подружка смотрит его телевизор с птицами
Спасибо, интересная статья, пока не дочитал, пойду погуглю микросхему на али)
P.s. в тексте очень много опечаток, поправьте, пожалуйста, глаза режет
Здравствуйте,не подскажите как слить родную прошиву с POW R2,там память 25q32 стоит,что надо прописать в файле readflash_esp82XX.bat (-a0x0000 -s0x100000)
https://4pda.ru/forum/index.php?showtopic=872563&st=0#entry66639535
Смотрели?
На 4PDA считывает 1 мб флэшку,а мне надо на 4 мб
Доброго дня! Вы пишете: «Для этого разработал прошивку, которая запоминает в памяти 720 значений с установленным промежутком между измерениями и выводит эти измерения в виде графика либо массива данных для обработки в том де Excel.»
Интересуют детали: запоминаются данные в оперативке или во флеш? После 720 значений запись остановится или будет стирание старых данных? Как увеличить число точек и как менять промежуток меж ними?
В данной прошивке данные сохраняются в RAM
После 720 накопление данных останавливается
Изменить размер буфера и интервал записи можно этими макропеременнными
#define SIZE 720
#define P_DELAY 20000
Здравствуйте, интересно было бы посмотреть Exel документы по замерам. Особенно холодильник и стиральную машинку. Может еще какая-нибудь бытовая техника измерялась?! Будьте так добры, киньте на почту (только укажите тему в письме, дабы в спам не ушло). Заранее благодарен