home-energy-monitor

ESP32-based Home Energy Monitor

Stars
222
Committers
3

⚠️ This is a work in progress. By no means is this production ready.


ESP32-based Home Energy Monitor: monitors electricity consumption of your entire house with a single CT sensor.

Structure

This project consists out of multiple components:

Folder Description Build status
src-app Mobile app (Ionic) n/a
src-aws Serverless AWS backend + GraphQL API AWS Build Status
src-esp32 Firmware for the ESP32 (measuring device) Firmware Build Status

(TODO: add instructions on how to deploy all of this. 😅)

Video explanation

https://www.youtube.com/watch?v=ah3ezprtgmc

Read my blog post for more instructions: https://savjee.be/2019/07/Home-Energy-Monitor-ESP32-CT-Sensor-Emonlib/

Cloud Architecture

This is the cloud architecture that powers the energy meter and the app:

In a nutshell:

  • The ESP32 has a MQTT connection with AWS IoT Core
  • Every 30 seconds, 30 measurements are sent to AWS
  • These measurements are stored in DynamoDB (IoT Rule)
  • Once a day, all readings from the previous day are archived to S3
  • A GraphQL API (hosted on Lambda) exposes the data stored in DynamoDB

Screenshots

Web dashboard, built on top of the GraphQL API:

What is displayed on the ESP32 OLED display:

DIY Requirements

To build your own Energy Monitor you need the following hardware:

  • ESP32
  • CT sensor: YHDC SCT-013-030 (30A/1V)
  • 10µF capacitor
  • 2 resistors (between 10k-470kΩ)

Other requirements:

  • AWS Account (Should be able to run in free-tier)
  • Install PlatformIO on your system
  • Drivers for your ESP32 board

Read my blog post for more instructions: https://savjee.be/2019/07/Home-Energy-Monitor-ESP32-CT-Sensor-Emonlib/

Contribute

I'm happy to merge in any pull requests. Also feel free to report bugs or feature requests.

Badges
Extracted from project README
GitHub Issues GitHub Pull Requests License
Related Projects