TinyMqtt
TinyMqtt
智能家居, ESP32
2/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 协议和嵌入式网络编程的实践项目。