BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发 原创
BearPi-HM_Nano开发板WiFi编程开发——MQTT协议开发
本示例将演示如何在BearPi-HM_Nano开发板上使用MQTT协议
编译调试
下载MQTT消息代理工具Mosquitto
点击下载Mosquitto 工具
下载后双击安装包,安装工具,安装完毕后,打开电脑设备管理器,在“服务”中开启mosquitto服务。
修改安装路径下的mosquitto.conf文件
修改515行附近代码
修改216行附近代码,其中192.168.0.173
为自己的电脑的IP地址
下载Eclipse Paho MQTT 工具
点击下载Eclipse Paho MQTT 工具
解压缩后,双击paho.exe,打开后的Eclipse Paho UI开始界面,点击上图中的 十字图标,就能新建一个MQTT的客户端的连接,如下图所示
输入正确的MQTT服务端的连接地址,比如,本例中的连接地址是tcp://localhost:1883,然后点击“连接”按钮,这个时候,如果MQTT服务端没有设置密码(默认情况是没有密码的)的话,这个时候,我们就能看到连接得到状态是“已连接”,如下图所示:
这个时候我们就能订阅消息了。选择“订阅”下方的绿色十字图标,就可以输入订阅的主题(topic)的名字,比如我们设置主题名称为“pubtopic”,并点击 “订阅”按钮,如下图所示
修改对接IP
将代码中对接的IP修改为电脑在命令行窗口里输入 ipconfig
查询的电脑的本地IP
修改 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 工具上会接收到开发板发布的消息。
往开发板发送一条消息主题为“substopic”,内容为“Hello HarmoayOS!”的MQTT消息。然后点击“发布”按钮,这个时候,我们就能看到消息已经发送成功。
且开发板的串口上也打印出接收消息成功的信息。
温馨提示:要安装java8,java8,java8,并且要64位,64位,64位版本,安装好后,如何查看java是否64位版本,请自行百度
搞了一天还是没解决以下错误,链接不上MQTT,上面操作已经确认到位,我是笔记本连wifi后,自己开热点供开发板链接,开发板顺利链接上热点,上面mosquitto.conf内修改的ip也是热点的IP,求大神指导
MQTTConnect: -1
设备管理器里面的服务开启了吗,可以试试都连路由器。
兄弟啊!我也是-1,捣鼓一晚上了,查了好多资料,差点放弃了来看见兄弟你也是卡在这里,前来求救!!!
你好,我的情况是paho可以收发消息,也顺利连接,就是开发板烧录了之后每一步都正确,就是到MQTTConnect: 的时候等很久,最后显示一个 -1 ,等待的话一直都是这样,循环地发送MQTTConnect: -1,代码里面的ip是正确的,因为之前的udp和tcp都可以顺利运行,这是什么问题了,求解答!!!!
你有没有尝试过使用公用mqtt服务器测试过?例如使用然也物联公共版MQTT服务器地址:test.ranye-iot.net未加密传输端口:1883 如果能够连接上那就是说明电脑没有设置好
你好,果真连接上了,我的电脑需要设置什么嘛,我按照开发板配置的视频和教程来走的,反复运行过好多次,都是无果,可以说说哪里可能出了问题吗?谢谢
我进行了一些操作,比如说将本机防火墙开放1883通道,卸载mqtt服务,重装等,现在error变成了2了,从-1变成2,这又是什么问题呢
又尝试了一下其他解决办法,网上百度说,返回2是因客户端ID设置没设置好,我又去手动修改了一下代码,输入了一个长整型ID,还是返回2,真是令人费解.....兄弟,我先搁置一下了,等待你的回复
这种情况没遇到过,因为我之前也试过这种方法自搭建MQTT服务器,但是也出现了你这种情况,后来就没纠结这一方面了直接使用公用MQTT服务器,用MQTT.fx接收消息就行了,反正也就是做测试用,既然能够连接上公用的服务器,就没必要纠结这个问题