BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发 原创

小熊派开源社区
发布于 2021-7-13 14:08
浏览
2收藏

BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发

本示例将演示如何在BearPi-HM_Nano开发板上使用MQTT协议

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

编译调试

下载MQTT消息代理工具Mosquitto

点击下载Mosquitto 工具

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

下载后双击安装包,安装工具,安装完毕后,打开电脑设备管理器,在“服务”中开启mosquitto服务。
 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

修改安装路径下的mosquitto.conf文件
修改515行附近代码
 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区
修改216行附近代码,其中192.168.0.173为自己的电脑的IP地址
 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

下载Eclipse Paho MQTT 工具

点击下载Eclipse Paho MQTT 工具

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

解压缩后,双击paho.exe,打开后的Eclipse Paho UI开始界面,点击上图中的 十字图标,就能新建一个MQTT的客户端的连接,如下图所示

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

输入正确的MQTT服务端的连接地址,比如,本例中的连接地址是tcp://localhost:1883,然后点击“连接”按钮,这个时候,如果MQTT服务端没有设置密码(默认情况是没有密码的)的话,这个时候,我们就能看到连接得到状态是“已连接”,如下图所示:
 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

这个时候我们就能订阅消息了。选择“订阅”下方的绿色十字图标,就可以输入订阅的主题(topic)的名字,比如我们设置主题名称为“pubtopic”,并点击 “订阅”按钮,如下图所示
 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

修改对接IP

将代码中对接的IP修改为电脑在命令行窗口里输入 ipconfig 查询的电脑的本地IP

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

修改 BUILD.gn 文件

修改 applications\sample\BearPi\BearPi-HM_Nano路径下 BUILD.gn 文件,指定 iot_mqtt 参与编译。

#"D1_iot_wifi_sta:wifi_sta",
#"D2_iot_wifi_sta_connect:wifi_sta_connect",       
#"D3_iot_udp_client:udp_client",
#"D4_iot_tcp_server:tcp_server",
"D5_iot_mqtt:iot_mqtt",        
#"D6_iot_cloud_oc:oc_mqtt",
#"D7_iot_cloud_onenet:onenet_mqtt",

示例代码编译烧录代码后,按下开发板的RESET按键,Eclipse Paho MQTT 工具上会接收到开发板发布的消息。

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

往开发板发送一条消息主题为“substopic”,内容为“Hello HarmoayOS!”的MQTT消息。然后点击“发布”按钮,这个时候,我们就能看到消息已经发送成功。

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

且开发板的串口上也打印出接收消息成功的信息。

 BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
5
收藏 2
回复
举报
10条回复
按时间正序
/
按时间倒序
wx60effec0cd508
wx60effec0cd508

温馨提示:要安装java8,java8,java8,并且要64位,64位,64位版本,安装好后,如何查看java是否64位版本,请自行百度

回复
2021-7-22 10:31:31
wx60effec0cd508
wx60effec0cd508

搞了一天还是没解决以下错误,链接不上MQTT,上面操作已经确认到位,我是笔记本连wifi后,自己开热点供开发板链接,开发板顺利链接上热点,上面mosquitto.conf内修改的ip也是热点的IP,求大神指导
MQTTConnect: -1

回复
2021-7-23 11:01:56
小熊派BearPi
小熊派BearPi

设备管理器里面的服务开启了吗,可以试试都连路由器。

回复
2021-7-23 11:28:43
金をください
金をください 回复了 wx60effec0cd508
搞了一天还是没解决以下错误,链接不上MQTT,上面操作已经确认到位,我是笔记本连wifi后,自己开热点供开发板链接,开发板顺利链接上热点,上面mosquitto.conf内修改的ip也是热点的IP,求大神指导MQTTConnect: -1

兄弟啊!我也是-1,捣鼓一晚上了,查了好多资料,差点放弃了来看见兄弟你也是卡在这里,前来求救!!!

回复
2021-9-24 22:04:59
金をください
金をください 回复了 小熊派BearPi
设备管理器里面的服务开启了吗,可以试试都连路由器。

你好,我的情况是paho可以收发消息,也顺利连接,就是开发板烧录了之后每一步都正确,就是到MQTTConnect: 的时候等很久,最后显示一个  -1  ,等待的话一直都是这样,循环地发送MQTTConnect: -1,代码里面的ip是正确的,因为之前的udp和tcp都可以顺利运行,这是什么问题了,求解答!!!!

回复
2021-9-24 22:14:00
远道可思
远道可思 回复了 金をください
你好,我的情况是paho可以收发消息,也顺利连接,就是开发板烧录了之后每一步都正确,就是到MQTTConnect: 的时候等很久,最后显示一个 -1 ,等待的话一直都是这样,循环地发送MQTTConnect: -1,代码里面的ip是正确的,因为之前的udp和tcp都可以顺利运行,这是什么问题了,求解答!!!!

你有没有尝试过使用公用mqtt服务器测试过?例如使用然也物联公共版MQTT服务器地址:test.ranye-iot.net未加密传输端口:1883  如果能够连接上那就是说明电脑没有设置好

1
回复
2021-9-25 00:22:32
金をください
金をください 回复了 远道可思
你有没有尝试过使用公用mqtt服务器测试过?例如使用然也物联公共版MQTT服务器地址:test.ranye-iot.net未加密传输端口:1883 如果能够连接上那就是说明电脑没有设置好

你好,果真连接上了,我的电脑需要设置什么嘛,我按照开发板配置的视频和教程来走的,反复运行过好多次,都是无果,可以说说哪里可能出了问题吗?谢谢

回复
2021-9-25 09:07:05
金をください
金をください 回复了 远道可思
你有没有尝试过使用公用mqtt服务器测试过?例如使用然也物联公共版MQTT服务器地址:test.ranye-iot.net未加密传输端口:1883 如果能够连接上那就是说明电脑没有设置好

我进行了一些操作,比如说将本机防火墙开放1883通道,卸载mqtt服务,重装等,现在error变成了2了,从-1变成2,这又是什么问题呢

回复
2021-9-25 10:01:07
金をください
金をください 回复了 远道可思
你有没有尝试过使用公用mqtt服务器测试过?例如使用然也物联公共版MQTT服务器地址:test.ranye-iot.net未加密传输端口:1883 如果能够连接上那就是说明电脑没有设置好

又尝试了一下其他解决办法,网上百度说,返回2是因客户端ID设置没设置好,我又去手动修改了一下代码,输入了一个长整型ID,还是返回2,真是令人费解.....兄弟,我先搁置一下了,等待你的回复

回复
2021-9-25 10:19:33
远道可思
远道可思

这种情况没遇到过,因为我之前也试过这种方法自搭建MQTT服务器,但是也出现了你这种情况,后来就没纠结这一方面了直接使用公用MQTT服务器,用MQTT.fx接收消息就行了,反正也就是做测试用,既然能够连接上公用的服务器,就没必要纠结这个问题

回复
2021-9-25 12:15:21
回复
    相关推荐