Home Energy Management System
A monitor that watches a home's electrical load and throttles EV charging before the panel overloads, built as my capstone with NeoCharge.

Electric vehicles and modern appliances pull more power than many older homes were wired for. Charge a car while the dryer, oven and heat pump are running, and the main panel can overload. Our capstone set out to prevent that: measure the home’s load in real time, and turn the EV charger down before the panel reaches its limit.
What I did
I was the team lead for this Cal Poly capstone project. Current-transformer clamps on the panel feed live readings into a finite-state machine I designed. It decides when the home is in a normal, warning or critical state, and it tells the charger how fast to charge through an Open Charge Point Protocol (OCPP) compatible server written in Python.
How it fits together
- Sensing. CT clamps and an ESP32 measure current and report it over serial.
- A panel on the bench. A variac and a step-down transformer simulate a household panel, so we could push it into overload safely.
- Control. The state machine turns raw current into a target charge rate.
- Charging. The OCPP server sends that rate to a real charger, a Wallbox Pulsar Plus.
How it fits together: sensing, the simulated panel, the control server and the charger.
Results
The prototype monitored load in real time and managed a Tesla Model 3’s charging on its own. In the test run below, the load passes the first threshold and the controller drops the charger to 10 A. When the load keeps rising into the critical range, it stops charging entirely, all within about four seconds.
NORMAL → WARNING sends “adjust charging to 10 A”; WARNING → CRITICAL sends “stop charging.”