市场上有没有可以通过什么UDP/COAP连接阿里云平台的NB模组。如果有希望可以推荐几个常用的NB模组

一直没来得及写一个完整的NB-IOT BC95的UDP数據传输过程这里用我们的开发板来演示一下,如何进行一次UDP数据收发

—————————————————分割线————————————————

首先将开发板接入电脑的USB中,如果你电脑之前没有安装过CP2102的驱动会提醒你安装驱动,可以用360驱动大师安装安装完之後,

计算机右键管理设备管理器 一栏可以看到“端口

这个时候可以打开串口助手:

有很多朋友写完AT,点击发送之后模组没反應,这个时候就要看一下你是否勾选了 Send With Enter因为模组将换行符作为AT指令的结束帧的,必须要勾选上或者在输入框内敲入:Ctrl+Enter,点击发送(Send Command)這个时候在我们的返回框可以看到已经有返回OK说明我们的模组已正常工作了。

我们可以看到在右侧有1、2、3、4....28、29这些框,这个是很便捷嘚一个功能直接把我们的AT指令输入进去,点击发送后软件会自动保存我们的输入记录,以便于下次继续使用下面我们开始进行模组信息检测:

我们先输入“AT+CFUN”,然后选择Enter所对应的勾选框点击对应的数字1

返回,有些朋友说返回的是+CFUN:0这个就是个错误的返回结果了,CFUN的功能是射频开关我们可以通过什么AT+CFUN=1来开启模组的射频开关,在B656版本之后模组上电后默认是开启射频开关的,并不需要认为的设置AT+CFUN=1如果你查询AT+CFUN?返回的结果是0,先等个几秒钟再查如果依旧是0的话,就可能是以下几种情况:

1:模组频率设置不正确

2:模组SIM没有正常连接

至於频率设的相关设置,大家可以点击:BC95频率设置 来查看如何设置如果模组的SIM卡没有识别到的话,那么AT+CFUN?的结果必然是0这个时候你要检查伱的硬件电路是否有问题。

当AT+CFUN?返回结果为1的时候这个时候我们才能进行下一步操作,

No1:首先我们检查一下卡的IMSI

对应AT指令是:AT+CIMI返回结果為你卡片所对应的IMSI。

No2:查询当前信号质量CSQ

对应AT指令是:AT+CSQ返回结果为+CSQ:16,99。前面这个16就是信号质量这个取值范围是0-31的一个数值,当这个数位99嘚时候就说明没有获取到信号,这个时候我们可能需要多等一会儿根据不同的地点,所等待时间在1-60s内如果超过这个时间依旧返回的結果是+CSQ:99,99的话,这个时候就要看一下卡是否是NB卡了还有就是你的模组固件版本是否在657以下(之前版本没有开启扰码功能,不能成功接入基站)

No3:查询当前模组网络注册连接状态CEREG

对应AT指令是:AT+CEREG?,很多朋友虽然都知道CEREG是查询网络状态的但并不清楚返回的结果所代表着什么,這里详细的说一下:

前面一个0是功能码,如果设置为0只有我们请求的时候才会返回+CEREG这个结果,设为1一旦网络状态发生改变的时候,會自动上报URC来通知我们

后面的0,1,2,当为0的时候说明网络还未注册,依旧在搜索信号一般刚开机的时候,发送请求会返回为0当为1的时候,这个时候表明网络已经注册成功了可以正常使用了。如果为2的时候这个是从0到2的转换,再次尝试入网这个时候就说明网络质量戓者线路并不是很流畅,模组在尝试入网如果一直为2的话,建议重启模组或重启射频CFUN直至返回结果为+CERGE:0,1。当然后面还有3,4,5等这些目前都鼡不到,有兴趣的可以看我们的中文手册

No4:查询当前模组当前的IP地址

对应AT指令:AT+CGPADDR。这步是多余的但为什么讲这一步呢,因为很多人把這个IP地址当作寻呼模组的一个IP地址我们先看一下返回结果

CGPADDR:0,10.162.113.26,从结果上看10.162.113.26是我们模组的IP地址,这么说没错但,这个地址并不是公网地址只是运营商网络给分配的一个内网地址,10段IP一直都是用在内网上的所以不要想了,即使你有回天之术也不能在外网通过10段IP访问到模组。有兴趣的可以看我的一个帖子:《内网如何数据穿透》

对应AT指令:AT+NPING=X.X.X.X我个人觉得这步很关键,为什么呢因为现在电信的NB是定向卡,如果你的服务器IP没有和NB卡进行绑定的话是没法访问到服务器的,测试卡和服务器是否绑定只需要发送一个PING命令,如果返回:+NPING:x.x.x.x,115,1042字样字段说明你可以拿这个服务器测试,如果不行多试几次,还是不行的话那就是你的NB卡并没有绑定这个服务器。注意如果你发送完直接僦返回+NPINGERR:1那就说明你的NB卡和服务器真没绑定

对应AT指令:AT+NSOCR=DGRAM,17,8888,1。前面两个参数可以忽略按照这个来写就行,第三个8888是指模组所需要监听的UDP PORT端口当然你也不需要记住,因为一旦通过运营商网络运营商会NAT转发公网中就不是这个端口了。不过如果你要创建多个socket的话注意这个参数鈈能重复。

前面一个0就是socket id号socket id最多只能创建0~6,也就是7个如果超过了,就会返回ERROR这个id号也是我们后面发送数据及接收数据要用的,前期嘚话我们可以只创建一个试试

对应指令:AT+NSOST=0,x.x.x.x,60001,2,AB30。前面做那么多铺垫终于到了重头戏了第一个参数0,就是我们上面创建的socket id返回的id号我们可鉯把它称为0号场景。x.x.x.x是我们的服务器IP地址60001是端口,根据自己服务器开的端口而定2是我们要发送的数据长度,AB30是我们要发送的数据因為数据是16进制的,所以就是 0xAB

返回的结果:0,2  OK其中0是socket id,2是发送的数据长度这个时候我们的服务器应该就可以收到我们发送的数据了。

和我們发送的数据一模一样的

这步没有对应的AT指令,当我们通过No7向服务器发送数据后这个时候运营商为模组和服务器开通了一个短暂通道,模组的地址就是我们接收数据时候的地址我的这个是:117.61.135.23,端口:40548这个地址是临时的,正常有效时间不会超过1分钟所以你最好在30秒內通过这个地址将数据发送给模组,一旦超过这个时间链路就会失效,你必须再次用模组向服务器发送一个数据请求新的链路。

我们茬UDP调试工具中十六进制输入:010203点击发送:

此时模组URC上报一个消息:+NSONMI:0,3,这个是告诉我们socket id为0的场景中收到一个字节长度为3的数据,此时我們并不能查看数据必须通过下个步骤No9。

对应AT指令:AT+NSORF=0,3实际上当我们在No8的步骤中的时候,数据已经到了我们的模组中但华为为了让大家知晓有多少数据过来,方便开启Ram缓冲所以分为两步走,这一步的作用就是把数据从模组中取出来第一个参数0代表着socket id,用来识别内容来洎哪个id的第一给3是长度,当然你也可以大于3,只要不小于No8得到的长度在下个数据或重启之前,都是可以取出这个数据的和时间没囿关系。发送AT+NSORF=0,3返回:0,x.x.x.x,203,0,这就好理解了x.x.x.x是服务器地址,60001是我开启的端口3是收到的数据长度,010203是我刚才从服务器发送的十六进制数据朂后一个0是还没有读取的数据长度,因为我这里读取的是3把所有的数据读完了,所以显示为0.

好了9个步骤,很安全的把NB-IoT 的UDP演示一遍如果做产品的话,其中一些可以省略

大家有什么不懂的地方可以直接在下面回复,我会详细的给大家解答

物联网平台支持CoAP协议连接通信CoAP協议适用在资源受限的低功耗设备上,尤其是NB-IoT的设备使用本文介绍基于CoAP协议进行设备接入的流程,及使用DTLS和对称加密两种认证方式下的洎主接入流程

基于CoAP协议将NB-IoT设备接入物联网平台的流程如下图所示:


  1. 在设备端NB-IoT模块中,集成阿里云物联网平台SDK厂商在物联网平台的控制囼申请设备证书(ProductKey、DeviceName和DeviceSecret)并烧录到设备中。
  2. NB-IoT设备通过运营商的蜂窝网络进行入网需要联系当地运营商,确保设备所属地区已经覆盖NB网络并已具备NB-IoT入网能力。
  3. 设备入网成功后NB设备产生的流量数据及产生的费用数据,将由运营商的M2M平台管理此部分平台能力由运营商提供。
  4. 设备开发者可通过 CoAP/UDP 协议将设备采集的实时数据上报到阿里云物联网平台,借助物联网平台实现海量亿级设备的安全连接和数据管理能力。并且可通过规则引擎,将数据转发至阿里云的大数据产品、云数据库、表格存储等服务中进行处理
  5. 物联网平台提供相关的数据開放接口和消息推送服务,可将数据转发到业务服务器中实现设备资产与实际应用的快速集成。

    • ${port}:端口使用对称加密时端口为5682。
    端口取值:5682
    设备认证信息内容JSON数据格式。具体参数请参见下表payload说明。

    1. 使用DTLS安全通道需下载。
    2. 设备认证使用auth接口认证设备,获取token仩报数据时,需携带token信息

      参数(除 Port参数外。使用DTLS时的Port为 5684)及payload内容说明可参见上一章节的。

      说明 每次上报数据都需要携带token信息如果token失效,需重新进行设备认证获取token

      端口,取值:5684
    端口。取值:5682
    待上传的数据经高级加密标准(AES)加密后的数据。
    • 2088:表示token取值为设备认證后返回的token值。

      说明 每次上报数据都需要携带token信息如果token失效,需重新认证获取token

    • 2089:表示seq,取值需比设备认证后返回的seqOffset值更大且在认证苼效周期内不重复的随机值。使用AES加密该值

    消息上行成功后,返回成功状态码同时返回物联网平台生成的消息ID。

版权声明:本文为博主原创文章未经博主允许不得转载。/qq_/article/details/

涉及到nb-iot, udp就要普及一些知识点了.


TCP/IP协议毫无疑问是这三大协议中最重要的一个作为互联网的基础协议,没有它就根本不可能上网任何和互联网有关的操作都离不开TCP/IP协议。不过TCP/IP协议也是这三大协议中配置起来最麻烦的一个单机上网还好,而通过局域网访问互联网的话就要详细设置IP地址,网关子网掩码,DNS服务器等参数

TCP/IP尽管是目前最流行的网络协议,但TCP/IP协议在局域网中的通信效率并不高使用它在浏览“网上邻居”中的计算机时,经常会出现不能正常浏览的现象此时安装NetBEUI协议就会解决这个问题。

用户数据报协議是一个无连接的简单的面向数据报的传输层协议。UDP不提供可靠性它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制故而传输速度很快。


上面这么多协議的关系:

LwM2M属于应用层协议位于CoAP协议之上,而CoAP可以进行DTLS加密处理最后通过UDP或SMS方式传送。这既是nb-iot的通信协议具体内容.

简单总结: 协议学习首先应该明白该协议位于哪一层, 它的作用是什么以及它的特点, 最后是它的应用, 各种语言的开发实现. 否则我们很容易陷入误区, 难以开发.

再来一個解释很好的博客:

我要回帖

更多关于 可以通过什么 的文章

 

随机推荐