Irregular screen size detected, Content may not be displayed correctly.
EMA Smart Home System
Back to projects
School Project

EMA Smart Home

The EMA smart home system was the most complex group project I have worked on, requiring us to apply concepts and skills learned across multiple courses. Our team was awarded an “A” for the project.

Built with
DaVinci ResolvePhotoshopPowerPointVS CodeOnshapeFigma

Promotional Video

Team

Tan Yong RuiTeam Leader, Docs, Code
View Profile
Braven (me)Art, Code, Design
View Profile
Ong Zheng XianDocs, Code
View Profile
Joycelyn WongDocs, Code
View Profile
Benjamin LeeTeam Member
No Profile

Project Background

Given four BeagleBone Black Wireless boards and a selection of MikroBUS click modules, we were challenged to create a Wi-Fi connected system that supports sustainable living. Our solution was a smart home system that monitors energy usage in real time and intelligently controls devices to minimize consumption. To further extend its capabilities, we integrated an intrusion-detection node into the system.

Intended placement of each board within a home
Intended placement of each board within a home

Design Process

As a software-driven project, we focused on user interface design, prioritizing clarity, readability, and efficient communication of information. We also added Spline3D into the final design for more clarity. DEMO PAGE

Figma mockup of the UI that was used
Figma mockup of the UI that was used
Screenshot of the final UI that was made
Live visualisation of actions using Spline3D

Climate Node

The climate node monitors for temperature, humidity and the presence of humans, it toggles the fan on only when a person is detected and the environment is warm and humid

Climate node hardware

Bathroom Node

The bathroom node allows you to set a timer for how long you would want to shower for, using the buttons and display. It automatically starts when it detects you entering the shower. A buzzer is sounded when your time is up

Bathroom node hardware

Kitchen Node

The kitchen node monitors energy usage from the fridge and reports an energy score on the dashboard, It also functions as a fire alarm, the alarm sounds across all nodes if there is an uncontrolled fire detected.

Kitchen node hardware

Intrusion Node

The intrusion node detects for door knocks and the opening of the door at unusual times and starts an alarm across all nodes

Intrusion node hardware

Connectivity

Each board connects to a SocketIO web server which hosts the dashboard and coordinates events and alarms too.

Here is that mesh laid out as a hub and spokes, the BeagleBone controller in the middle with a live link out to each of the five nodes. Click a node to inspect it, or trigger the flame alarm to watch an alert race down the line.

ControllerBeagleBone Black Wireless

Lines are the SocketIO links; each dot is a telemetry packet on its way to the controller.

Auto-touring · click any node to pin it

Climate node

Comfort
Monitors
Room temperature and humidity, so the home only runs the fan when it actually needs to.
Sensors
Temperature + humidity sensor, paired with a presence reading
Buzzer alert
Soft chime if the room drifts out of the comfort range while occupied
Link nominal · streaming over SocketIO

Fires the kitchen flame node, the most safety-critical link in the mesh, and follows it into the controller.

A chart of how each system connects with each other
A chart of how each system connects with each other
EMA Smart Home on GitHubThe full source for the node firmware and SocketIO dashboard server.
View GitHub Repo

Slide Deck

Alt link to the PDF!

Documentation

Alt link to the PDF!

Check out the next articleAll projects
More to explore

Other projects

PersonalFlagshipProject June rover

Project June

A 5G radio-controlled vehicle with 3 live video streams, GPS, a laser system, gyroscope and more. My most ambitious build.

ESP32KiCADOnshapePlatformIO
PersonalFlagshipBeadReader private book reader

BeadReader

A private, invite-only online book reader with live presence, per-reader resume, a SQL-enforced content gate, webtoons and shared reading stats. Next.js and Supabase.

Next.jsSupabaseTailwind CSSCloudflare R2
PersonalHighlightLoRA Messenger

LoRA Messenger

An ESP32 messenger with 2-way voice over ESP-NOW and text over LoRa. Custom PCB in KiCAD, case in Onshape, all self-taught.

ESP32KiCADOnshapePlatformIO