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

Счетчик электроэнергии своими руками на 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, это преобразует ваш ток ТТ в опорный сигнал напряжения. Начните с деления первичного тока (максимально

ngin.pro

Arduino, AVR и просто интересные проекты: Система мониторинга потребления электричества

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

Особенностью этой системы будет то, что для измерения не потребуется никакого вмешательства в силовую электрическую сеть (неинвазивный метод).
Более того, сделаем эту систему беспроводной (необязательно, но очень просто и полезно).

Использовать будем вот такой датчик:


Этот датчик просто одевается на силовой провод (обязательно на один провод!) и имеет токовый выход, уровень сигнала с которого прямо пропорционален протекующему через силовой провод току. Датчик позволяет измерить ток до 100А.

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

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

Аппаратная конфигурация

Сначала необходимо разобраться с подключением датчика тока. Выход датчика является токовым и напрямую подключить его к ардуине нельзя.

Подключение такого датчика (и многих подобных) можно осуществить по схеме:

В схеме нет ничего сложного. Номиналы резисторов – 33 Ом (тот, что параллельно датчику тока – самый левый на схеме) и 10 кОм (одинаковые – образуют делитель напряжения). Почему выбрана именно такая схема и обоснование номиналов можно прочитать в первоисточнике. Чтобы нам было удобно – разместим все элементы на модуле протоплаты. Сначала удобнее распаять разъем для подключения датчика, а затем произвести монтаж остальных навесных элементов. Получается вот такая конструкция:

У нас в хозяйстве не нашлось резистора в 33 Ом, но нашлись резисторы по 100 Ом – воспользовались законом Ома (поставили три резистора в параллель и получили необходимое сопротивление). 

После этого несложного подготовительного этапа можно приступать к сборке нашего “прибора”.

Подключаем в следующем порядке:

  • Выход датчика тока – на вход A0
  • Модуль кнопки – D5
  • RF-передатчик – D2
  • OLED-дисплей – к шине IIC (SDA – A4, SCL – A5).

“Прибор” в сборе (на фото хорошо видно расположение разъемов, к которым производится подключение):

Программная часть

Основная составляющая кода – библиотеки для работы соответствующих устройств (OLED-дисплей, библиотека VirtualWire для беспроводного модуля), основу же для работы датчика тока мы возьмем из проекта OpenEnergyMonitor (библиотека EmonLib). 

В функции setup() мы производим инициализацию всех подключенных элементов (дисплей, датчик, RF-передатчик)  и в три шага проводим калибровку нашего прибора:

  1. С помощью дисплея просим пользователя подключить датчик (пока датчик на кабель не одеваем) и после этого – нажать на кнопку
  2. Прибор производит измерение “нулевых” значений (которые на самом деле – ненулевые), высчитывает среднее значение и запоминает его как поправочное значение (переменная delta)
  3. Предлагаем пользователю подключить датчик на провод и подтвердить свое действие нажатием на кнопку.
Датчик лучше подключить после стабилизатора питания

Таким образом, в функции setup() у нас происходит первичная настройка прибора.

В основной функции (loop()) у нас в каждом цикле производится замер среднеквадратичного значения тока (переменная sIrms), вычисляется значение потребляемой мощности Pcur (по формуле Pcur = sIrms*220) и происходит формирование максимального и минимального значения потребления (переменные Pmax и Pmin, соответственно). 

Наиболее внимательные из вас могут сказать, что использование в формуле значения текущего напряжения (220) – не совсем хорошо, ведь напряжение может отличаться от “стандартного” и правильнее было бы его тоже измерять. Это правильное замечание, но мы будем считать, что напряжение соотвествует ГОСТ и его колебания находятся в пределах
+
5% и просто смиримся с тем, что погрешность нашего прибора будет примерно на этом же уровне. Так же для большей точности рекомендуем использовать этот прибор после стабилизатора напряжения.

В каждом цикле производится вывод этих параметров на дисплей. 

Дополнительно в каждом цикле происходит отправка значения потребляемой мощности через RF-передатчик.

Архив с полным кодом скетча (mon_pow_oled_rf) и всеми необходимыми библиотеками находится в файле, ссылка на который приведена в конце статьи.

Если вы сделали все правильно, то на дисплее (после процесса калибровки) отобразится примерно следующее:

Первый параметр – текущая потребляемая мощность (в кВт), далее следует среднеквадратичное значение тока (в А), последние два параметра – максимальное и минимальное значение потребляемой мощности.

Как видите, такой прибор просто сделать и результат его работы виден сразу.

Беспроводная передача данных

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

Но мы не зря сразу подключили к нашему устройству RF-передатчик. 

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

Для этого на беспаечной макетке разместим ардуино nano и к его пину D2 подключим выход с RF-приемника (не забываем о том, что к модулю приемника надо еще и питание подвести – общий и +5В):

Если у вас нет комплектующих, что мы используем в статье – можете использовать те аналоги, что есть под рукой (например вместо ардуино nano и беспаечной макетки можно использовать любую полноформатную ардуино и просто проводками сделать аналогичное подключение RF-приемника).

Теперь необходимо в ардуино nano залить скетч mon_reciver и открыть монитор порта, чтобы убедиться, что данные успешно принимаются:

На этом мы закончим с нашей системой мониторинга потребления электричества.

Примечание: большая часть из приведенного списка комплектующих, что мы использовали сегодня, входят в следующие наборы:

devicter.blogspot.com

Датчики тока – Hi-Lab.ru

В системе Arduino Mega Server используется два вида датчиков тока — SCT-013 (до 100А) и ТА12 (до 5А). Оба вида датчиков бесконтактные и обеспечивают гальваническую развязку с измеряемыми цепями электрического тока. Датчики рассчитаны на разный максимальный ток и это нужно учитывать при их подключении. Система может работать и с другими датчиками тока, но на практике тестировались именно эти модели.

Подключение датчиков производится «пропусканием» провода в специально предназначенное для этого отверстие в датчике. Внимание! Пропускать нужно только один провод, а не два! И лучше, чтобы это был «фазный», а не «нейтральный» провод.

Внимание! Здесь работа проходит с сетевым напряжением, опасным для жизни. Если вы в чём-нибудь неуверенны и не являетесь специалистом в электрике, то лучше ничего не делайте самостоятельно. Найдите профессионального электронщика и закажите ему изготовление и подключение этого блока.

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

Резистор R4 нужен в тех случаях, когда на аналоговых входах контроллера присутствует аномальное положительное смещение. Если в вашем конкретном случае смещения нет, то и резистор R4 не нужен.

Это важно! Микроконтроллеры имеют строго определённое напряжение питания, например, Arduino Mega питается от 5-и вольт, а Arduino Due — от 3,3 вольт и превышение этого напряжения на выводах контроллера может вывести его из строя.

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

Power Monitor и код в системе Arduino Mega Server поддерживают до 15 каналов измерения силы тока (на Arduino Mega) и до 11 каналов (на Arduino Due). На рисунке выше представлена схема одного такого канала. Если вам нужно большее количество каналов, то вам нужно изготовить соответствующее их количество и подключить соответствующее количество датчиков.

Обратите внимание. Система Arduino Mega Server непрерывно развивается и в код проекта постоянно вносятся изменения и улучшения, поэтому, описание и документация может не соответствовать вашей конкретной версии системы. Последняя правка этой страницы относится к 0.14 версии системы.

hi-lab.ru

Подключаем Arduino к счетчику электроэнергии / Habr

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



Самый первый счетчик электроэнергии был индукционным. Принцип его работы до смешного прост — по сути это электродвигатель, ротором которого является алюминиевый диск, вращающий циферблат. Чем больше потребляемый ток- тем быстрее крутится диск. Устройство чисто аналоговое.

Однако сегодня индукционные счетчики сдают свои позиции, уступая место своим более дешевым электронным собратьям. И как раз один такой и станет подопытным:

Принцип работы не сильно изменился — в данном случае диск заменен электроникой, которая генерирует импульсы в соответствии с величиной потребляемой электроэнергии. Как правило, в большинстве приборов эти импульсы показывает светодиодный индикатор. Соответственно, чем быстрее мигает эта лампочка — тем больше сжигается драгоценных кВт.
Кроме того, на лицевой панели любого устройства есть передаточное соотношение счетчика А — число импульсов на 1 кВт*ч. Как видно из фото, у подопытного А=12800. Из этой информации можно сделать следующие выводы:

— С каждым импульсом счетчик фиксирует потребление, равное 1/12800 части от 1 кВт*ч. Если включить к счетчику нагрузку и начать просто считать импульсы, то потом легко получить потребленное ею количество электроэнергии (кВт*ч), разделив количество импульсов на передаточное соотношение.

— Так как индикатор изменяет скорость своего моргания, то можно вывести зависимость между мощностью (кВт) и временем одного импульса счетчика, что позволит получить данные о мощности/токе.
Не будем загружать статью расчетами, но если нужно то

вот ониВоистину, передаточное число счетчика — великая вещь, так как зная ее можно выразить как мощность так и ток:
Составим пропорцию из нашего передаточного соотношения (А=12800 имп/кВт*ч) и неизвестного передаточного соотношения, которое будет при нагрузке X и за время одного единственного импульса (моргания лампочки):

Здесь X — неизвестная мощность, а t — время одного импульса. Выражаем отсюда неизвестную мощность и вот оно:

Ток считается с применением следующей пропорции передаточных соотношений и токов известных и неизвестных при нагрузке X.:


Что в общем-то приводит к идентичной формуле, но для тока (ток измеряется в Амперах а индексы означают нагрузку, при которой будет данный ток):

Тут можно заметить подводный камень — нужно знать ток при идеальной нагрузке в 1 кВт. Если необходима хорошая точность — лучше его измерить самостоятельно, а если нет- то приблизительно можно посчитать по формуле (напряжение и мощность известны), но будет более грубо, так как не учитывается коэффициент мощности.


Таким образом, все упирается в измерение времени одного импульса (моргания индикатора). В своих изысканиях я опирался на этот отличный проект. Некий итальянец сделал в среде Labview интерфейс для мониторинга мощности и придумал схему для измерения импульсов. Но в его проекте красовалась огромная недоработка — он подходил только лишь для счетчиков с передаточным соотношением 1000 имп/кВт*ч.

Верхний график — средняя мощность за 5 минут, нижний — в реальном времени. Интерфейс довольно гибкий и легко модифицируется под свои нужды. Если Вы еще не имели дела со средой LabView — рекомендую познакомиться.

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

Выглядит это следующим образом
Казалось бы просто, но до этого надо еще додуматься!

Итак, если Вы все-таки решите реализовать мониторинг мощности, то есть два варианта:

1. Ваш счетчик закрыт и запломбирован по самое не балуйся. А значит, считывать импульсы можно только с помощью фоторезистора, реагирующего на моргание лампочки. Его необходимо прикрепить синей изолентой напротив светодиодного индикатора на лицевой панели счетчика.
Схема будет выглядеть следующим образом:

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

2. У Вас есть доступ к импульсному выходу счетчика. На многих моделях имеется импульсный выход, который дублирует мигания лапочки. Это сделано для того, чтобы была возможность подключать прибор к системе автоматизированного учета. Представляет собой транзистор, открывающийся при горящем индикаторе и закрывающийся при погасшем. Подключиться напрямую к нему не составляет труда — для этого потребуется всего один подтягивающий резистор. Однако прежде чем делать это, удостоверьтесь что это именно импульсный выход, а не что-либо иное! (в паспорте всегда есть схема)

Схема для подключения к телеметрическому выходу
В моем случае — доступ полный, поэтому заморачиваться я особо не стал. Устанавливаем LabView и вперед измерять! Все графики представляют собой мощность (Вт) в реальном времени.
Первым под раздачу попал многострадальный чайник. Крышечка гласит что мощность у него 2,2 кВт, однако судя по графику, исправно потребляет лишь 1700 Вт. Обратите внимание, что потребление более-менее постоянно во времени. Это означает что нагревательный элемент (скорее всего нихром) очень слабо изменяет свое сопротивление в течении всего процесса вскипячивания.

Совсем другое дело клеевой пистолет — заявленная мощность 20 Вт.Он ведет себя в соответствии с законами физики — при нагреве сопротивление нагревателя увеличивается, а ток соответственно уменьшается. Проверял мультиметром — все так и есть.

Старый радиоприемник «Весна». Здесь график ушел вверх в начале из-за того, что я запустил измерение во время импульса, соответственно это повлияло на данные. Горки на графике показывают, как я крутил ручку громкости. Чем громче — тем больше радио кушает.

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

А теперь самое интересное. Я провел небольшой эксперимент со своим стареньким ноутбуком, результат которого приведен на картинке:

Оранжевой точкой отмечено время, когда я запустил сразу несколько «тяжелых» программ. Как видите, графики загрузки процессора и возросшее потребление имеют нечто общее между собой. Недавно была одна интересная статья которая наталкивает на некоторые мысли. Не уверен что с помощью мониторинга мощности можно слить ключи шифрования, однако факт налицо.
(Трепещите параноики!)

В общем, из обычного счетчика и дешевой Arduino, можно сделать довольно простое и интересное решение для самодельного «умного дома». Кроме, собственно, мониторинга потребления электроэнергии есть вполне неплохая возможность организовать систему контроля включенных приборов, которая по изменению потребления и его характеру будет угадывать что включили. Без каких-либо дополнительных датчиков.

Исходники скетча для Arduino и файл LabView можно скачать на странице автора. После установки доработать напильником добавить блок в соответствии с описанием выше.

habr.com

Измерение потребляемой мощности с помощью Arduino » NGIN.pro

Измерение потребляемой мощности с помощью Arduino » NGIN.pro – Arduino, Raspberry Pi, умный дом, интернет вещей, крутые проекты, статьи, новости и полезная информация Измерение потребляемой мощности с помощью Arduino Измерение потребляемой мощности с помощью Arduino
 
Этот измерительный прибор измеряет ток, что потребляется по вашему дому через трансформатор тока (трансформатор тока), а затем делает несколько расчетов, чтобы вывести вам значения тока, мощности, максимальной мощность и потребленной электроэнергии. Его также очень легко добавить свой местный тариф и отображать стоимость электроэнергии.

Шаг 1: Что вам нужно?

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

    

Arduino Uno
    ЖК -дисплей
    CT – Talema AC1030
    Резистор 56Ω
    Конденсатор 10 мкФ
    2 х 100 кОм разделительные резисторы

Шаг 2: Соберите компоненты

 Прежде всего, необходимо начать сборку компонентов на CT, либо на макете, чтобы создать свой датчик тока, xnj вырабатывает сигнал, который ваш Arduino может понять. Arduino имеет только входы аналогового напряжения, которые измеряют 0-5V DC, так что вам нужно, чтобы преобразовать выходной ток от трансформатора тока в источник опорного напряжения, а затем масштабировать источник опорного напряжения в диапазоне 0-5В.

После того, как вы подключили все компоненты, необходимо подключить датчик на то, что вы хотите контролировать. Если вы желаете, чтобы контролировать несколько приборов, то вы должны подключить CT на линию ввода мультиштекером. Кроме того, вы можете подключить CT непосредственно на электросети вашего дома и контролировать все приборы в доме, как это было сделано здесь. В любом случае, вам нужно поставить CT вокруг одного из питающих кабелей. 

Шаг 3: Загрузите код

ngin.pro

Измерение тока в домашней сети / Habr

Существует целый класс устройств под названием Ethernet Relay, которые позволяют удаленно управлять подключенной нагрузкой через сеть. Большинство из них достаточно дорогие – ближе к 100 долл., и заведомо уступают по цене и по гибкости настройки связке, скажем, Raspberry Pi + PiFace. А что если задача не только включать-выключать нагрузку, но и измерять протекающий ток? Для этого требуется собственно датчик (на шунте или эффекте Холла) и АЦП (Raspberry Pi не содержит встроенного АЦП). В качестве датчика можно взять недорогой ACS712, а в качестве АЦП, например, ADC-Pi.

ADC-Pi мне не понравился по двум причинам:

  • при той частоте измерений, которая требуется для определения силы переменного тока в сети, этот АЦП дает очень большую погрешность (скорее всего я до конца не разобрался с регистрами)
  • используя этот АЦП в связке с Raspberry Pi под Linux сложно обеспечить необходимую стабильность периода измерений. Устанавливать и настраивать RTOS Linux только для этой задачи мне показалось слишком сложным предприятием, тем более что есть более простое и проверенное решение: Arduino

У всех Arduino уже есть АЦП (8-битный, но этого вполне достаточно), скетчи для Arduino исполняются с необходимой стабильностью, для связи с Raspberry Pi есть различные варианты, самый простой из которых – USB кабель. Ну и конечно, привлекательная цена.

Связка, которую я использовал, приведена на картинке.

Измерение силы тока представляется несложной задачей, если бы не одно «но»: физические датчики «шумят». На рисунке приведен пример фактических и расчетных показателей тока для моей схемы при 512 последовательных измерениях.

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

Попытка номер раз

Формула переменного тока (кто забыл – см. wiki)

i=Im sin(ωt+ψ)

где:

Im – максимальное значение тока
ω – угловая частота
t – время (порядковый номер) изменения
ψ – начальная фаза тока

Можно попытаться найти необходимые параметры, используя аналитические инструменты. И тут нас ждет приятный сюрприз: осенью прошлого (2013) года компания Wolfram выпустила версию своего замечательного пакета Mathematica для Raspberry Pi. Бесплатно (для домашнего использования). И мы можем применить его для анализа данных, считанных с датчика.

Пример вызова пакета расчета в Raspberry Pi:

pi@raspi ~ $ wolfram -script calc_current.wl datafile=/tmp/data.csv

Сам скрипт calc_current.wl ниже с комментариями:

Прочитать данные из файла, переданного в качестве параметра. Файл содержит строки вида <номер измерения>,<значение>.

data=Import[$CommandLine[[4]]]

Когда данные прочитаны, можно проделать анализ Фурье (Fast Fourier Transform) для того чтобы определить, приблизительно, количество циклов синусоиды на имеющейся выборке. Зависимость силы тока от времени нелинейна, и приблизительная угловая скорость, рассчитанная по FFT и переданная в качестве начального значения, резко увеличит шансы подобрать правильные параметры синусоиды.

fourier=Take[Abs[Fourier[data[[All,2]]]],{2,256}]

Если максимальное значение FFT не сильно отличается от среднего по выборке, можно сделать вывод, что выраженной синусоиды нет, все показатели представляют собой «шум», а реальная сила тока равна нулю.

topcycle=Ordering[fourier,-1]
avg=Mean[fourier]
top=fourier[[topcycle[[1]]]]
If[top < 10 * avg, Print["No AC"]; Exit[]]

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

nlm=NonlinearModelFit[data, a Sin[b x + c]+d, {a,{b, 2 Pi * topcycle[[1]] / 512}, c, d},x]

Зная физические характеристики АЦП (размерность 1024, базовое напряжение 5V) и датчика (в моей версии 0.185V / A), можно вычислить эффективную силу тока:

imax=Abs[nlm["BestFitParameters"][[1]][[2]]] / (1024 / 5 * 0.185)
Print["Imax=", imax]
iefc=imax / Sqrt[2]
Print["Iefc=", iefc]
Print["Power=", iefc * 230]

Предложенный метод работает в большинстве случаев. Количество измерений, когда NonlinearModelFit не смогла верно подобрать параметры синусоиды, составило около 5 процентов. Однако каждое измерение требует много времени – у меня в среднем 5 секунд – для запуска приложения wolfram. Поэтому…

Попытка номер два

Поскольку частота переменного тока в сети стабильна и составляет (в России) 50 Гц, угловую скорость можно вычислить заранее и вместо нелинейной регрессии получить регрессию линейную. В самом деле,

или

Дифференцируя по X и Y, получаем систему линейных уравнений:

Решая систему по Крамеру, получим значения коэффициентов:

Тогда по теореме Пифагора максимальное значение тока составит:

Arduino-скетч, который реализует данный алгоритм, можно найти на Github-е. Метод обеспечивает хорошую точность измерений: для схемы на рисунке измеренное значение тока составляло стабильно 0.13A, что соответствует потреблению 29.9 Вт при напряжении 230V. Номинал лампочки, которая служила нагрузкой, 30 Вт.

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

habr.com

Датчик тока (Troyka-модуль) [Амперка / Вики]

Используйте датчик тока (Troyka-модуль) для контроля потребления тока, фиксируйте блокировку моторов или аварийное обесточивание системы.

Работа с высоким напряжением опасна для здоровья!

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

Если вы не знаете как подключить датчик к электроприбору, работающему от общей сети 220 В или у вас есть сомнения — остановитесь: вы можете устроить пожар или убить себя.

Вы должны чётко понимать принцип работы устройства и опасности работы с высоким напряжением.

Видеообзор

Подключение и настройка

Датчик общается с управляющей электроникой по трём проводам. На выходе сенсора — аналоговый сигнал. При подключении к Arduino или Iskra JS удобно использовать Troyka Shield, а для тех кто хочет избавится от проводов подойдёт Troyka Slot Shield. Для примера подключим шлейф от модуля к группе контактов Troyka Shield, относящихся к аналоговому пину A0. В своём проекте вы можете использовать любые аналоговые пины.

Примеры работы

Для облегчения работы с датчиком мы написали библиотеку TroykaCurrent, которая переводит значения аналогового выхода датчика в миллиамперы. Скачайте и установите её для повторения описанных ниже экспериментов.

Измерение постоянного тока

Для измерения постоянного тока подключим сенсор в разрыв цепи между светодиодной лентой и питанием. Выведем в Serial-порт текущее значение постоянного тока в миллиамперах.

CurrentDC.ino
// библиотека для работы с датчиком тока (Troyka-модуль)
#include <TroykaCurrent.h>
 
// создаём объект для работы с датчиком тока
// и передаём ему номер пина выходного сигнала
ACS712 sensorCurrent(A0);
 
void setup() 
{
  // открываем последовательный порт
  Serial.begin(9600);
}
 
void loop() 
{
  // вывод показателей сенсора для постоянного тока
  Serial.print("Current is ");
  Serial.print(sensorCurrent.readCurrentDC());
  Serial.println(" mA");
  delay(100);
}

Измерение переменного тока

Для измерения переменного тока подключим датчик в разрыв цепи между источником переменного напряжения и нагрузкой. Выведем в Serial-порт текущее значение переменного тока в миллиамперах.

CurrentAC.ino
// библиотека для работы с датчиком тока (Troyka-модуль)
#include <TroykaCurrent.h>
 
// создаём объект для работы с датчиком тока
// и передаём ему номер пина выходного сигнала
ACS712 sensorCurrent(A0);
 
void setup() 
{
  // открываем последовательный порт
  Serial.begin(9600);
}
 
void loop() 
{
  // вывод показателей сенсора для постоянного тока
  Serial.print("Current is ");
  Serial.print(sensorCurrent.readCurrentAC());
  Serial.println(" mA");
  delay(100);
}

Элементы платы

Датчик ACS712ELCTR-05B

Датчик тока ACS712ELCTR-05B основан на эффекте Холла, суть которого в следующем: если проводник с током помещён в магнитное поле, на его краях возникает ЭДС, направленная перпендикулярно к направлению тока и направлению магнитного поля. Микросхема конструктивно состоит из датчика Холла и медного проводника. Протекающий через медный проводник ток создает магнитное поле, которое воспринимается элементом Холла. Магнитное поле линейно зависит от силы тока.

Уровень выходного напряжения сенсора пропорционально зависит от измеряемого тока. Диапазон измерения от −5 А до 5 A. Чувствительность — 185 мВ/А. При отсутствии тока выходное напряжение будет равняться половине напряжения питания.

Нагрузка

Датчик тока подключается к нагрузке в разрыв цепи через колодки под винт. Для измерения постоянного тока подключайте сенсор, учитывая направления тока, иначе получите значения с обратным знаком. Для переменного тока — полярность значения не имеет.

Контакты подключения трёхпроводного шлейфа

Модуль подключается к управляющей электронике по трём проводам. Назначение контактов трёхпроводного шлейфа:

  • Питание (V) — красный провод. Исходя из документации питание датчика 5 вольт. В результате теста модуль работает и от 3,3 вольт.

  • Земля (G) — чёрный провод. Должен быть соединён с землёй микроконтроллера;

  • Сигнальный (S) — жёлтый провод. Подключается к аналоговому входу микроконтроллера. Через него управляющая плата считывает сигнал с датчика.

Принципиальная и монтажная схемы

Характеристики

  • Напряжение питания: 5 В

  • Потребляемый ток: 10 мА

  • Измеряемый ток: переменный и постоянный

  • Диапазон измеряемого тока: −5…+5 A

  • Чувствительность: 185 мВ/А

  • Гальваническая развязка, пробивное напряжение: 2,1 кВ

  • Рабочий диапазон температур: −40…+85 °C

  • Габариты: 25×25 мм

Ресурсы

wiki.amperka.ru

alexxlab

leave a Comment