littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于C++的IBM Watson与ESP8266 MQTT通信项目

项目简介

本项目基于C++语言,借助IBM Watson IoT平台与ESP8266进行通信。IBM Watson IoT平台是云托管服务,采用行业标准的MQTT协议,能简化物联网设备管理并挖掘其价值。项目主要目的是验证MQTT客户端库中连接、发布、订阅、取消订阅等功能的正确性,为Arduino等嵌入式系统提供MQTT客户端实现,支持多种MQTT协议版本。

项目的主要特性和功能

  1. 连接测试:验证客户端与MQTT服务器的连接情况,包含用户名和密码验证、非清洁会话连接、带意愿消息的连接等场景。
  2. 发布测试:验证客户端向指定主题发布消息的能力,涵盖基本字符串消息、字节数组消息、保留消息等。
  3. 订阅测试:验证客户端订阅指定主题,并接收和处理QoS等级为0和1的消息。
  4. 取消订阅测试:验证客户端取消订阅指定主题的功能。
  5. 断开连接测试:验证客户端断开与MQTT服务器连接的功能。
  6. 接收测试:验证客户端接收和处理MQTT消息的能力,包括流式消息、最大尺寸消息、QoS 1消息等。
  7. 设备管理:利用IBM Watson的设备管理服务,可执行设备操作(如重启或更新固件),接收设备诊断和元数据,进行批量设备添加和移除。

安装使用步骤

前提条件

假设用户已下载本项目的源码文件,且已安装Arduino IDE和ESP8266开发板。

具体步骤

  1. 若已有ibm watson控制台,可点击此处登录;若没有,打开DOC文件夹,仔细阅读文档 IBM_WATSON.pdf 来创建ibm控制台。
  2. 打开LIB文件夹,将ArduinoJson(5.13.5)和PubSubClient(2.7.0)文件夹从下载的仓库复制到Arduino本地库目录(libraries)中。
  3. 进入CODE文件夹,修改global.hibm.cpp中的凭据:
    • global.h中提供WIFI路由器的ssid和密码。
    • ibm.cpp中输入组织ID(Bluemix ID)、设备类型和ID、认证令牌。
  4. 完成上述修改后,编译代码。
  5. 使用Arduino IDE上传代码,上传完成后重启模块。
  6. 若要进行publishsubscribe操作,参考 IBM_WATSON.pdf 文档的最后一页。
  7. 可在串口监视器中以9600波特率查看输出调试信息。

注意事项

  • 该项目需要连接到MQTT服务器进行测试,确保MQTT服务器正常运行并可通过网络访问。
  • 确保Arduino设备正确连接到网络,以便进行MQTT通信。
  • 本项目在esp8266核心版本2.4.2上进行了测试。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】