Dôvodom realizácie zariadenia bol zámer doplniť meranie spotreby elektrickej energie u nás v byte.
Je pravda, že u múdrejších elektromerov sú namerané údaje posielané priamo na web dodávateľa elektrickej energie, kde si ich môžete pozrieť odkiaľkoľvek. Ja túto možnosť nemám, tak som sa rozhodol podobné meranie zrealizovať po vlastnej osi.
Pôvodne som si myslel, že podobné meranie bude po HW stránke komplikované, až som narazil na stránku https://openenergymonitor.org/ kde je celá teória okolo merania spracovaná podrobne po SW aj HW stránke. K dispozícii je aj knižnica pre Arduino, ktorá sa stará o meranie reálneho výkonu, zdanlivého výkonu, napätia, prúdu, účinníka. Využité sú dva kanály AD prevodníka (1,2). Namerané hodnoty som ďalej použil pre stanovenie priemerných hodnôt a zobrazenie na LCD a webserveri.
Meranie napätia
Aby nebolo meranie striedavého napätia zbytočne komplikované a nebezpečné, je použitý klasický malý transformátor 230V/9V 2,8VAVýstupné napätie je teda bezpečné. Na výstupe je pripojený odporový delič tvorený rezistormi R1 a R2, ktorý upravuje napätie z transformátora na napätie vhodné pre spracovanie AD prevodníkom:
Maximálna hodnota napätia pre 9V sekundárne vinutie je 9V*1.414=12,7V
Pri použití hodnôt rezistorov v schéme dostaneme maximálnu hodnotu výstupného napätia na deliči približne 1,15V, čo je pre vstup prevodníka absolútne bezpečné. Výpočet: maximálna hodnota na výstupe deliča = (R1 / (R1 + R2)) * maximálna hodnota vstupného napätia = (10k/(10k+100k))*12,7V = 1,15V
Viac https://learn.openenergymonitor.org/electricity-monitoring/voltage-sensing/measuring-voltage-with-an-acac-power-adapter
Dôležité! Aby nedošlo k skresleniu merania napätia, nepoužívajte transformátor na napájanie ďalších periférií, ale použite oddelený zdroj. Ja som na napájanie ostatnej elektroniky použil vykuchanú nabíjačku na mobil s 5V výstupom. Viac https://learn.openenergymonitor.org/electricity-monitoring/voltage-sensing/why-cant-i-use-a-single-transformer
Pri použití hodnôt rezistorov v schéme dostaneme maximálnu hodnotu výstupného napätia na deliči približne 1,15V, čo je pre vstup prevodníka absolútne bezpečné. Výpočet: maximálna hodnota na výstupe deliča = (R1 / (R1 + R2)) * maximálna hodnota vstupného napätia = (10k/(10k+100k))*12,7V = 1,15V
Viac https://learn.openenergymonitor.org/electricity-monitoring/voltage-sensing/measuring-voltage-with-an-acac-power-adapter
Dôležité! Aby nedošlo k skresleniu merania napätia, nepoužívajte transformátor na napájanie ďalších periférií, ale použite oddelený zdroj. Ja som na napájanie ostatnej elektroniky použil vykuchanú nabíjačku na mobil s 5V výstupom. Viac https://learn.openenergymonitor.org/electricity-monitoring/voltage-sensing/why-cant-i-use-a-single-transformer
Transformátor možno samozrejme použiť aj s iným výkonom alebo napätím (tu treba ale prepočítať delič).
Výpočet zaťažovacieho rezistora Rs pre prúdový transformátor
Prúdový transformátor nikdy nesmie pracovať bez zaťažovacieho rezistora, inak môže dôjsť k naindukovaniu vysokého napätia na sekundárnom vinutí a úrazu elektrickým prúdom alebo prerazeniu izolácie!
V našom prípade je potrebné vypočítať zaťažovací rezistor tak, aby sme mohli napätie na tomto rezistore snímať AD prevodníkom procesora a neprekročili maximálnu hodnotu, ktorú prevodník znesie.
Najprv si určíme maximálny prúd, ktorý chceme v našom zapojení merať. Budeme počítať s hodnotou 25A, čo je hodnota hlavného ističa vo väčšine domov/bytov.
25A je ale stredná hodnota prúdu, vypočítame si maximálnu hodnotu a to vynásobením odmocninou z 2: 25A*1.414=35,35A
Vydelíme maximálnu hodnotu prúdu počtom závitov sekundárneho vinutia prúdového transformátora. V mojom prípade som použil transformátor 1:100, čiže 35,35A / 100 = 0,3535A . Dostaneme maximálnu hodnotu prúdu na sekundárnom vinutí.
Vypočítame zaťažovací rezistor Rs. Napätie na tomto rezistore budeme merať AD prevodníkom. AREF je referenčné napätie AD prevodníka, pre ATMEGA328 v Arduine NANO je to 5V.
Rs = (AREF/2) / maximálna hodnota prúdu na sekundárnom vinutí prúdového transformátora = 2,5V / 0,3535A = 7.07R
V rade E12 máme k dispozícii hodnoty rezistorov 6,8R a 8,2R. Volíme vždy menšiu hodnotu rezistora, aby pri meraní maximálneho prúdu nedošlo k prekročeniu hodnoty napätia na vstupe AD prevodníka a jeho poškodeniu. Zvolíme hodnotu 6,8R.
Alebo použite kalkulačku na stránke https://tyler.anairo.com/projects/open-energy-monitor-calculator
Viac https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
Alebo použite kalkulačku na stránke https://tyler.anairo.com/projects/open-energy-monitor-calculator
Viac https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino
Meranie striedavého napätia AD prevodníkom Arduina
AD prevodník procesora Arduina NANO má rozsah vstupného napätia od 0 do 5VDC. Pri meraní striedavého napätia na výstupe prúdového transformátora a transformátora na meranie sieťového napätia ale potrebujeme merať obidve polvlny. Preto je nutné vytvoriť umelú zem. Jej vytvorením umožníme meranie kladnej aj zápornej polvlny. Zníži sa tím ale rozsah vstupného napätia na 0-2,5VAC
Umelá zem sa dá vytvoriť buď dvoma rezistormi rovnakej hodnoty, viď odkaz https://learn.openenergymonitor.org/electricity-monitoring/ctac/acac-buffered-voltage-bias
Lepším riešením je ale použiť zapojenie s OZ a pár súčiastkami, ktoré je stabilnejšie a umožňuje presnejšie meranie. V mojom zapojení som použil OZ LM358, ako je uvedené v schéme vyššie.
AD prevodník procesora Arduina NANO má rozsah vstupného napätia od 0 do 5VDC. Pri meraní striedavého napätia na výstupe prúdového transformátora a transformátora na meranie sieťového napätia ale potrebujeme merať obidve polvlny. Preto je nutné vytvoriť umelú zem. Jej vytvorením umožníme meranie kladnej aj zápornej polvlny. Zníži sa tím ale rozsah vstupného napätia na 0-2,5VAC
Umelá zem sa dá vytvoriť buď dvoma rezistormi rovnakej hodnoty, viď odkaz https://learn.openenergymonitor.org/electricity-monitoring/ctac/acac-buffered-voltage-bias
Lepším riešením je ale použiť zapojenie s OZ a pár súčiastkami, ktoré je stabilnejšie a umožňuje presnejšie meranie. V mojom zapojení som použil OZ LM358, ako je uvedené v schéme vyššie.
Kalibrácia merania
Tá sa vykonáva úpravou konštánt Ucal a Ical v zdrojáku.
Kalibráciu merania prúdu robíme pri maximálnej záťaži. Prúdový transformátor zapojíme do meraného obvodu a ten zaťažíme vhodnou kombináciou spotrebičov (kanvica, sporák, žiarovky, ohrievač - najlepšie odporová záťaž). Presnejším kliešťovým ampérmetrom zároveň meriame hodnotu prúdu a upravíme kalibračnú konštantu v zdrojáku tak, aby boli obidve hodnoty zhodné. U mňa som nemal kde zapojiť kliešťový ampérmeter (nedostatok miesta v rozvádzači), tak som vykonal kalibráciu na stole, pričom som použil na napájanie jednu fázu zo 400V zásuvky istenej 32A ističom.
Kalibrácia napätia je jednoduchšia, presnejším voltmetrom zmerajte hodnotu sieťového napätia a upravte hodnotu Ucal v zdrojáku.
Zdrojový kód pre Arduino
O samotné meranie a výpočet jednotlivých hodnôt sa stará knižnica EmonLib. Tú je potrebné pred kompiláciou zdrojáku stiahnuť zo stránky https://learn.openenergymonitor.org/electricity-monitoring/ctac/how-to-build-an-arduino-energy-monitor prípadne odo mňa [ODKAZ]
Zvyšok kódu, ktorý som doplnil, spracováva hodnoty z knižnice a stará sa o ich zobrazenie.
Zdroják je na stiahnutie tu.
Poznámky k zapojeniu
Prúdový transformátor odporúčam pripojiť krúteným párom tieneného kábla - dobre poslúži FTP kábel. Tienenie pripojte na zem Arduina. Tiež nezabúdajte na bezpečnosť pri inštalácii, ak budete transformátor inštalovať do bytového rozvádzača. Viac https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/extending-ct-cable
U zapojenia môže nastať problém s presnosťou pri meraní malých záťaží. Je to dané nedokonalosťou AD prevodníka. Viac teórie je popísanej v článku tu https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/measurement-implications-of-adc-resolution-at-low-current-values
Zobrazenie nameraných údajov
Namerané údaje sa zobrazujú na znakovom LCD s radičom HD44780 a rozlíšením 16x4 znakov, ako je uvedené vyššie. LCD som mal v zapojení len na odskúšanie, viac som mu nevenoval pozornosť, nakoľko som sa prioritne venoval FW pre obsluhu webservera. Ten je tvorený tak, ako u GM čítača, modulom s obvodom Wiznet W5100. V zdrojáku je nastavené DHCP, podľa potreby je možné použiť aj pevnú IP adresu.
Webserver zobrazuje:
-aktuálne namerané údaje: Reálny príkon, zdanlivý príkon, napätie siete, prúd, účinník
-priemerné hodnoty za posledných 5 minút
-priemerné hodnoty za poslednú hodinu
Úpravou zdrojáku nie je problém docieliť odosielanie údajov napr. do mysql databázy, ako som to spravil v mojom prípade a s údajmi ďalej pracovať. Prípadne môžete využiť niektorú z IoT služieb pre Arduino a sledovať namerané údaje na diaľku.
Nakoľko mám v byte len jednu fázu, neriešil som trojfázové meranie. Tiež to nebude HW problém, ale obávam sa o to, že by na to nestačila pamäť procesora ATMEGA328.
< Dozadu | Dopredu > |
---|