CuVoodoo

the sorcery of copper

User Tools

Site Tools


spark_abacus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
spark_abacus [2017/01/23 20:34]
kingkevin adjust summary
spark_abacus [2017/01/29 18:17] (current)
kingkevin add prototypes
Line 1: Line 1:
 +{{ :spark_abacus:installation.jpg?400x0|final installation}}
 +
 The spark abacus is a custom electricity meter monitoring system. The spark abacus is a custom electricity meter monitoring system.
 It's a follow-up of the [[spark_counter|spark counter]], but for a 3-phase 4-wire mains electricity power distribution installation. It's a follow-up of the [[spark_counter|spark counter]], but for a 3-phase 4-wire mains electricity power distribution installation.
 +
 +It is composed by:
 +  * 1 [[#DDM100TC|DDM100TC]] 3-phase 4-wire electricity meter with pulse output
 +  * 3 [[#Eastron SDM120-Modbus|SDM120]] single phase electricity meter with Modbus interface (with an UART to RS-485 adapter)
 +  * 3 [[#peacefair PZEM-004T|PZEM-004T]] single phase electricity meter with UART interface
 +  * 1 [[stm32f1xx|STM32F1]] micro-controller to collect the measurements from the electricity meters
 +  * 1 [[#ESP-01|ESP6266]] WiFi module to transmit the measurement values to the database
 +  * 1 [[#Orange Pi PC|Orange Pi PC]] single board computer with [[https://influxdb.com/|InfluxDB]] time series database and [[http://grafana.org/|Grafana]] graphical monitoring tool
 +
 +====== prototypes ======
 +
 +===== complete =====
 +
 +The first prototype used an old WiFi D-Link router case.
 +I glued a DIN-rail mount on the back to install it in the distribution panel.
 +The development board is a small [[stm32f1xx#blue_pill|blue pill]].
 +
 +I could fit all elements inside, including the three PZEM-004Ts, and had nice connectors, but it was too large to fit in the distribution panel along with the other electricity meters and RCCB.
 +
 +The source code and all technical details are available on [[https://git.cuvoodoo.info/spark_abacus/about/?h=full|git]].
 +
 +{{:spark_abacus:complete-01.jpg?0x300|complete prototype, inside}}
 +{{:spark_abacus:complete-02.jpg?0x300|complete prototype, front}}
 +{{:spark_abacus:complete-03.jpg?0x300|complete prototype, back}}
 +
 +===== light =====
 +
 +For this second prototype I used a broken SDM630 electricity meter case.
 +It is smaller and is designed to fit nicely in the distribution panel.
 +
 +This time I did not include the PZEM-004T meters since they are to large to fit in, and would only provide information I could already get from the other electricity meters.
 +This left a lot of space to include a larger [[stm32f1xx#system_board|development board]], and I could use dupont cables to connect all elements.
 +I used the connector already available in the case (for two pulse outputs and one RS-485 interface) as inputs for the monitoring system (one pulse input, as RS-485 master, AC input for 5V).
 +
 +The source code and all technical details are available on [[https://git.cuvoodoo.info/spark_abacus/about/?h=light|git]].
 +
 +{{:spark_abacus:light-03.jpg?0x300|light prototype, fong}}
 +{{:spark_abacus:light-01.jpg?0x300|light prototype, inside}}
 +{{:spark_abacus:light-02.jpg?0x300|light prototype, inside}}
 +{{:spark_abacus:light-04.jpg?0x300|light prototype, connection}}
 +
 +===== improvements ======
 +
 +Future improvments:
 +  * submit measurement values to influxDB using UDP (faster, no need for credentials)
 +  * make a bulk ModBus request to get most measurements at once (the pauses between requests for each measurement cost a lot of time)
 +  * use an LCD to show the values (the LEDs only show the status)
 +  * use the touch button already available on the SDM630 case
  
 ====== electricity meters ====== ====== electricity meters ======
Line 70: Line 120:
 This document also explains the Modbus protocol, but I rather recommend to read the one for the [[http://eastrongroupco.hk02.057321.com/data/uploads/Eastron_SDM630MV_CT_protocol_V1_0_.pdf|SDM630]] since it contains more information, most importantly the timing between messages. This document also explains the Modbus protocol, but I rather recommend to read the one for the [[http://eastrongroupco.hk02.057321.com/data/uploads/Eastron_SDM630MV_CT_protocol_V1_0_.pdf|SDM630]] since it contains more information, most importantly the timing between messages.
  
- +====== ESP8266 ======
-====== EPS8266 ======+
  
 To send the values measured by the electricity meters and collected by the micro-controller, I used a WiFi module based on the [[http://www.esp8266.com/wiki/doku.php|ESP8266]] SoC. To send the values measured by the electricity meters and collected by the micro-controller, I used a WiFi module based on the [[http://www.esp8266.com/wiki/doku.php|ESP8266]] SoC.
Line 144: Line 193:
 It is now also possible to get ESP-01 modules with 8 Mbits / 1 MByte of flash, which supports more recent AT firmwares. It is now also possible to get ESP-01 modules with 8 Mbits / 1 MByte of flash, which supports more recent AT firmwares.
  
-====== Orange Pi ======+====== Orange Pi PC ======
  
 {{:spark_abacus:opi-01.jpg?0x200|Orange Pi PC, front side}} {{:spark_abacus:opi-01.jpg?0x200|Orange Pi PC, front side}}
Line 165: Line 214:
  
 On it I've installed an [[https://www.influxdata.com/|InfluxDB]] time-series database to store the values (using the HTTP API), and [[http://grafana.org/|Grafana]] to visualize them. On it I've installed an [[https://www.influxdata.com/|InfluxDB]] time-series database to store the values (using the HTTP API), and [[http://grafana.org/|Grafana]] to visualize them.
 +
 +{{:spark_abacus:grafana.png?1000x0|simple display of the power consumption}}
spark_abacus.txt · Last modified: 2017/01/29 18:17 by kingkevin