TinyMqtt

TinyMqtt

智能家居, ESP32 ⭐⭐☆☆☆ (2/5) 已发布
hsaturn 218 Stars GPL-3.0 BOM 完整度: /5 教程完整度: /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 个不同主题。
**单元测试覆盖**:大量单元测试确保代码稳定性和可靠性。

技术规格

支持平台
MQTT 版本
QoS 等级
最大主题数
消息长度
保留消息
异步 WiFi
许可证

项目资源

物料清单 (BOM)

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

所需工具

工具用途是否必需
Arduino IDE 或 PlatformIO 编写、编译和上传代码 ✅ 是
USB 数据线 连接开发板到电脑 ✅ 是
串口监视器 调试和查看输出 ✅ 是

能力画像

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

所需技能

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

适用场景

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