ESP32 · Embedded Systems · C · FreeRTOS · LVGL · TMC2130 · Stepper Motor · IoT
This project presents the design and implementation of a fully automated tea brewing system based on ESP32 microcontrollers. The system consists of two ESP32 modules working in tandem:
| Module | Microcontroller | Function |
|---|---|---|
| Display Controller | ESP32-S3 | Touchscreen UI using LVGL graphics library |
| Motor Controller | ESP32-C6 | Stepper motor control via TMC2130 driver |
- IR Thermometer - Precise water temperature monitoring
- Laser Distance Sensor - Teapot presence detection (VL53L0X)
- Induction Cooker Interface - Automated heating control via optocoupler
- Stepper Motor Control - Precise tea bag immersion with TMC2130
- Touchscreen Interface - Intuitive LVGL-based user interface
- Web Dashboard - Remote control via WiFi with mDNS support (teabrewer.local)
- Programmable Brewing - Configurable temperature, steeping time, and movement
The goal was to create a fully autonomous tea brewing appliance that can prepare tea with consistent quality by precisely controlling brewing temperature, steeping time, and tea bag movement.
| Document | Path |
|---|---|
| Paper | View Paper |
| Images & Screenshots | View Images |
Automated-Tea-Brewer/
├── src/ # Source code
│ ├── tea-brewer/ # ESP32-S3 Display Controller
│ │ ├── main/
│ │ │ ├── app_main.c # Application entry point
│ │ │ ├── uart_comm.c/h # UART communication
│ │ │ ├── settings.c/h # User settings management
│ │ │ ├── webserver.c/h # Web dashboard server
│ │ │ └── ui/ # LVGL user interface
│ │ ├── components/
│ │ │ ├── bsp/ # Board Support Package
│ │ │ └── esp_lcd_touch_cst816s/
│ │ └── managed_components/ # ESP-IDF dependencies
│ │
│ └── tea-brewer-controller/ # ESP32-C6 Motor Controller
│ ├── main/
│ │ ├── main.c # Application entry point
│ │ ├── motor/ # TMC2130 stepper control
│ │ ├── temperature_sensor/ # IR thermometer interface
│ │ ├── distance_sensor/ # VL53L0X laser sensor
│ │ ├── pot_sensor/ # Teapot detection
│ │ ├── protocol/ # ESP-to-ESP communication
│ │ ├── console/ # USB Serial debug interface
│ │ ├── scheduler.c/h # Task scheduling
│ │ └── rtc/ # Real-time clock
│ └── components/
│ └── vl53l0x/ # Distance sensor driver
│
├── docs/ # Documentation
│ ├── electronics/ # Electronics documentation
│ ├── images/ # Project images & photos
│ ├── induction-cooker/ # Induction cooker mod guide
│ ├── stepper-motor-driver/ # TMC2130 wiring diagrams
│ └── web-dashboard/ # Web dashboard documentation
│
├── models/ # 3D Models
│
└── reports/ # Data & Analysis
├── brew-time/ # Brew time analysis
│ ├── graph_maker.py
│ ├── data/
│ └── graphs/
├── heat-dissipation/ # Heat dissipation analysis
│ ├── graph_maker.py
│ ├── data/
│ └── graphs/
└── ir-thermometer/ # IR thermometer calibration
├── graph_maker.py
├── data/
└── graphs/
Hardware setup guides are available in the docs/ folder:
- Induction Cooker Modification - Optocoupler wiring and connector setup
- TMC2130 Stepper Driver - SPI configuration and wiring diagrams
- Web Dashboard - Remote control interface and API reference
- UI Documentation - LVGL UI structure and customization