中国移动M5310 nbiot开发板连接onenet平台全过程

中国移动M5310 nbiot开发板连接onenet平台全过程

详细介绍一下中移m5310 nbiot开发板对接onenet云平台的全过程,简单实现了温湿度的采集,及数据上报与可视化显示。

一、M5310 nbiot开发板

1、CM1719_v2.1开发板

我在这里使用的是的CM1719_v2.1板子,介绍如下:

开发板简介
OneNET NB-IoT开发板v2.1采用高性能ARM Cortex-M3 32位微处理器STM32F103RET6,搭载中移物联网公司自主研发的M5310 NB模组(内嵌OneNET接入协议:CoAP+LwM2M协议),外围配备温湿度传感器、光照强度、气压、三轴加速度、蜂鸣器及按键等丰富的外设资源,并将STM32F103RET6的引脚全部引出,方便开发者和用户进行二次开发,由于使用了内置OneNET协议的NB模组M5310,用户使用简单AT命令即可完成开发板和OneNET的互联互通,硬件实物图如图所示。
在这里插入图片描述

2、需要准备的

必须要准备的配件:
(1)与onenet平台连接——必备中国移动的NB卡(插在板子后面的卡槽),注意不是普通的电话卡,是专门的nb卡。淘宝上有卖,几块钱可以买到一年套餐的。(卡欠费不可以用&&卡在其他设备激活过会被锁定)
(2)stlink下载器——默认是带着的,不知道现在买还送不送
在这里插入图片描述
(3)USB-TTL串口——用来与上位机调试通信的。注意他和stlink长的很想,不要搞混了
在这里插入图片描述
也可以用上面那个没包装的模块,一个道理。
(4)自带的那根usb—type的线——他好像只能用来接收板子返回的数据,但usb-ttl的串口应该收发都可以的。

3、如何连接

如果不知道如何用杜邦线连接,可以看看。
(1)板子就不用说了,连上电源,插上卡就可以。
(2)下载器的话,连接板子的J6,也就是这里,按照上面标识的,一一对应连接即可。
在这里插入图片描述
(3)usb-ttl的连接
连接板子的NB通信串口3,也就是这里,看不懂的可以按照颜色连接。板子因为有独立电源,所以就不需要连接模块的3.3v了。
在这里插入图片描述
(4)usb直接连接就行了

4、注意事项

(1)使用过程中为了实现了MCU和NB模组的串口通信,需要将J12引脚对和J14引脚对分别用跳帽短接;为了实现NB模组的自上电,需要将J10引脚对短接(也就是在上电自行传输数据时,需要这样短接)
在这里插入图片描述
(2)如果想要通过PC机调试M5310,则需要将M5310的串口单独接到上位机上,按照我上面的连接就可以。

二、通过AT指令调试设备

1、在onenet平台创建产品、添加设备

(1)登录 https://open.iot.10086.cn/
(2)点击控制台,这里我使用的是旧版(新旧数据不通的),我不知道为啥新版我调试不好,建议还是用旧版吧
(3)因为我们用的移动自家的板子,所以直接选择产品,nbiot套件。
在这里插入图片描述
(4)点击添加产品,产品信息随便填,下面的选择nbiot,LWM2M协议,移动
在这里插入图片描述
(5)创建了产品之后,我们还要创建设备。设备名称自己起。
IMEI:可以查看M5310模块,上面有标,也可以通过下面AT指令查询
IMSI:需要通过下面的AT指令来查(可以看了后面的再来创建设备)
自动订阅:选择开启
上面的两个码,决定了能否成功的连接onenet!!!
在这里插入图片描述
(6)至此,创建成功
在这里插入图片描述

2、通过AT指令调试设备

(1)首先试用usb-ttl模块连接到上位机,打开串口调试助手,设置波特率(115200还是9600自己看,没乱码就行)
在这里插入图片描述
(2)连接好,上电后,会输出m5310的型号与ok,说明连接成功
在这里插入图片描述
(3)初始化,下面的都没有问题说明成功
AT:模块正常开机启动测试,正常返回OK。
AT+CIMI:查询NBcard卡号
AT+CSQ:查询信号质量,返回“+CSQ:信号,99”,如“+CSQ:14,99”;
注意:若显示“99,99”,则表示无信号,可能为卡被异常锁定或天线等原因。越大说明信号越好
AT+CEREG? :判断PS域附着状态,返回+CEREG:0,1
注意:该模组不支持常规电话通讯卡,电话卡返回”+CEREG:0,2“,后续是无法连上OneNet的,只有正常NB卡才能正确返回并通信。
AT+CGATT?:查询模组PS附着状态,正常返回+CGATT:1
AT+CIMI:识别 SIM 卡的IMSI(这里可以获得上面需要的imsi)
AT+CSCON=1 //打开信号提示自动上报
AT+CEREG=1 //打开注册信息自动上报
(4)生成模组侧设备注册码,用于告诉onenet你是谁你要连接哪个设备
模组侧设备创建使用 AT+MIPLCONF 指令,其使用格式为:
AT+MIPLCONF=,,,
其中,
指示部分总数据长度,按照ASCII计数;
具体的设备配置数据,满足配置结构体规范;
配置数据分片参数;
配置数据流结束符。
使用OneNET平台的专用配置工具OneNET_config_v1.2.exe进行注册码生成,用DOS命令串口打开OneNET_config_v1.2.exe工具并按如下格式填写数据:
在这里插入图片描述
按回车键生成对应的数据:
在这里插入图片描述
(5)将生成的注册码发送到M5310:
AT+MIPLCONF=71,10000000B80B00001900636F61703A2F2F3138332E3233302E34302E33393A353638331F003836323031383130323931353232303B343630303430323336373039313232050501,1,1
0
OK
0为
(6)订阅Object 组 配置
命令格式:AT+MIPLADDOBJ=ref,objectid,instanceid
objectid代表的类型可参考IPSO 资源模型http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html
如发送:AT+MIPLADDOBJ=0,3303,0(温湿度传感器)
(7)模组侧发起登录
AT+MIPLOPEN=0,15
上述指令中,30 代表登录超时时间;如果超过该时间,模组还未接收到平台的登录响应,模组则会上报登录失败的通知。

登录结果上报:
模组上报登录请求,服务器收到登录请求数据之后,会根据数据内容,返回本次登录结果;如果登录失败,或者登录超时,模组都会上报登录失败的响应。
登录成功上报打印如下:
+MIPLOPEN:0,1
登录失败上报打印如下:
+MIPLOPEN:0,0
需要注意的是, 如果在注册码中的 debug参数设置为非0,则在登录过程中,除了上报登录信息之外,还会应显示对应debug 等级的数据内容。
登录成功后,onenet会显示在线:
在这里插入图片描述
(8)、向OneNET平台发送数据
在这里插入图片描述
这里使用不带ackid方法上报:
AT+MIPLNOTIFY=0,3303,0,5700,4,“24.5”
OK
至此,onenet平台即可收到数据(但这个数据是自行指定的,是假的)

3、AT命令总结

1、上电检查流程
(1) AT //判断模组是否上电开机成功
(2) AT+CSQ //信号质量检查
(3) AT+CEREG? //判断 PS 域附着状态,标识位返回 1 或 5 表示附着正常
(4) AT+CGATT? //检查模组 PS 附着状态
2、模组侧设备创建及资源订阅,登录流程
(1) AT+MIPLCONF=72,1003000………. 3033393639050501,1,1//设置模组侧设备注册码
(2) AT+MIPLADDOBJ=0,3200,0 //订阅 Object 3200 资源设置
(3) AT+MIPLNOTIFY=0,3200,0,5505,6," E309C82FE6 ",1 //订阅 Resource 5500 资源设置
(4) AT+MIPLOPEN=0,30 //设备登录到 OneNET 平台

3、OneNET 数据收发流程
(1) AT+MIPLNOTIFY=0,3200,0,5505,6," E309C82FE6 “,1 //数据上传
(2) AT+MIPLREAD=0,60204,3200,0,5505,” E309C82FE6 ",1 //Read 操作回复流程
(3) AT+MIPLWRITE=0,62069,1 //Write 操作回复流程
(4) AT+MIPLEXECUTE=0,46081,1 //Execute 操作回复流程

4、模组侧设备注销流程
(1) AT+MIPLCLOSE=0 //登录注销流程
(2) AT+MIPLDELOBJ=0,3200,0 //模组侧订阅资源列表释放
(3) AT+MIPLDEL=0 //模组侧通信实例删除

三、采集数据并上传

(1)这里用到这个例程,sp3说明适用于sp3的m5310固件,如何升级,文档中有。
在这里插入图片描述
(2)keil导入项目,设置一下target,debug识别到stlink说明正常
在这里插入图片描述
修改示例中的参数,这里的conf是用程序生成的,和用config.exe生成的一样
在这里插入图片描述
(3)烧录之后,上电,打开串口,启动成功,这时平台显示在线,并且可以接收到数据,说明成功!
在这里插入图片描述

四、总结

自己摸索了几天,遇到了挺多的问题,最后也解决了,在这过程中参考了一些教程,如下:
(1)onenet官方教程
(2)csdn博客1
(3)csdn博客2
(4)csdn博客3

版权声明:本文为CSDN博主「无问西东_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44288506/article/details/122115773

生成海报
点赞 0

无问西东_

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

实验一 stm32F407VETx点亮流水灯

二、设计指标 使电路板上的8个LED轮流点亮,并按键控制点亮速度。 三、操作 1、CubeMX操作 1.1依据开发板LED引脚设置CubeMX中8个LED的引脚为GPIO_Output模式, 2、按键设置

基于单片机的智能家居控制系统

设计简介: 本设计是基于单片机的智能家居控制系统,主要实现以下功能: 可通过DS18B20实时测量环境温度温度具有上下限,自动模式下温度超出限值,GMS发送短信温度上下限

什么是串口通讯

串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。 典型的串口通信使用3根线完成,分别是地线