2024. április 24., szerda

Gyorskeresés

Home Server kialakítása Broadwell-U alapokon

Passzív hűtéssel ellátott, kis fogyasztású, univerzálisan használható eszköz építése, linux kiszolgálóra támaszkodva.

[ ÚJ TESZT ]

Arduino Energy Monitor

A fogyasztás (hatásos teljesítmény) méréséhez szükségem volt egy árammérő és egy feszültségmérő modulra. Közvetlenül a készülékházba beérkező hálózati áramot és feszültséget mérik, hasonlóan mintha egy külső fogyasztásmérőt alkalmaznánk. Kimenetükön a mérendő mennyiséggel arányos feszültség esik. A modulok, és az Arduino Nano is Ebay-ről, vagy Aliexpress-ről szerezhető be legolcsóbban.


Arduino Nano-hoz csatlakoztatott feszültségmérő modul

A modulok kimenete az Arduinohoz csatlakozik, ez dolgozza fel a beérkező jeleket, a mikrokontrollernek hála a mintavételezés elég sűrű. Mivel mindkét mennyiség mérése valós időben történik, meg lehet határozni a fáziseltolódást, vagyis az áram és a feszültség időbeni eltérését (ez a hatásos teljesítmény számításához szükséges). Ehhez szoftver oldalon az EmonLib-et alkalmaztam, ami felfogható az Open Energy Monitor kistestvéreként. Komplex műveleteket tud elvégezni, ha megfelelően kalibrált, pontos feszültség és áramerősség adatokat kap.

A szükséges programot gyorsan megírtam, a szenzorok kalibrálása már több időbe telt. Visszaellenőrzéshez egy hagyományos fogyasztásmérőt használtam. Mikor az értékek egyenlőek lettek alacsony- és magas teljesítmény tartományban is, Arduino serial monitorra továbbítottam a számított hatásos teljesítményt.

#include <EmonLib.h>

EnergyMonitor emon1; //Egy példány létrehozása

void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);

emon1.current(A0, 1); //Analog0 pin, árammérő modul (pin, kalibrálás)
emon1.voltage(A1, 171, 1.7); //Analog1 pin, feszültségmérő modul (pin, kalibrálás, kalibrálás)
}

void loop()
{
emon1.calcVI(50,2000); //Összes érték számolása (mintavétel száma, timeout)
float real_power = emon1.realPower;

Serial.println(real_power,3); //Hatásos teljesítmény kiírása serial monitorra

delay(500);
}

A programot már nem volt ilyen egyszerű flashelni az Arduinora, hiszen Ubuntu Serveren nem volt grafikus fejlesztőkörnyezetem. Erre az arduino-mk csomag kínált megoldást. A csomagot telepítve, SSH-n keresztül sikerült az elkészült sketchet, (és sok-sok módosítását) feltöltenem a Nanóra.

Serial monitor megtekintésére a picocom-ot vetettem be, ami soros kommunikációra az egyik legegyszerűbb alternatíva.

picocom -b 9600 -r -l /dev/ttyUSB0

Persze a serial port manuális inicializálása után ki is lehet cat-olni fájlba az adatokat:

stty -F /dev/ttyUSB0 cs8 9600 igncr -hupcl
cat /dev/ttyUSB0 > arduino_serial_monitor.csv

Tehát született egy kis rendszer, ami folyamatosan vizsgálja a szerver által felvett teljesítményt, és az eredményről soros kommunikációval tájékoztat. Ez az adat bármikor olvasható.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.