【行空板K10】Mind+程序如何通过MQTT连接巴法云平台

2025-01-143.5万
精华项目
AI 快速预览详细 收起
本文介绍了如何使用Mind+程序通过MQTT连接巴法云平台。首先,文章解释了巴法云的两种认证方式,并指出由于Mind+提供的MQTT组件不支持修改clientid,只能使用第二种方式。接着,详细说明了如何通过curl命令生成appID和secretKey,并在Mind+程序中设置这些参数。最后,展示了测试结果,确认终端登录成功且数据被正确上传。


【行空板K10】利用Nanomq的桥接转发能力实现接入任意的MQTT服务器 中介绍了行空板K10内置的MQTT组件只支持阿里云、OneNet、EasyIoT和SIoT4种MQTT服务器。这对想使用其他MQTT服务器的用户来说不太方便。今天分享一下如何直接使用内置的MQTT组件来连接巴法云。

巴法云的MQTT认证方式
巴法云的MQTT认证方式有两种:

  • 方式一:用户私钥作为连接MQTT服务器的客户端ID,连接时用户名和密码为空,或随意填写,即设备连接时不需要账号和密码。
  • 方式二:如果客户端ID设置错误或不匹配,系统会使用用户名和密码进行身份验证,其中用户名是appID,密码是secretKey,appID和secretKey的获取方式,可见api接口中用户接口接口<设置新的AppID和secretKey>获取。

一般用户多喜欢使用第一种,但是Mind+提供的MQTT组件不支持修改clientid,会自动生成随机的clientid,所以无法使用第一种方式。我们只能使用第二种方式来实现。

生成巴法云的appID和secretKey
第二种方式需要先生成appID和secretKey。巴法云的相关文档是这样的:

6、设置新的AppID和secretKey​
接口说明:如果调用成功,系统会生成新的新的AppID和secretKey,旧的AppID和secretKey不会失效。

JSON格式 数据类型 "Content-Type": "application/json; charset=utf-8"

POST接口
  1. https://pro.bemfa.com/vs/web/v1/userSecretKey
复制代码

【行空板K10】Mind+程序如何通过MQTT连接巴法云平台图1

正确返回:

  1. {
  2.     "code": 0,
  3.     "msg": "success",
  4.     "data": {
  5.         "appID": "beid_xQjMwcjN0EzNx8VM3UDN3A",
  6.         "secretKey": "7IoRBu2g4kSMywplr9ihofJz4n90HsW9"
  7.     }
  8. }
复制代码

【行空板K10】Mind+程序如何通过MQTT连接巴法云平台图2

巴法云在后台没有提供相应的界面,所以我们只好借助Windows的curl命令实现。
  1. curl -X POST https://pro.bemfa.com/vs/web/v1/userSecretKey -H "Content-Type: application/json; charset=utf-8"  -d "{"openID":"7801e4ba1bf7406593d47250797860fd"}"
复制代码

执行后,curl会返回如下信息:
  1. {"code":0,"msg":"success","data":{"appID":"beid_xQjMwcjN0EzNx8VM3UDN3A","secretKey":"7IoRBu2g4kSMywplr9ihofJz4n90HsW9"}}
复制代码

这样我们就可以得到自己想要的ID了。

测试
我们还是用【行空板K10】利用Nanomq的桥接转发能力实现接入任意的MQTT服务器提供的程序。

【行空板K10】Mind+程序如何通过MQTT连接巴法云平台图3

在设置MQTT参数的部分使用前面生成的ID和KEY。

【行空板K10】Mind+程序如何通过MQTT连接巴法云平台图4

然后烧写程序并运行。

此时在巴法云的后台就可以看到终端登录成功:

【行空板K10】Mind+程序如何通过MQTT连接巴法云平台图5

数据也被正确的上传。

【行空板K10】Mind+程序如何通过MQTT连接巴法云平台图6

结语
虽然比常规使用巴法云的方式多了一个步骤,但整体还是比较容易实现的。不过这种方法不能适用于华为云IotDA,因为华为云对用户名、密码和clientid三者都有严格的要求。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
caicai17
caicai17
请问为什么使用AppID和secretKey连接巴法云平台,obloq显示连接成功,但是巴法云的不显示在线设备
神一样的老师
神一样的老师
作者
回复caicai17
我记得只有订阅设备才显示在线吧?
- 没有更多了 -