Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 10 days 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 (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T14:32:14.000Z (almost 2 years ago)
- Last Synced: 2024-10-13T00:14:54.440Z (24 days 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: 76
- Open Issues: 48
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Home Energy Monitor (v2)
[![GitHub Issues](https://img.shields.io/github/issues/Savjee/home-energy-monitor.svg)](https://github.com/Savjee/home-energy-monitor/issues)
[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/Savjee/home-energy-monitor.svg)](https://github.com/Savjee/home-energy-monitor/pulls)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/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](https://github.com/Savjee/home-energy-monitor/workflows/aws/badge.svg) |
| `src-esp32` | Firmware for the ESP32 (measuring device) | ![Firmware Build Status](https://github.com/Savjee/home-energy-monitor/workflows/firmware/badge.svg) |(TODO: add instructions on how to deploy all of this. ๐ )
## Video explanation
[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/ah3ezprtgmc/0.jpg)](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:
![AWS Cloud Architecture](https://savjee.github.io/home-energy-monitor/readme-images/architecture.png)
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](https://savjee.github.io/home-energy-monitor/readme-images/web-dashboard.png)
What is displayed on the ESP32 OLED display:
![Screenshot ESP32 OLED](https://savjee.github.io/home-energy-monitor/readme-images/esp32-oled.jpg)
## 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.