Skip to content
This repository has been archived by the owner on Dec 20, 2024. It is now read-only.

Savjee/home-energy-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Home Energy Monitor

Home Energy Monitor (v2)

GitHub Issues GitHub Pull Requests License

⚠️ 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

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:

AWS Cloud Architecture

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:

Screenshot Web Dashboard

What is displayed on the ESP32 OLED display:

Screenshot ESP32 OLED

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.