The challenge.
Connect household devices to a mobile interface that can send commands and display changes in real time.
The project brings together a React Native app, device-specific backend gateways, and ESP32 firmware.
The boundaries.
- Keep device state synchronized across hardware and mobile clients.
- Support separate controls for lights, fans, and door locks.
- Develop and test within a university hardware prototype.
How it fits
together.
The mobile app communicates with a Node.js backend through Socket.IO. Device-specific gateways handle commands and state updates, while ESP32 firmware connects the physical controls and environmental sensors. The public AI automation screen is an early placeholder marked Coming Soon.
View source codeThe decisions
behind the details.
Live state across layers
Socket events carry device commands and status updates between the mobile interface and hardware.
TradeoffConnections can drop, so a displayed state must be distinguished from a confirmed hardware response.
Separate device controls
Dedicated light, fan, door, and environment gateways keep device behavior understandable.
TradeoffEach new device needs its own event contract and hardware testing.
