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

引言

昨天在博文(【行空板K10】利用Nanomq的桥接转发能力实现接入任意的MQTT服务器-CSDN博客)中介绍了行空板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接口

 

https://pro.bemfa.com/vs/web/v1/userSecretKey
参数是否必须类型说明
openID字符串类型用户私钥

请求体示例:

 

{
    "openID":"7801e4ba1bf7406593d47250797860fd"
}

正确返回:

 

{
    "code": 0,
    "msg": "success",
    "data": {
        "appID": "beid_xQjMwcjN0EzNx8VM3UDN3A",
        "secretKey": "7IoRBu2g4kSMywplr9ihofJz4n90HsW9"
    }
}
参数类型说明
appID字符串appID
secretKey字符串secretKey

巴法云在后台没有提供相应的界面,所以我们只好借助Windows的curl命令实现。

 

curl -X POST https://pro.bemfa.com/vs/web/v1/userSecretKey -H "Content-Type: application/json; charset=utf-8"  -d "{\"openID\":\"7801e4ba1bf7406593d47250797860fd\"}"

执行后,curl会返回如下信息:

{"code":0,"msg":"success","data":{"appID":"beid_xQjMwcjN0EzNx8VM3UDN3A","secretKey":"7IoRBu2g4kSMywplr9ihofJz4n90HsW9"}}

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

测试

我们还是用博文(【行空板K10】利用Nanomq的桥接转发能力实现接入任意的MQTT服务器-CSDN博客)提供的程序。

589627eb3e204a4f99baacfa042f3f5c.png

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

e665d62c146b48729131a2b1c45484d6.png

然后烧写程序并运行。

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

bcff8c97b5594c638c0aafde5d888a0f.png 

数据也被正确的上传。

efec97f341fc4e89b49fc180d734f9d8.png

结语

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值