项目简介
本项目基于C++语言,借助IBM Watson IoT平台与ESP8266进行通信。IBM Watson IoT平台是云托管服务,采用行业标准的MQTT协议,能简化物联网设备管理并挖掘其价值。项目主要目的是验证MQTT客户端库中连接、发布、订阅、取消订阅等功能的正确性,为Arduino等嵌入式系统提供MQTT客户端实现,支持多种MQTT协议版本。
项目的主要特性和功能
- 连接测试:验证客户端与MQTT服务器的连接情况,包含用户名和密码验证、非清洁会话连接、带意愿消息的连接等场景。
- 发布测试:验证客户端向指定主题发布消息的能力,涵盖基本字符串消息、字节数组消息、保留消息等。
- 订阅测试:验证客户端订阅指定主题,并接收和处理QoS等级为0和1的消息。
- 取消订阅测试:验证客户端取消订阅指定主题的功能。
- 断开连接测试:验证客户端断开与MQTT服务器连接的功能。
- 接收测试:验证客户端接收和处理MQTT消息的能力,包括流式消息、最大尺寸消息、QoS 1消息等。
- 设备管理:利用IBM Watson的设备管理服务,可执行设备操作(如重启或更新固件),接收设备诊断和元数据,进行批量设备添加和移除。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,且已安装Arduino IDE和ESP8266开发板。
具体步骤
- 若已有
ibm watson
控制台,可点击此处登录;若没有,打开DOC文件夹,仔细阅读文档 IBM_WATSON.pdf 来创建ibm控制台。 - 打开LIB文件夹,将
ArduinoJson
(5.13.5)和PubSubClient
(2.7.0)文件夹从下载的仓库复制到Arduino本地库目录(libraries
)中。 - 进入CODE文件夹,修改
global.h
和ibm.cpp
中的凭据:- 在
global.h
中提供WIFI路由器的ssid和密码。 - 在
ibm.cpp
中输入组织ID(Bluemix ID)、设备类型和ID、认证令牌。
- 在
- 完成上述修改后,编译代码。
- 使用Arduino IDE上传代码,上传完成后重启模块。
- 若要进行
publish
和subscribe
操作,参考 IBM_WATSON.pdf 文档的最后一页。 - 可在串口监视器中以
9600
波特率查看输出调试信息。
注意事项
- 该项目需要连接到MQTT服务器进行测试,确保MQTT服务器正常运行并可通过网络访问。
- 确保Arduino设备正确连接到网络,以便进行MQTT通信。
- 本项目在esp8266核心版本
2.4.2
上进行了测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】