600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 关于NB-IOT模块链接阿里物联网平台的学习笔记-记录

关于NB-IOT模块链接阿里物联网平台的学习笔记-记录

时间:2018-10-11 22:20:34

相关推荐

关于NB-IOT模块链接阿里物联网平台的学习笔记-记录

关于NB-IOT模块链接阿里物联网平台思路的学习笔记-记录

叙述调试思路总结调试过程AT命令-方式一AT命令-方式二AT命令-方式三软件关于遇到问题总结

叙述

前一段是写了一篇“关于调试模块BC26-移远NB模块-过程所遇问题-记录”,记录了使用BC26上传到阿里数据的相关流程,而这篇算是第二篇,专门记录使用NB物联网模块,调试AT命令连接阿里云过程。

调试思路总结

个人理解,几乎大部分链接网络模块,都差不多,遵循这相似的规则,即接受AT命令,通过AT指令完成,登录网络,注册设备,上传数据,然后关闭

就像以前有个笑话,问把大象装进冰箱需要几步,答需要三步,第一步打开冰箱,第二步把大象装进去,第三步关上冰箱门,只不过模块上传前多了一步注册,就是告诉网络,你是谁。

调试过程

这个流程大致分3个步骤为“连接好的物理NB-iot硬件”,"在阿里物联网平台上建立产品和设备"和“在电脑上调试AT命令调试”。

第一步:连接好的物理NB-iot硬件

链接好硬件,要保证有个串口模块链接到NB模块上,并且有SIM卡,并且通过串口软件调试。

1)发送AT+CIMI命令,能够获取SIM卡号

2)发送AT+CSQ命令,能够查到信号值

3)发送AT+CGATT?命令,能附着上网络

第二步:在阿里物联网平台上建立产品和设备

这个需要在阿里物联网平台建立设备,这一步主要是取得3个重要参数。

第三步:在电脑上调试AT命令调试

这一步是AT命令调试,在下面,提供了3种调试方式,前两种是主要的调试方式,通过不同的命令,让模块完成相应的格式。

AT命令-方式一

第一种使用AT命令连接阿里物联网平台的方式,是在购买BC26模块时提供的资料。只要你在阿里物联网平台,设备上,获取三个值"ProductKey":, “DeviceName”: “DeviceSecret”,就能调试,也就是之前那篇使用的调试。

以下所有命令还是使用BC26,如不是BC26需要根据手册找想要AT指令格式

1)登录阿里云(使用IP地址方式:测试需要连接时间稍快):

AT+QMTOPEN=0,“139.196.135.135”,1883

或者(使用域名方式:测试连接时间稍慢):

AT+QMTOPEN=0,“iot-as--”,1883

2)注册ID(第二个参考自己定,最好和DeviceName值一样):AT+QMTCONN=0,123456789

3)注册设备(需要三个参数,在阿里找到后替换):at+qmtcfg=“aliauth”,0,“ProductKey”,“DeviceName”,“DeviceSecret

4)上传数据(要符合ALINK json格式):AT+QMTPUB=0,0,0,0,"/sys/ProductKey/DeviceName/thing/event/property/post","{“id”:“26”,“version”:“1.0”,“params”:{“CurrentTemperature”:{“value”:5.000000},“CurrentHumidity”:{“value”:5.000000}},“method”:“thing.event.property.post”}

或者(不符合ALINK json格式,依然能发上去,但是阿里会报错,待解决):

AT+QMTPUB=0,0,0,0,“/sys/ProductKey/DeviceName/thing/event/property/post”,“hello MQTT.(这里发你想发的字符串)

AT命令-方式二

其实无论是方式一还是方式二,本质上流程是差不多的。只不过方式二,不先登录阿里云,而是采用合成域名的方式,所以在调试AT命令前需要使用软件合成域名,如下图,这个软件放到软件下,需要的可下载,合成完后可以使用了。

1)使用合成域名登录阿里云(尝试过转IP,stm32还没找到,只能手动转):

AT+QMTOPEN=0,”xxxxx.iot-as--(MQTT合成后域名)”,1883

注:关于手动转IP,win下只要打开CMD,ping域名就会自动转IP.例: >> [220.181.38.150]

2)注册设备的账号和密码。依然从软件中获取,

AT+QMTCONN=0,”ClientID”,”UserName”,”Password

3)发送数据:

AT+QMTPUB=0,0,0,0,“属性上报”,“数据内容

AT命令-方式三

第三种方式,最开始时在代码中,看到的,不过需要知道服务器IP地址和端口号,尝试过阿里IP地址和端口号,未能成功,此方式有待进步调试。

软件

MQTT域名合成软件:/download/qq_22146161/13765526

关于遇到问题

(1)引号符问题

在调试过程中,多一个少一个引号,都会报错误提示,将命令转为单片机代码的时候,要尤其注意这一点。很容易就无法执行。报错,当AT命令内自带引号时,需要加上“\”反斜杠,让编译器识别出来。

(2)换行符问题

在串口软件调试模块的时候,可能软件已经自带"\r\n”换行符选项,在调试代码的时候,就需要自己在命令后加上,否则就有可能不成功。

(3)NB模块总是向串口打印信息

如下图,模块总是通过串口打印类似这周“Leaving the RBOM”信息,其实这是开机信息,说明你的模块总在重启,而引发这种原因就是,可能你使用的模块供电需要5V,而你供电3.3V,或者是电流不够。

(4)返回值非“0”问题

模块带的文档都会,对返回值有所说明,查相应手册能够知道对应原因,虽然大部分情况下0是我门们希望看到,但也要能查到其它数值含有,例如下面这个+QMTSTAT:0,1 查过手册后,其实就是告诉你,模块断开链接了。

(5)格式错误问题

多一个空格,少个空格,很多情况下,我们调试用的软件无法用一排装下AT命令,换行的时候,如果从文档或者其它地方复制来的命令,很容易造成格式错误,报ERROR,这时你就会想,明明我是复制来的,怎么就是不好用呢,这时你就要检查,下一行是否自动换行,还是中间因为复制原因,有换行符。如下,

总结

这就是这次想说的全部内容了,有什么问题,有欢迎一同讨论,进步。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。