IoT AC Control System
Commercial IoT climate automation system connecting ESP8266 infrared controllers, FastAPI orchestration, and a Next.js dashboard over MQTT for centralized office HVAC management.
I built this system during my engineering internship at Ellipsis Infotech.
The challenge was managing multiple commercial air conditioning units across an office space without installing expensive proprietary building management infrastructure. Physical remotes were frequently misplaced, units were left running overnight, and facility managers had no centralized visibility into room temperatures or power states.
I engineered an end-to-end IoT platform coordinating microcontrollers, message brokers, and web clients into a single operational interface.
Three-tier system architecture
The project linked physical hardware, messaging pipelines, and operator controls across three distinct layers:
1. Firmware layer (ESP8266 and IR transmission)
Each AC unit was paired with a compact ESP8266 microcontroller module:
- Integrated an infrared (IR) LED emitter configured to replay discrete manufacturer protocol codes (power, temperature step, fan mode).
- Maintained a lightweight MQTT client subscribing to device-specific command topics.
- Read ambient temperature telemetry and transmitted periodic heartbeat packets to verify device connectivity.
- Protected by hardware watchdogs and automatic Wi-Fi reconnect routines to recover from transient office network drops without requiring manual power cycles.
2. Backend service (FastAPI and MQTT broker)
A high-performance FastAPI service orchestrated device coordination:
- Device registry: managed authorization, MAC address binding, and room mappings.
- MQTT orchestration: connected to the central broker to publish command packets (
power,target_temp,fan_speed) and ingest incoming telemetry streams. - State management: maintained virtual device state models to handle communication latency and reconcile command intent against sensor observations.
- RESTful API endpoints: provided authenticated routes for web clients to inspect telemetry logs, query room status, and dispatch commands.
3. Operator dashboard (Next.js and TypeScript)
The frontend delivered a centralized control view for facility managers:
- Real-time floor plan view displaying live temperature readings and power states across all office rooms.
- Individual unit controls for setpoint temperatures, mode changes (Cool, Dry, Fan), and bulk shutdown triggers.
- Automated scheduling timers to power off units outside office operating hours, cutting unnecessary utility costs.
Distributed systems challenges
The primary technical hurdle was bridging the gap between digital command dispatch and physical hardware execution:
- Unidirectional IR constraints: because standard commercial split ACs do not send telemetry back to an IR emitter, the system tracked state through software models and verified actual operation by observing temperature curves over time.
- Network resilience: designed the MQTT broker topic taxonomy to support per-zone broadcasting and graceful degradation when individual controllers experienced signal interference.
Why it stayed
This was deployed internship work running in an active office environment, not a simulation.
Building a system that operates across firmware, asynchronous message brokers, and web frontends provided a solid grounding in distributed systems. It directly influenced how I structured subsequent projects like my home automation dashboard.