Pomiar zużytej energii elektrycznej

Jak zmierzyć ilość prądu zużywanego przez pralkę, telewizor czy inne urządzenia, korzystając z Arduino

Zapewne większość z was interesowała się ile tak naprawdę zużywamy prądu w swoich mieszkaniach, czy domach. Szczególnie dotyczy to osób planujących lub będących w trakcie wdrażania inteligentnego sterowania w swoim zaciszu.

W internecie można znaleźć sporo rozwiązań, od gotowych mierników, aż po bezprzewodowo wysyłające dane moduły. Niestety zawsze jest jakieś “ale”, albo cena nas wystarczająco odstrasza, albo tak jak w przypadku mierników wpinanych w gniazdko, nie jesteśmy w stanie mierzyć poboru prądu przez więcej niż jedno urządzenie (można zastosować rozgałęziacz, ale nie oto chodzi), nie mówiąc już o wysyłaniu danych.

Bezinwazyjny czujnik natężenia prądu 100A

Jednym z opensourcowych projektów, jest OpenEnergy Monitor, bazujący na Arduino. Na stronie projektu można zakupić gotowe moduły, dzięki czemu istnieje możliwość zbudowania systemu mierzącego zużycie energii.

Sensorem odpowiedzialnym za pomiar energii są bezinwazyjnie czujniki do pomiaru prądu (CT). Te czujniki są produkowane w wersjach o maksymalnym pomiarze prądu 5A, 10A, 15A, 20A, 30A lub 100A. W ofercie Nettigo macie dostępne werjse 30A oraz 100A. Sądzimy, że te dwie wartości dobrze są dobrane w domowych zastosowaniach.

Elementem mierzącym w tych czujnikach jest transformator o podzielonym rdzeniu. Taki czujnik zapina się na pojedynczy przewód, na którym ma być mierzony prąd. Jeżeli zapniemy czujnik na kablu dwużyłowym będzie on mierzył sumę prądów płynących w przeciwnych kierunkach, co jak się domyślacie da nam wynik zerowy.

Mówiąc w sposób obrazowy, kabel zasilający będziecie musieli rozpruć, i zapiąć czujnik CT na jednym z przewodów. Najlepiej tak zwanym gorącym, zwykle w brązowej lub czarenej otulinie.

Oczywiście, mówimy tutaj o rozpruciu czarnej lub tak jak w naszym przypadku białej osłony kabla, poszczególnych przewodów (faz) NIE NALEŻY POZBAWIAĆ IZOLACJII

Błędne podłączenie

Poprawne podłączenie

Czym jest transformator prądowy (Current transformer)

Transformator prądowy (CT) jest bardzo podobny w budowie do znanych wszystkim transformatorów napięciowych. Posiada rdzeń oraz uzwojenie, z tymże tylko wtórne, pierwotne uzwojenie to kabel przechodzący przez rdzeń transformatora. Jak sama nazwa wskazuje transformator ten będzie dawać nam na wyjściu prąd proporcjonalny do prądu płynącego przez kabel, który jest uzwojeniem pierwotnym.

I(wtórne) = CT(proporcja zwojów) x I(pierwotne)
CT(proporcja zwojów) = Liczba zwojów uzwojenia pierwotnego / Liczba zwojów uzwojenia wtórnego

Jeżeli przyjmiemy że nasz czujnik posiada 2000 zwojów w uzwojeniu wtórnym, to oznacza to że prąd w uzwojeniu wtórnym będzie równy 1/2000 prądu płynącego w uzwojeniu pierwotnym.

Rezystor

Wyjście transformatora należy podłączyć do rezystora pełniącego funkcję obciążenia.Rezystor kończy (zamyka) obwód wtórny transformatora CT. Wartość obciążenia jest tak dobrana, że dostarcza napięcie proporcjonalne do prądu wtórnego.Wartość obciążenia musi być na tyle niska, aby zapobiec nasyceniu rdzenia. Oferowane przez nas czujniki 30A posiadają już wbudowany rezystor obciążający (62Ω), natomiast wersja 100A takiego nie posiada.

Podłączenie do Arduino

W celu pomiaru zużycia energii, zbudujemy prosty układ, który powie nam ile energii zużywa np. żelazko w trakcie grzania. Do tego celu użyjemy czujnika YHDC SCT-013-000 (pomiar prądu do 100A)

Oprócz czujnika potrzebować będziemy jeszcze:

Układ można złożyć na płytce prototypowej według poniższego schematu

Schemat podłączenia czujnika

Pinout wtyczki czujnika

Jeżeli będziecie chcieli podłączyć inny czujnik np. 30A zapoznajcie się z jego dokumentacją. Zobaczycie, że np. w czujniku SCT-013-030 został już wbudowany rezystor obciążający, tak więc nie trzeba go dodawać. Należy również pamiętać o zmianie wartości kalibracyjnej ( w przypadku czujnika 30A, wartość będzie wynosić 30)

W przypadku jeśli ktoś chciałby dobrać rezystor obciążający do układu, należy skorzystać ze wzoru:

R(obciążenie) = U(sensor)/I(sensor) = 2.5V / 0.0707A = 35.4Ω

Wynika z tego, że idealnym rezystorem będzie ten o wartości 35.4Ω, co nie jest łatwe do uzyskania, dlatego użyjemy opornika 33Ω

W celu zwiększenia rozdzielczości pomiaru, zaleca się aby maksymalne zasilanie na oporniku było równe “maksymalnemu dopuszczalnemu napięciu”/2, czyli w naszym przypadku dopuszczalne napięcie to 5V, co daje nam wynik 2.5V

Czujnik gotowy do zapięcia na kabel

W celu policzenia prądu(I) sensora skorzystamy ze wzoru:

I(sensor) = I(mierzone) / liczba zwojów = 141.1A / 2000 = 0.0707A

I(mierzone) = 2 * I(wartość skuteczna_prądu) = 1.414 * 100A = 141.4 A

Wartość skuteczna (RMS) to wartość do jakiej może mierzyć prąd nasz czujnik (w naszym przypadku 100A)

Kod programu

W celu sprawdzenia naszego układu, użyjemy gotowego programu dostępnego na jednej ze stron internetowych.

Do tego potrzebować będziemy jeszcze biblioteki eMonLib.

Po instalacji biblioteki przechodzimy do Arduino IDE i w zakładce Examples (przykłady), wybieramy przykład z pomiarem prądu.

#include "EmonLib.h"                   // Include Emon Library
EnergyMonitor emon1;                   // Create an instance

void setup()
{  
  Serial.begin(9600);

  emon1.current(1, 111.1);             // Current: input pin, calibration.
}

void loop()
{
  double Irms = emon1.calcIrms(1480);  // Calculate Irms only; 1480:number of samples

  Serial.print(Irms*230.0);           // Apparent power
  Serial.print(" ");
  Serial.println(Irms);               // Irms
}

Na podstawie powyższego kodu jesteśmy w stanie pomierzyć wartość skuteczną poboru mocy oraz wartość skuteczną poboru prądu (Irms).

W zależności od tego jakiego czujnika i rezystora obciążającego użyjecie zmieni się wartość kalibracji. Do tego potrzebna nam będzie informacja z noty katalogowej o liczbie zwojów oraz wartość opornika obciążającego. Te dane wystarczy podstawić do poniższego wzoru i otrzymamy wartość kalibracyjną (calibration).

wartość kalibracji = (liczba zwojów) / R(obciążający)

lub

wartość kalibracji = ( i(mierzone) / i(sensor) ) / R(obciążający)

W sieci dostępny jest bardzo wygodny kalkulator, który liczy rezystor obciążający i maksymalny prąd. Znaleźć go możecie na stronie tyler.anairo.com

Widok na gotowy układ do testowania

Na sam koniec jeszcze raz przypomijmy, niektóre z czujników posiadają już wbudowany opornik obciążający, dodanie kolejnego spowoduje błędnie odczytywanie danych. Dodatkowo zachowajcie szczególną ostrożność przy podłączaniu czujników do sieci, gdzie panuje wysokie napięcie, a błędne podłączenie lub zwarcie może doprowadzić do zagrożenia życia.

Przydatne linki: