openzmeter (oZm) is an Open Source system designed to help with power quality analysis and smart energy metering in power networks.
It has been designed to comply with international standards IEC 61000-4-30 and EN 50160. It is able to measure RMS voltages with an accuracy up to 0.1%, frequency up to 10 mHz (between 42.5 and 57.5 Hz) and RMS currents according to different sensor probes (the basic version can handle up to 400 V and 50 A RMS using an onboard Hall effect sensor with a precision of 1%).
Although there is a wide variety of devices on the market that can measure and control the electrical consumption of a typical home, in general, they lack of accuracy, are too expensive or use non-open protocols. oZm has born as a collaborative project between the University of Almeria UAL and the University of Granada UGR based on some strong ideas: to offer an effective tool that transparently applies advanced mathematical algorithms to obtain accuracy electrical measurements, open the system to the community and promote awareness in energy saving. Based on the aforementioned ideas and the social responsibility of the university, we feel the commitment to open this result to the community.
The main features of the project are:
Open source system: free software and open hardware.
Harmonics for current and voltage (up to 50th order)
Active and reactive energy
Voltage events (swell, sags/dips, interruptions, etc)
4 quadrant measurements that allows to measure consumption and generation of energy. Valid for renewable energy systems
In accordance with international standards IEC 61000-4-30 and EN 50160. Voltage measurement up to 0.1% accuracy. Frequency measurement up to 10 mHz (42.5-57.5 Hz). Current measurement up to 50 A with integrated Hall effect sensor (current clamp or Rogowski probes as an option )
Sampling frequency of 16525Hz.
Aggregation for the voltage channel of 3 seconds, 1 minute, 10 minutes (according to standard) and one hour as extra aggregation for energy metering purposes.
Alert system and event management (ITIC / CBEMA, frequency, etc.)
Custom implementation for FFT and zero-crossing algorithms. Wavelet and advanced math on the road.
Friendly and intuitive interface for skilled and non-experienced users.
Modular by design for a simple and easy extension
Onboard Wi-Fi and USB ports (3G / LTE / 4G, etc). SPI, I2C, UART and PWM are also available
Connection to the spanish ESIOS API to get daily energy prices.
Awesome integration with Telegram via custom bot for realtime alerting and monitoring.
API for third party integration using JSON
The system is suitable for all king of single-phase electrical installations (the three-phase version will be released shortly). It is designed to be ran in Linux equipment (especially embedded ARM).
openZmeter relies on several basic components:
A custom hardware shield has been designed for capturing raw samples (Analog Front End or AFE) and adapting the voltage and current waveform (in one or several phases) to the ADC inputs using an STM32 microcontroller. The samples are sent to the embedded ARM unit (the host for openZmeter service daemon) for its processing. The microcontroller performs some basic calculations but it's mainly intended to serve the realtime raw data to the Linux core for more complex calculations (FFT and zero crossing).
NanoPi and OrangePi ARM boards.
A PostgreSQL database server that stores the data processed by openZmeter or transmitted by the AFE.
Powerful daemon in C for processing and serving data via libmicrohttpd interface.