协议简介
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,可以应用于物联网(IoT)环境中。
通过Hi3861开发板实现信息的采集,通过MQTT协议实现信息的传输。
对比我们的测试环境大致为:开发板(publish) --> MQTT Server --> MQTT Client(subscribe)
Wifi连接
参考连老师教程:https://harmonyos.51cto.com/posts/1235
1) 首先开发板接入局域网网络,将代码中结构体assoc_req.ssid、assoc_req.key换成自己家中wifi的SSID(热点名称)、password(热点密码)。
2) 编译、烧录、启动开发板,串口打印“Wifi Connected”。使用AT+PING命令测试,通信正常。
编译Mqtt第三方软件
参考连老师教程:https://harmonyos.51cto.com/posts/1384
1) 使用连老师移植好的Paho-MQTT软件包,用于测试的mqtt demo。
2) 测试代码中host、port、topic可以更改成自己实验用的,重点的字段如下。
搭建MQTT服务器
参考:https://baijiahao.baidu.com/s?id=1610057452592802735&wfr=spider&for=pc
1)选用轻量级的mosquitto开源项目来搭建MQTT服务器,下载源码mosquitto-1.6.12.tar.gz,编译安装;
2)安装完成,mosquitto运行报错Error: Invalid user 'mosquitto',进入目录cd /etc/mosquitto,复制文件cp mosquitto.conf.example mosquitto.conf,在配置文件中增加“user root”;
3)执行mosquitto -c /etc/mosquitto/mosquitto.conf,成功运行打印信息如下;
安装MQTT客户端
1)使用paho测试,配置IP、端口port、订阅topic等相关信息;
开始测试
开发板
IP:192.168.124.13
MQTT服务器
IP:192.168.124.10 port:1883
MQTT客户端
IP:192.168.124.29
1)MQTT服务器启动,查看监听端口1883;
2)MQTT客户端启动,连接MQTT服务器,订阅主题(topic):pubtopic;
3)MQTT服务器查看日志,连接成功;
4)开发板上电,连接好wifi;
5)开发板执行AT+MQTTTEST,连接MQTT服务器,发布(publish)字符串“TEST hello HarmonyOS”到MQTT服务器;
6)MQTT服务器查看日志,连接成功;
7)MQTT客户端接收到订阅消息;
以上是分享的全部内容,谢谢观看。