Power övervakning med Arduino och logga in i Google blad (1 / 8 steg)
Steg 1: Power övervakning med hjälp av arduino
kan börja med arduino kod.
Jag kommer att skriva ett kommando för att läsa aktuella genom I2C i denna kod.
denna kod är ganska rakt framåt, allt du behöver göra är att skicka ett kommando för att läsa aktuella och den nuvarande övervakning styrelsen kommer att göra allt för dig.
I mitt område AC är spänning runt 120-124V. Vi kommer att använda denna spänning behandling för att beräkna de makt användningsområdena.
i denna kod jag am beräkning av ström, makt, watt timme, total watt timme och total kilo watt timme.
Inkludera Wire I2C bibliotek
#include < wire.h >
int adress = 42. I2C adress
dubbel spänning = 121,7; spänning behandlingen
Double tkWh = 0;
dubbel tWh = 0;
void setup()
{
Serial.BEGIN(9600); Skapa serienummer objekt (9600 Baud)
Wire.BEGIN();
}
void loop()
{
Wire.beginTransmission(address); Starta kommunikation
Wire.write(146); Kommandot sidhuvud
Wire.write(106); Kommandot sidhuvud
Wire.write(1); Kommandot 1
Wire.write(1); Starta kanalen inte
Wire.write(1); Avsluta kanal inte
Wire.write(0);
Wire.write(0);
Wire.write ((146 + 106 + 1 + 1 + 1 + 0 + 0) & 255); Kontrollsumma
Wire.endTransmission(); Fylla överföring
Wire.requestFrom (adress, 5);
osignerade långa MSB1 = Wire.read();
MSB1 = MSB1 * 65536;
osignerade långa MSB = Wire.read();
MSB = MSB * 256;
osignerade långa LSB = Wire.read();
MSB1 = MSB1 + MSB + LSB;
dubbla strömmen = ((dubbel) MSB1) / (dubbel) 1000;
Serial.Print(Current,3); aktuella på ch 1
Serial.Print(",");
dubbel Power = spänning * aktuell; ström på ch1
Serial.Print(Power,3);
Serial.Print(",");
dubbel Wh = 0.000833 * Power; Watt timme på ch1
Serial.Print(WH,4);
Serial.Print(",");
tWh = tWh + Wh; totala watt timme används
Serial.Print(tWh,4);
Serial.Print(",");
tkWh = tWh/1000; totala kilo watt timme används
Serial.Print(tkWh,4);
< /p >< p >
Serial.Print("\n");
Wire.endTransmission(); Fylla överföring
Delay(3000);
}