• Stars
    star
    219
  • Rank 181,133 (Top 4 %)
  • Language
    TypeScript
  • Created almost 6 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ESP32-based Home Energy Monitor

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.

More Repositories

1

SavjeeCoin

A simple blockchain in Javascript. For educational purposes only.
JavaScript
1,726
star
2

button-text-card

Custom, "neumorphism" Lovelace card
TypeScript
122
star
3

savjeecoin-frontend

Angular app to visualize & interact with a blockchain
TypeScript
70
star
4

bearclaw

Menubar app to quickly create new notes in Bear
Objective-C
61
star
5

savjee.be

Source code of my Eleventy-powered website
HTML
43
star
6

yt-spam-classifier

Using TensorFlow to automatically filter crypto-related spam comments on YouTube.
Jupyter Notebook
39
star
7

google-sheets-wrapper

Lightweight wrapper around the official Google Sheets API that makes it easy to read/write rows
TypeScript
37
star
8

arduino-aws-iot-starter-template

Arduino code to connect ESP32 with AWS IOT (using MQTT and ArduinoJson)
C++
27
star
9

static-social-buttons

Static Social Buttons for Sharing and Tweeting
JavaScript
19
star
10

static-website-hosting-benchmark

17
star
11

trello-weekmenu-lambda

Meal planning with Trello and AWS Lambda
JavaScript
17
star
12

jsTixClock

A Tix Clock written in Javascript
11
star
13

php-backblaze-b2-uploader

PHP Class that allows you to upload files to Backblaze B2
PHP
11
star
14

svg2pdf

CLI tool to batch convert SVG files to PDF.
JavaScript
9
star
15

Xavier-s-Anagram-Solver

Anagram solver written in PHP.
PHP
8
star
16

3dmon

Simple 3D print progress monitor (for Home Assistant)
Python
6
star
17

OneHighlighter

CSS
6
star
18

eleventy-plugin-bibtex

Converts Bibtex references to APA notation in HTML
JavaScript
5
star
19

anagram-solver

Serverless anagram solver powered by Cloudflare Pages and R2
TypeScript
4
star
20

trash-pickup-belgium

Library to fetch trash pickups in Belgium (Ophaalkalender)
JavaScript
4
star
21

TwoFactorHelper

Safari Extension
Swift
3
star
22

trello-todo

Node.js script that moves Trello cards when they're almost due
JavaScript
3
star
23

xaviers-bitbar-plugins

My plugins for BitBar (written in node.js)
JavaScript
2
star
24

shell-scripts

Some shell-scripts I use
Shell
1
star
25

independent-zipper

Create independent zip archives of a given size
Python
1
star
26

arduino-pca9551

C++
1
star
27

energy-prices-api

TypeScript
1
star
28

dokuwiki-s3-backup

PHP script to backup a DokuWiki site to Amazon S3
PHP
1
star
29

docker-s3website-git-ftp-deploy

Dockerfile
1
star
30

dotfiles

JavaScript
1
star