使用L610连接华为云遇到的一些问题

第一次参加物联网比赛,什么也不会,遇到了一些问题,在网上搜索相关资料还很少,于是把遇到的问题和看到别人遇到的问题稍微整理了一下放在这里,供后人参考。(主要是AT指令遇到的一些问题)

文章参考了华为的文档。关于指令的具体内容可以看链接里的内容,以下是遇到的一些问题。

AT+HMCON ERROR

这条指令的格式如下

AT+HMCON=bsmode,lifetime,serverip,serverport,deviceid,passwd,codec

其中bsmode表示一个模式,默认值为0;lifetime表示保持心跳时间,默认值为300,建议大于等于30;serverip是设备接入服务器地址或者BS地址,这个值可以在总览的当前实例下的接入信息按钮中查看。
在这里插入图片描述
把对应的接入地址保存下来,例如我们的是设备接入,使用的是MQTT协议,把对应的地址保存一下就行了。serverport在刚刚查看接入地址的地方可以顺带查看,例如我们使用MQTT协议,对应的就是1883端口。deviceid就是设备id,在设备栏的所有设备分栏中可以查看不同设备对应的设备id。pwd是用户在注册设备时自己设置的。codec是payload的编码方式,默认为0,表示原始编码,1表示十六进制编码。如下是一个指令的模板,只要把具体信息填进入就行。

AT+HMCON=0,60,"网址","1883","设备ID","pwd",0

如果出现ERROR可以检查一下自己的接入网址有没有搞错,接入网址的后面一部分一般是服务所在的区域加上华为的后缀,例如北京四的后缀是cn-north-4.myhuaweicloud.com,如果没有错可以看下自己的端口有没有搞错。根据群里的老师说error后面的数字代表的是哪一块有问题,例如error6,可能就是密码有问题,但实际上可能需要把每一块都核对一下。
这里还有一个特殊情况,如果出现了AT+HMCON error11,这代表你之前已经连接上华为云了,现在重复连接导致报错,可以加一条AT+HMDIS指令,先断开连接,然后重新连接。

AT+HMPUB

原先用的AT+HMSUB指令,但是没有摸索明白,最后用这条指令实现了。这条指令格式如下

AT+HMPUB=qos,topic,payload_len,payload

其中qos是mqtt的qos,取值0~2,默认值为0;topic是指定的topic,默认为上报属性的topic;len是待发送数据长度,单位为字节;payload是转换为ascii码的数据,最大长度为1024字节。
指令示例如下:

AT+HMPUB=1,"$oc/devices/设备ID/sys/properties/report",74,"{\"services\":[{\"service_id\":\"服务ID\",\"properties\":{\"属性名称\":属性值}}]}"

只要把示例中的中文和ID替换成实际的值就可以了。其中服务ID可以在产品中点击查看,然后在模型定义中查看,属性名称就在模型定义这一块里。
这条指令最容易出现的一个问题就是len的数值与实际的数据长度不符,这样就会导致error,所以一定要核实payload的长度,数长度时要把{\"services\":[{\"service_id\":\"服务ID\",\"properties\":{\"属性名称\":属性值}}]}中除了\符号以外的符号数上。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值