Rust 嵌入式:咖啡机实时萃取监控 + HomeAssistant 联动

MaraTUI 是面向 Lelit Mara X 咖啡机的开源 ESP32 监控固件。实现本地屏幕实时查看萃取状态、温度曲线与出杯统计,MQTT 上报设备数据,无缝对接智能家居;配套 PC 模拟器,降低嵌入式 UI 开发门槛。

Rust 嵌入式:咖啡机实时萃取监控 + HomeAssistant 联动封面
oshw_hqzl2026-08-19 17:06:17MIT
6
Star

PCBA

设计文件

KiCad图标maratui-main.zip1.06MB(1次下载)

EDA查看器

复制嵌入代码

详细介绍

一、项目概述

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 显示屏,多页面交互,实体按键切换页面,长按唤起调试浮层。

  1. Dashboard 仪表盘(主页面)

    • 机器工作模式识别:COFFEE / STEAM / OFFLINE,不同模式颜色区分;

    • 锅炉温度实时显示:当前温度、目标温度,冷暖色视觉提示;

    • HX 热交换器温度指示,标记 80‑95℃理想萃取区间;

    • 加热、水泵工作状态指示灯;

    • 萃取计时器:萃取过程计时,界面颜色随萃取进度变化;

    • 萃取质量评估:自动判断 UNDEREXTRACTED / GOOD / PERFECT / LONG SHOT / BLONDEING;

    • 总出杯计数统计。

  2. Graphs 温度曲线页面 5 分钟滚动时间窗口,1Hz 采样速率,绘制锅炉当前温度、锅炉目标温度、HX 热交换器温度历史曲线,直观观察萃取温度稳定性。

  3. 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 制版文件、完整引脚接线说明,可以直接打板自制转接硬件。

四、工作流程

  1. ESP32 上电启动,读取固件内置 WiFi、MQTT 配置;

  2. 连接 WiFi 网络,建立 MQTT 客户端连接;

  3. 通过 UART 串口和 Lelit Mara X 咖啡机通信,持续读取机器原始遥测帧;

  4. 解析数据,驱动屏幕刷新仪表盘、温度曲线界面;

  5. 将解析后的机器状态、萃取事件发布到 MQTT 对应主题;

  6. MQTT Broker 推送数据至 Home Assistant 完成设备发现与状态同步。

五、配置与安全说明

  1. 通过.env配置文件,配置 WiFi 账号密码、MQTT 服务器地址、客户端 ID、主题前缀;

  2. ESP32 固件编译阶段,会将 WiFi、MQTT 凭证烧录进 Flash 存储,固件镜像可以提取出凭证,固件镜像不建议对外分发

  3. 默认配置指向公共测试 MQTT 服务器,实际部署务必切换为私有 MQTT 服务;生产环境建议启用 TLS 加密通信;

  4. WiFi 密码为空时,设备会启动开放 AP 热点,无加密,生产环境避免该状态。

六、技术栈

  • 固件语言:Rust(嵌入式 Rust)

  • 微控制器:ESP32

  • 显示驱动:ILI9341 SPI‑TFT

  • 通信:UART(咖啡机)、WiFi、MQTT

  • 模拟器:SDL2

  • 硬件工程:KiCad

七、项目展望(Roadmap)

  • 实现 NVS 非易失存储,支持离线模式。

八、适配场景

  • 咖啡爱好者 DIY 改造 Lelit Mara X 咖啡机;

  • 嵌入式 Rust 学习实践项目;

  • 智能家居物联网咖啡设备扩展方案。

九、License

MIT license

十、项目地址

https://github.com/ololonly/maratui