TinyMqtt TinyMqtt

智能家居, ESP32 2/5 已发布
hsaturn 218 Stars GPL-3.0 BOM 完整度: 0/5 教程完整度: 0/5

项目简介

ESP 8266/32/WROOM 小型Mqtt代理与客户端。


TinyMqtt 是一个专为 ESP8266、ESP32 及 ESP WROOM 系列芯片设计的轻量级 MQTT 代理与客户端库。它基于 MQTT 3.1.1 协议,支持 QoS 0 级别,并实现了通配符(+、#、$ 及非标准但实用的 *)订阅功能,能够高效处理主题匹配与消息分发。在性能测试中,TinyMqtt 在 ESP8266 上实现了每秒重发 1000 个主题(约 15 字节负载)且无丢包,峰值可达 2000 条/秒,展现了极快的转发能力。

标签

项目特点

**双角色支持**:可同时作为 MQTT 代理和客户端运行。
**高性能**:在 ESP8266 上实测可达到每秒 1000 条以上的消息转发速度(15 字节负载)。
**保留消息**:支持保留消息功能(默认关闭),新订阅者可立即收到历史消息。
**通配符支持**:支持 `+`、`#`、`$` 和 `*` 通配符订阅。
**异步 WiFi 兼容**:兼容 `me-no-dev/ESPAsyncTCP` 库。
**零配置模式**:所有代理可自动发现并连接成网络(功能开发中)。
**独立模式**:无需 WiFi 即可在本地运行(降级/本地模式)。
**内存占用小**:高效的主题存储机制,最大支持 255 个不同主题。
**单元测试覆盖**:大量单元测试确保代码稳定性和可靠性。

技术规格

支持平台 ESP8266, ESP32, ESP WROOM
MQTT 版本 3.1.1
QoS 等级 0(不支持 QoS 1/2)
最大主题数 255(可通过修改 `index_t` 类型扩展)
消息长度 支持长消息(>127 字节)
保留消息 支持(默认关闭,可配置最大数量)
异步 WiFi 兼容 ESPAsyncTCP
许可证 GPL-3.0

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
ESP8266 或 ESP32 开发板 1 如 NodeMCU、Wemos D1 Mini、ESP32 DevKit
USB 数据线 1 用于供电和编程
传感器/执行器 若干 根据实际应用场景添加

能力画像

⚪ 记忆与知识检索: 1/5
🔵 逻辑推演: 2/5
⚪ 表达与交流: 1/5
⚪ 感知与观察: 1/5
🔵 数理与计算: 2/5
🔵 动手与操作: 2/5
⚪ 狂热与坚持: 1/5
⚪ 创造与创新: 2/5

所需技能

🔧 **动手能力**:需要基本的硬件连接能力,如将传感器/执行器连接到 ESP 开发板。 💻 **编程能力**:需要熟悉 Arduino 编程或 C++,能够理解 MQTT 协议的基本概念。 ⚡ **电子电路**:了解基本的电路连接(如 GPIO、电源、地线)即可。

适用场景

**智能家居**:在本地网络中搭建 MQTT 代理,连接各种传感器和执行器,无需依赖云服务。
**物联网原型开发**:快速搭建 MQTT 通信原型,测试设备间的消息传递。
**离线/本地消息系统**:在没有互联网的环境中,使用 ESP 作为本地消息中心。
**教育学习**:学习 MQTT 协议和嵌入式网络编程的实践项目。