Skip to content

Commit a09a3e2

Browse files
authored
Initial commit
1 parent b31056f commit a09a3e2

6 files changed

Lines changed: 476 additions & 0 deletions

File tree

examples/1-phase/1-phase.ino

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#include <ModbusPowerMeter.h>
2+
3+
ModbusPowerMeter meter;
4+
5+
void setup() {
6+
meter.begin(17, 16, 32, 1);
7+
Serial.begin(9600);
8+
delay(1000);
9+
10+
if (meter.readParameters()) {
11+
Serial.println("");
12+
Serial.print("Baudrate: ");
13+
Serial.println(meter.getBaudrate());
14+
Serial.print("Parity: ");
15+
Serial.println(meter.getParity());
16+
Serial.print("Slave ID: ");
17+
Serial.println(meter.getID());
18+
}
19+
else {
20+
Serial.println("Boot error");
21+
}
22+
}
23+
24+
void loop() {
25+
if (meter.readData()) {
26+
Serial.println("========================");
27+
Serial.print("Voltage ");
28+
Serial.println(meter.getVoltage());
29+
Serial.print("Current: ");
30+
Serial.println(meter.getCurrent());
31+
Serial.print("Power: ");
32+
Serial.println(meter.getPower());
33+
}
34+
else
35+
{
36+
Serial.println("Reading error");
37+
}
38+
}

examples/3-phase/3-phase.ino

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include <ModbusPowerMeter.h>
2+
3+
ModbusPowerMeter meter;
4+
5+
void setup() {
6+
meter.begin(17, 16, 32, 1);
7+
Serial.begin(9600);
8+
delay(1000);
9+
10+
if (meter.readParameters()) {
11+
Serial.println("");
12+
Serial.print("Baudrate: ");
13+
Serial.println(meter.getBaudrate());
14+
Serial.print("Parity: ");
15+
Serial.println(meter.getParity());
16+
Serial.print("Slave ID: ");
17+
Serial.println(meter.getID());
18+
}
19+
else {
20+
Serial.println("Boot error");
21+
}
22+
}
23+
24+
void loop() {
25+
if (meter.readData()) {
26+
Serial.println("========================");
27+
Serial.print("Voltage P1: ");
28+
Serial.print(meter.getVoltage(1)); // Specify number of phase
29+
Serial.print(" | Voltage P2: ");
30+
Serial.print(meter.getVoltage(2));
31+
Serial.print(" | Voltage P3: ");
32+
Serial.println(meter.getVoltage(3));
33+
Serial.print("Current: ");
34+
Serial.println(meter.getCurrent(0)); // 0 stands for sum, example: P1 + P2 + P3. But we can also specify phase
35+
Serial.print("Power: ");
36+
Serial.println(meter.getPower(0));
37+
}
38+
else
39+
{
40+
Serial.println("Reading error");
41+
}
42+
}

extras/Datasheet.pdf

309 KB
Binary file not shown.

library.properties

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name=ModbusPowerMeter
2+
version=1.0.0
3+
author=Martin Lysek
4+
maintainer=Martin Lysek
5+
sentence=ModbusPowerMeter is a user-friendly library that uses the ModbusMaster library to read data from power meters.
6+
paragraph=Prepared to read data from single and three phase SEVENSTAR power meters. Tested with DDSR9588 and 3 PHASE 4 WIRE RS485 Energy Meter
7+
category=Sensors
8+
url=https://github.com/lysek01/ModbusPowerMeter
9+
architectures=esp32
10+
depends=ModbusMaster (>=2.0.0)
11+
includes=ModbusPowerMeter.h
12+

0 commit comments

Comments
 (0)