单片机学习小组
直播中

刘敏

7年用户 1173经验值
私信 关注

如何去实现一种基于STM32的NB-IOT电量采集系统设计呢

如何去实现一种基于STM32的NB-IOT电量采集系统设计呢?基于STM32的NB-IOT电量采集系统实现了哪些功能呢?

回帖(1)

江端淳

2022-2-24 14:42:28
实现的功能:


1.测量用电设备的有功功率、电流和电压有效值和用电量;

2.电参数通过nb-iot上传到Onenet,可以在后台实时监控数据;

3.可以通过Onenet后台发送指令控制电参数是否上传(可以拓展继电器控制)。

一、获取M5311模块的IMEI和IMSI


1.把USB转TTL串口模块和M5311模块用杜邦线连接起来

2.把USB-TTL串口模块插到电脑上,电脑打开串口调试助手



如果在串口选择那里没有发现CH340设备,打开电脑设备管理器



3.输入AT指令获取模块的IMEI和IMSI

先发送:AT+SM=LOCK

这个是关闭模块的睡眠模式!!!

然后再发送AT+CGSN=1指令获取IMEI





同理,发送AT指令获取IMSI:



拿到这两个参数之后,接下来就是配置Onenet后台了,也是非常简单几步就可以了!

二、配置Onenet后台


1.打开Onenet官网

2.如果没有账号的,注册账号后登陆,然后进入开发者中心:

3.进入开发者中心后,点击进入NB-IoT物联网套件:

4.点击添加产品


5.点击添加产品后会在左边弹出页面,填写好信息后,点击保存:

6.新建产品后,点击产品的名字进入下图页面后,点击左侧的设备列表

7.进入设备管理后,点击添加设备:



8.填写刚刚串口调试助手获取到的IMEI和IMSI,再点击保存即可:



这个时候我们就可以看到刚刚新建的设备了,显示为离线及订阅失败!接下来通过串口调试助手让设备上线!!!



三、发送AT指令让M5311模块上线


1.返回串口调试助手软件那里,在输入框输入AT指令,然后发送,看看M5311模块是否返回OK。如果没有就按一下RST复位按键即可。

然后再输入框输入AT+CEREG?,用于查询M5311模块的网络状态:



2.在输入框输入:AT+MIPLCREATE,并发送

这个指令是用于创建一个OneNET设备实例的,M5311会反馈创建设备实例的ID,这个过程比较久,大概3S左右,和你的M5311网络有关。



3.创建实例成功后,发送:AT+MIPLADDOBJ=0,3200,1,"1",1,1

这句指令用于添加一个object及其所属的instance,

第一个0是上面反馈的设备实例ID;

第二个3200是object ID;

第三个1是指实例个数;

第四个“1”是实例位图,字符串格式,每一个字符代表一个实例,1表示可用,0表示不可用,说白了就是填“1”就可以啦;

第五个1是属性个数;

第六个1是指操作个数。



4.添加Object成功后,发送:AT+MIPLDISCOVERRSP=0,3200,1,4,"5750"

这个指令用于设置指定object的所属资源列表

第一个0是设备实例ID;

第二个3200是object的ID;

第三个1是保留;

第四个4是指后面字符串的长度;

第五个“5750”是ibject的属性;



5.上面操作完成后,就可以向Onenet平台发起注册请求了

发送:AT+MIPLOPEN=0,3600

这个指令用于向平台发起注册的请求的!

第一个0是设备实例ID;

第二个是本次注册的生命周期,单位为秒,说白了就是在这个时间内,就算我不上传消息,平台也会显示我在线。这里测试使用3600秒,就是一个小时,建议使用的时候改成60秒!不然你这边M5311掉线了,但是平台还是显示在线的。



这个时候进入Onenet的后台就可以看到设备显示在线了!



四、上传测试数据到Onenet平台


1.发送AT+MIPLNOTIFY=0,0,3200,0,5750,1,4,"test",0,0



这条这里的含义:



然后我们就可以在后台看到上传的字符串“test”了







测试阶段到这里就结束了,点击操作里面的写,可以从Onenet平台发送数据到模块,M5311会通过串口打印数据的,平台会显示发送失败,因平台需要收到模块的反馈指令才会认为数据发送成功的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分