Счетчик электроэнергии своими руками на Arduino
Счетчик электроэнергии своими руками на Arduino
 

В этой статье Вы узнаете как сделать счетчик электроэнергии своими руками, проводить мониторинг напряжения питания, тока.

Таким образом, этот прибор измеряет ток питания в вашем доме через трансформатор тока, а затем выполняет несколько вычислений, чтобы узнать значение мощности, максимальной мощности и потребленное количество электроэнергии. Также очень легко добавить свой местный тариф и отобразить стоимость электроэнергии, используемой за день.

Что вам понадобится для домашнего счетчика электроэнергии

Arduino (Uno, используемый в этом руководстве)
ЖК-экран
Трансформатор тока CT - Talema AC1030 (см. Ниже различные варианты и ссылки на покупку)
Резистор с сопротивлением 56 Ом
10μF конденсатор
2 x 100KОм делительные резисторы

Как сделать счетчик электроэнергии

Сначала вам нужно начать с сборки компонентов на CT или на макетке, чтобы создать ваш текущий датчик, что выдает сигнал, который может понять ваш Arduino. У Arduino только аналоговые входы напряжения, которые измеряют 0-5 В постоянного тока, поэтому вам нужно преобразовать токовый выход CT в опорный сигнал напряжения, а затем масштабировать опорное напряжение в диапазоне 0-5 В.

Сборка компонентов

Если вы собираетесь установить свой измеритель мощности где-нибудь надолго, вы можете припаять резисторы и конденсатор непосредственно на CT.

Ниже показана базовая схема подключения CT к Arduino:
 
Экран ЖК-экрана уже использует аналоговые входы, но экран использует только A0. Просто припаяйте три провода от вашего текущего датчика к контактам на шилде и используйте A1 в качестве входного сигнала датчика, как показано ниже.
 
Когда вы подключите все свои компоненты, вам нужно подключить датчик к тому, что вы хотите контролировать.
В любом случае вам нужно поместить ТТ вокруг одного из кабелей питания, предпочтительно красного кабеля (фаза). Убедитесь, что он установлен только вокруг 1, так как он не будет работать, если он вокруг обоих, и он не может быть подключен вокруг провода заземления (желтый, зеленый оголенный провод), поскольку энергия не проходит через этот провод. Если вы подключаете его к электросети, подключите его к одному из выходных проводов после основного выключателя, как показано ниже.
 

Выбор различных компонентов

Есть по существу четыре компонента, которые должны быть выбраны или правильно рассчитаны для вас.

Выбор трансформатора тока

Первый - трансформатор тока. Используется здесь Talema AC1030, который может воспринимать номинальный ток 30A и максимальный ток 75A. При напряжении 220 В он теоретически может воспринимать до 16,5 кВт в течение коротких периодов времени, но он рассчитан на то, чтобы непрерывно воспринимать мощность 6,6 кВт, подходящую для небольшого домашнего хозяйства. Чтобы вычислить, сколько усилителей вам нужно использовать, возьмите максимальную непрерывную мощность, которую вы ожидаете потреблять и разделить по напряжению (обычно 110 В или 220 В в зависимости от вашей страны).

Калибровка нагрузочного резистора

Затем вам нужно определить значение резистора R3, это преобразует ваш ток ТТ в опорный сигнал напряжения. Начните с деления первичного тока (максимального, как использовано выше) на коэффициент трансформации трансформатора тока (имеется в техническом паспорте). Это должно быть порядка 500-5000 к 1. Эта статья работала на 42A с коэффициентом трансформации 1000: 1, давая вторичный ток 0.042A или 42mA. Ваше аналоговое опорное напряжение на Arduino составляет 2,5 В, поэтому для определения используемого вами сопротивления R = V / I - R = 2,5 / 0,042 = 59,5 Ом. Самое близкое стандартное значение резистора составляет 56 Ом, так что это было использовано.

Вот несколько вариантов на разных ТТ и их идеальных нагрузочных резисторах (в стандартных размерах):

  • Murata 56050C – 10A – 50:1 – 13Ω
  • Talema AS-103 – 15A – 300:1 – 51Ω
  • Talema AC-1020 – 20A – 1000:1 – 130Ω
  • Alttec L01-6215 – 30A – 1000:1 – 82Ω
  • Alttec L01-6216 – 40A – 1000:1 – 62Ω
  • Talema ACX-1050 – 50A – 2500:1 – 130Ω
  • Alttec L01-6218 – 60A – 1000:1 – 43Ω
  • Talema AC-1060 – 60A – 1000:1 – 43Ω
  • Alttec L01-6219 – 75A – 1000:1 – 33Ω
  • Alttec L01-6221 – 150A – 1000:1 – 18Ω
  • CTYRZCH SCT-013-000 – 100A
  • TOOGOO SCT-013-000 – 100A

Используемый конденсатор 10 мкФ, что должно быть достаточным для большинства диапазонов ТТ для бытовых применений.

Наконец, вам нужно два разделительных резистора, чтобы получить опорное напряжение 2,5 В от Arduino. Они должны быть одинаковыми, поэтому R1 = R2, и нам не нужно много тока, поэтому в этих статьях используются два 100KОм резисторы.

Загрузка скетча

Теперь вы можете загрузить скетч на свой Arduino, если вы еще не загрузили, а затем следуйте этому руководству по началу работы.

Обновление - с тех пор код был модифицирован для использования функции millis (), см. Конец раздела для обновленного кода.

Скачать файл: powermeter.zip [820 b] (cкачиваний: 23)

Если вы не хотите использовать или не имеете ЖК-экран, вы также можете изменить скетч для вывода в последовательное окно IDE Arduino, как показано ниже.

Скачать файл: powermeterserial.zip [716 b] (cкачиваний: 17)

Обновление кода


С тех пор код был модифицирован, чтобы использовать встроенную функцию millis (), которая вычисляет точное время цикла для каждого цикла, чтобы повысить точность. Это только делает примерно полпроцента улучшения точности вычислений, но это лучший способ сделать это.

Вот улучшенный код: Скачать файл: powermeterv2.zip [957 b] (cкачиваний: 23)  

Для тех из вас, кто прочитал, что функция millis () переполняется примерно через 49 дней, код автоматически выполняет обнуление.
 
Откалибруйте показания значения тока

Как уже упоминалось выше, поскольку ваша установка, CT, резисторы и входное напряжение могут быть разными, в скетче есть коэффициент масштабирования, который вам нужно будет изменить, прежде чем вы получите точные результаты.

Чтобы откалибровать свой измеритель энергии, вам нужно быть уверенным, что ток, который выдает ваш счетчик, измеряется именно так, как вы ожидаете. Для того, чтобы сделать это точно, вам нужно найти откалиброванную нагрузку. Это нелегко найти в обычном домашнем хозяйстве, поэтому вам нужно будет найти то, что использует установленное и постоянное количество энергии. Я использовал пару ламп накаливания, они бывают разных размеров, и их потребление довольно близко к тому, что указано на этикетке, то есть 100 Вт лампочка использует очень близко к 100 Вт реальной мощности, поскольку это почти полностью чисто резистивная нагрузка.

Подключите небольшую лампочку (100 Вт или около того) и посмотрите, какая нагрузка отображается. Теперь вам нужно настроить использование коэффициента масштабирования в строке калькуляции:

Двойной RMSCurrent = ((maxCurrent - 516) * 0,707) /11,8337

В данном случае это 11.8337, оно может быть выше или ниже в зависимости от вашего приложения. Либо используйте линейное масштабирование, чтобы рассчитать эту цифру, или, если вы плохо разбираетесь в математике, поиграйте с различными значениями, пока загруженная вами нагрузка не будет показана на экране измерителя энергии.

После калибровки вашего счетчика энергии вы сбросите его и оставьте его для выполнения своей работы. Ниже представлены два изображения, используемые при низкой потребляемой мощности и высокой мощности.
 



Перевод статьи "Simple Arduino Home Energy Meter
522