FRAMenergymeter is a low-cost digital utility meter that is designed to easily be retrofitted to any existing electricity meter (Ferrari's wheel or impulse output), water meter, or gas meter.
It is based on the TI MSP-EXP430FR5739 development board.
Have you ever wanted to measure your energy consumption in detail? But existing smart metering solutions are extremely expensive and also require heavy modifications on your electrical infrastructure.
The FRAMenergymeter is an extremly low-cost metering solution that can track your energy consumption up to the split second. Simply retrofit it to your existing electricity meter and your setup is complete!
You can find the source code at: github.com/iOperator/FRAMenergymeter (work in progress)
Author: Max Gröning (firstname.lastname@example.org)
- utilizes cheap and widely available CNY70 infrared reflective sensor
- convenient setup (e.g. via serial shell)
- comes with Python CLI and web server (works with Linux, Mac OS X, Windows, tablets, smart phone and many more!)
- clean and efficient source code (also well documented)
- heavy usage of low power mode (LPM3 almost all the time)
- also runs on standard lithium polymer cell phone battery (battery voltage can be measured from the PC software. You won't need to go to your utility room to check battery status)
- FRAMenergymeter supports multiple sensors at the same time (e.g. electricity, water, and gas)
- uses MSP430FR5739s internal RTC (real time clock) to keep accurate time and date
- all your data retains during reset or power outage
- custom rewritten functions that replace standard library ones to make the firmware as lightweight as possible (e.g. unsigned int->ASCII, BCD->ASCII, printf, ...)
Simply connect the development board to your PC via USB. Open a serial terminal (9600 baud, 8N1), hit return and you will see the the FRAMenergymeter menu. Enter 'help' to get more information on the commands. (See video below.)
To get started you should also run the configuration process by entering 'setup'. Enter 'send' to receive the stored impulses from your energy meter and enter 'clear' to free up the memory.
You can also run the provided Python CLI script or the Python web server and surf to http://localhost:8080/
Sensors are connected to P1.0, P1.1, P1.2, and P1.3. The MCU triggers on falling edge.
See a video demonstration of the serial shell here!
See a video demonstration of the web interface here!
Functionality of the sensor
The CNY70 is a infrared reflective sensor that also comes with a sunlight filter. It consists of an infrared LED and a photosensitive transistor in one package. It is available for less than 1 €.
The Ferrari's wheel in the electricity meter has a marking. This marking changes the reflection behavior of the emitted infrared light from the sensor.
The alignment of the sensor to the Ferrari's wheel is critical. The use of reusable glue like Blu-Tack can make the alignment much easier.
The web interface is powered by a Python web framework called Bottle.
The Python software runs on Linux, Mac OS X, Windows and many more operating systems. You can even run it on your (headless) home server.
By providing the interface via an Internet browser you can access the utility data with all kinds of devices: PCs, tablets, smart phones, etc.
The software allows not only to communicate with the utility meter (development board) and get the measurements, it also stores your data in a SQLite database and provides energy reports and power reports like the ones below.
Please note, the software is still at an early development stage, nevertheless, its main feature are fully functional. (See video above.)
- issue a warning when battery is running low
- use no battery at all, use inductive coupling instead