Savjee / home-energy-monitor

ESP32-based Home Energy Monitor

Home Page:https://savjee.be/2019/07/Home-Energy-Monitor-ESP32-CT-Sensor-Emonlib/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

ESP32-based Home Energy Monitor

https://savjee.be/2019/07/Home-Energy-Monitor-ESP32-CT-Sensor-Emonlib/


Languages

Language:TypeScript 31.7%Language:JavaScript 28.6%Language:C 16.1%Language:HTML 9.9%Language:C++ 8.0%Language:SCSS 5.3%Language:CSS 0.4%