UTEC · Embedded systems
IoTEste EcoWarm
Home-automation prototype: simulated sensors publishing temperature and humidity over MQTT in real time.
- Role
- Development (academic team project)
- Year
- 2024
- Stack
- JavaMQTTEclipse MosquittoDocker ComposeIoT
The problem
The goal was to understand how the devices in a smart home talk to each other without depending on physical hardware, which was not always available. The answer was to simulate the sensors and build the same messaging architecture a real system would use.
What I built
- A sensor simulator that generates temperature and humidity readings and publishes them over MQTT.
- An Eclipse Mosquitto broker as the middleman between producers and consumers.
- A Java consumer that subscribes to the topics and processes readings in real time.
- Full orchestration with Docker Compose: the whole system starts with one command.
Technical decisions
MQTT instead of HTTP
MQTT is designed for low-capacity devices and unreliable connections: the publish/subscribe model decouples sensors from consumers, so adding a new sensor never means touching the code that consumes the data.
Simulating the sensors
Simulating the hardware let us work without waiting on board availability, and made it possible to test edge cases — extreme values, dropped connections — that are hard to reproduce on demand with real sensors.
Docker Compose as the system definition
The project is several pieces that have to talk to each other. Defining them in a compose file documented the architecture and made startup reproducible for anyone on the team.
What I took away
- How a publish/subscribe pattern works and why decoupling producers from consumers changes the design.
- Orchestrating several interdependent services and debugging the messaging when something doesn't arrive.
- That a good prototype doesn't need real hardware to validate an architecture.