https://github.com/savjee/home-energy-monitor
ESP32-based Home Energy Monitor
https://github.com/savjee/home-energy-monitor
arduino aws dynamodb energy esp32 iot lambda serverless
Last synced: 4 months ago
JSON representation
ESP32-based Home Energy Monitor
- Host: GitHub
- URL: https://github.com/savjee/home-energy-monitor
- Owner: Savjee
- Created: 2019-01-07T19:23:23.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T14:32:14.000Z (over 2 years ago)
- Last Synced: 2024-12-20T02:05:03.840Z (4 months ago)
- Topics: arduino, aws, dynamodb, energy, esp32, iot, lambda, serverless
- Language: TypeScript
- Homepage: https://savjee.be/2019/07/Home-Energy-Monitor-ESP32-CT-Sensor-Emonlib/
- Size: 5.96 MB
- Stars: 222
- Watchers: 31
- Forks: 78
- Open Issues: 48
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Home Energy Monitor (v2)
[](https://github.com/Savjee/home-energy-monitor/issues)
[](https://github.com/Savjee/home-energy-monitor/pulls)
[](/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 |  |
| `src-esp32` | Firmware for the ESP32 (measuring device) |  |(TODO: add instructions on how to deploy all of this. 😅)
## Video explanation
[](https://www.youtube.com/watch?v=ah3ezprtgmc)
*[https://www.youtube.com/watch?v=ah3ezprtgmc](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/](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](https://platformio.org) on your system
* Drivers for your ESP32 boardRead my blog post for more instructions: [https://savjee.be/2019/07/Home-Energy-Monitor-ESP32-CT-Sensor-Emonlib/](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.