Use PZEM-016 with MODWRT: Difference between revisions

From lechacal
Jump to navigation Jump to search
No edit summary
Line 30: Line 30:
You will notice that most data are multiplied by a factor of 10 or 100. Before storing the data on Emoncms apply a process '''Calibration x''' to the data.
You will notice that most data are multiplied by a factor of 10 or 100. Before storing the data on Emoncms apply a process '''Calibration x''' to the data.
Basically Voltage x0.1 / Power x0.1 / Frequence x0.1 / Power Factor x0.01.
Basically Voltage x0.1 / Power x0.1 / Frequence x0.1 / Power Factor x0.01.
=Configuring PZEM-016=
ModWRT has the ability to communication to any generic Modbus RTU device. We have build the modbus_raw_send command for this purpose.
For this you will need to connect to the Modwrt with ssh. Use the putty program for this.
==Basic reading test==
Here is a simple command to make sure the communication with the RTU device works correctly:
modbus_raw_send 01 04 00 00 00 01
The reply will look as follow:
root@OpenWrt:~# modbus_raw_send 01 04 00 00 00 01
This function isn't supported on your platform
Opening /dev/ttyATH0 at 9600 bauds (N, 8, 1)
[01][04][00][00][00][01][31][CA]
Sending request using RTS signal
Waiting for a confirmation...
<01><04><02><09><BF><FE><D0>
Request for slave 1 ignored (not -1)
Ignore any warning on this returned message. The most important is the '''<01><04><02><09><BF><FE><D0>''' confirming a correct communication.
==Change Slave ID==

Revision as of 21:40, 21 July 2018


We will demonstrate how to use the ModWrt to interface with the PZEM-016 modulw and forward data to EmonCMS.

PZEM-016

This is a electric meter unit with serial modbusRTU interface. This is for single phase measurements and produces Voltage, Power, Frequency, Energy and Power Factor.

Connections are straight forward and well explained in the manual. The manual for the PZEM-016 can be found here.

Only two wires are needed to connect to the Modwrt. Just connect the A and B terminals. Leave the 5v and Ground unconnected.

Modwrt Config

By default the PZEM-016 as a slave ID of 0x01 and comms as 9600,8,N,1. So we will setup the RTU page as shown below.

In the Streams configuration page make sure you have one instance setup to forward to Emoncms.

In the Dataflow page configure each registers as shown in this picture below.

On the Emoncms platform all data will be depicted like this.

You will notice that most data are multiplied by a factor of 10 or 100. Before storing the data on Emoncms apply a process Calibration x to the data. Basically Voltage x0.1 / Power x0.1 / Frequence x0.1 / Power Factor x0.01.

Configuring PZEM-016

ModWRT has the ability to communication to any generic Modbus RTU device. We have build the modbus_raw_send command for this purpose.

For this you will need to connect to the Modwrt with ssh. Use the putty program for this.

Basic reading test

Here is a simple command to make sure the communication with the RTU device works correctly:

modbus_raw_send 01 04 00 00 00 01

The reply will look as follow:

root@OpenWrt:~# modbus_raw_send 01 04 00 00 00 01
This function isn't supported on your platform
Opening /dev/ttyATH0 at 9600 bauds (N, 8, 1)
[01][04][00][00][00][01][31][CA]
Sending request using RTS signal
Waiting for a confirmation...
<01><04><02><09><BF><FE><D0>
Request for slave 1 ignored (not -1)

Ignore any warning on this returned message. The most important is the <01><04><02><09><BF><FE><D0> confirming a correct communication.


Change Slave ID