Project 03
Cafey
A physical IoT system, end to end: mechanical design, electronics, firmware, cloud, backend and applications for a product designed to be built.
- Role
- IoT & Systems Engineer
- Context
- Sixth-semester integrator project · Fatec Itaquera
- Period
- Aug 2026 – Dec 2026
- Status
- Phase 1 · schematic validated
Problem
Make a coffee maker with a mechanical switch a connected appliance, without opening or altering it internally.
Context
Cafey is an external IoT module that turns a mechanical-switch coffee maker into a connected appliance with no internal modification. It is also the sixth-semester integrator project.
Objective
A physical product designed for fabrication, connecting mechanical engineering, electronics, firmware, software and cloud.
Architecture
The work runs in four layers. Physical hardware: the mechanical structure is modelled in FreeCAD and the circuits are designed in KiCad. Edge: an ESP32, its firmware and MQTT. Cloud: AWS IoT Core, a backend and PostgreSQL. Applications: Kotlin Multiplatform clients over a Kotlin and Spring Boot API. In detail, an ESP32 drives a relay that cuts mains power to the coffee maker. The firmware, C++ on ESP-IDF and structured as active objects over FreeRTOS, speaks MQTT over TLS with X.509 certificates to AWS IoT Core. A Kotlin and Spring Boot backend with PostgreSQL consumes MQTT and exposes a REST API for devices, commands and scheduling. Kotlin Multiplatform clients cover web, mobile and desktop.
Stack
Decisions
A relay outside, nothing inside
Control is a relay on the mains line, so the coffee maker is never opened or modified.
AWS IoT Core as the broker
MQTT runs over TLS with X.509 certificates against a managed broker.
Mains and low voltage on opposite sides
The housing keeps the mains section and the low-voltage section apart, as electrical safety requires.
Implementation
Phase 1 validated the complete KiCad electrical schematic. Authored the active object C++ firmware architecture for ESP-IDF, designed the physical 3D enclosure in FreeCAD, and developed the Kotlin Spring Boot backend for MQTT message consumption.
Results
- Electrical schematic validated.
- Backend service logic and unit test suite passing.
Limitations
- Component procurement is blocking physical board validation and mains electrical load testing.
- The hardware handles mains voltage: assembly needs validation by an electrician before first use under load.
Evidence
Each record backs a claim made above; the reference beside a result, a limitation or a decision points here.
Architecture · hardware, edge, cloud and applications
How the physical module, the edge device, the cloud and the applications relate, in one drawing.
Hardware · electronics in KiCad
The circuit around the ESP32: the validated electrical schematic, kept in the repository with the board and component libraries.
A relay outside, nothing inside
The module is external; the appliance stays as it was built.
Links
- View repositorygithub.com/Tavaressan/cafey