一、项目概述
MaraTUI 是一个基于 Rust 嵌入式开发、运行在 ESP32 硬件平台的开源固件项目,专门为 Lelit Mara X 意式咖啡机开发扩展控制系统。项目利用咖啡机原生 UART 接口读取机器内部运行遥测数据,外接 ILI9341 SPI‑TFT 显示屏实现本地可视化操作,同时通过 MQTT 协议把咖啡机各项状态对外输出,原生支持 Home Assistant 智能家居自动接入。项目配套 PC 端软件模拟器,无需真实硬件即可完成 UI 界面开发调试,硬件侧开放 KiCad 工程、PCB 渲染图、Gerber 生产文件,可自制硬件电路板。
back | front |
|---|---|
![]() | ![]() |
二、项目背景
Lelit Mara X 是一款家用商用意式咖啡机,机器内部具备串口输出机器工作数据,但原厂无外接显示屏,用户只能依靠机器本体指示灯获取有限信息,萃取温度、热交换器状态、萃取计时、出杯质量等关键参数无法直观查看,也无法对接智能家居系统。 MaraTUI 项目解决该痛点:外接 ESP32 外设,读取咖啡机串口原始数据,把萃取全流程信息可视化,同时打通物联网,实现状态上报、设备统计。
三、核心功能
1. 本地 TUI 显示界面
硬件驱动 2.8 寸 ILI9341(320×240)SPI 显示屏,多页面交互,实体按键切换页面,长按唤起调试浮层。
Dashboard 仪表盘(主页面)
机器工作模式识别:COFFEE / STEAM / OFFLINE,不同模式颜色区分;
锅炉温度实时显示:当前温度、目标温度,冷暖色视觉提示;
HX 热交换器温度指示,标记 80‑95℃理想萃取区间;
加热、水泵工作状态指示灯;
萃取计时器:萃取过程计时,界面颜色随萃取进度变化;
萃取质量评估:自动判断 UNDEREXTRACTED / GOOD / PERFECT / LONG SHOT / BLONDEING;
总出杯计数统计。
Graphs 温度曲线页面 5 分钟滚动时间窗口,1Hz 采样速率,绘制锅炉当前温度、锅炉目标温度、HX 热交换器温度历史曲线,直观观察萃取温度稳定性。
Debug 调试浮层(长按呼出) 查看 WiFi 连接、MQTT 连接状态、设备内存信息、原始 UART 串口帧、最近 10 条遥测事件,用于排错调试。
2. MQTT 物联网遥测
ESP32 连接 WiFi 后,启动 MQTT 客户端:
高频上报咖啡机实时遥测数据(1Hz);
事件推送:萃取开始 / 结束、水箱补水、机器模式切换等事件;
上报设备自身状态:WiFi 信号、内存、运行堆信息;
支持订阅 MQTT 主题,接收外部的出杯计数。
3. Home Assistant 原生集成
编译开启home‑assistant功能特性,固件内置 MQTT 发现报文,无需额外中间件(Node‑RED / 桥接器)。设备连上 MQTT Broker 之后,设备实体自动在 Home Assistant 中注册,可直接读取咖啡机全部状态、萃取统计数据,用于自动化、数据记录。
4. PC 模拟器(开发工具)
项目提供 SDL2 实现的主机模拟器,不连接 ESP32 硬件,电脑上直接运行完整 UI 逻辑。
支持 Linux/macOS/Windows 多系统;
键盘模拟按键操作,可手动注入模拟萃取帧、模拟 MQTT 事件;
用于 UI 迭代、逻辑调试,降低嵌入式开发调试成本。
5. 硬件开源
主控:ESP32 Type‑C 开发板;
显示:ILI9341 2.8 寸 SPI TFT 屏幕;
输入:1 个物理按键;
仓库
hardware目录:KiCad 源工程、PCB 3D 渲染效果图、Gerber 制版文件、完整引脚接线说明,可以直接打板自制转接硬件。
四、工作流程
ESP32 上电启动,读取固件内置 WiFi、MQTT 配置;
连接 WiFi 网络,建立 MQTT 客户端连接;
通过 UART 串口和 Lelit Mara X 咖啡机通信,持续读取机器原始遥测帧;
解析数据,驱动屏幕刷新仪表盘、温度曲线界面;
将解析后的机器状态、萃取事件发布到 MQTT 对应主题;
MQTT Broker 推送数据至 Home Assistant 完成设备发现与状态同步。
五、配置与安全说明
通过
.env配置文件,配置 WiFi 账号密码、MQTT 服务器地址、客户端 ID、主题前缀;ESP32 固件编译阶段,会将 WiFi、MQTT 凭证烧录进 Flash 存储,固件镜像可以提取出凭证,固件镜像不建议对外分发;
默认配置指向公共测试 MQTT 服务器,实际部署务必切换为私有 MQTT 服务;生产环境建议启用 TLS 加密通信;
WiFi 密码为空时,设备会启动开放 AP 热点,无加密,生产环境避免该状态。
六、技术栈
固件语言:Rust(嵌入式 Rust)
微控制器:ESP32
显示驱动:ILI9341 SPI‑TFT
通信:UART(咖啡机)、WiFi、MQTT
模拟器:SDL2
硬件工程:KiCad
七、项目展望(Roadmap)
实现 NVS 非易失存储,支持离线模式。
八、适配场景
咖啡爱好者 DIY 改造 Lelit Mara X 咖啡机;
嵌入式 Rust 学习实践项目;
智能家居物联网咖啡设备扩展方案。
九、License
MIT license


