找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6649|回复: 8
打印 上一主题 下一主题
收起左侧

基于STM32设计的NB-IOT电量采集系统(超级详细)-1.Onenet平台配置及M5311配置

  [复制链接]
跳转到指定楼层
楼主
ID:147025 发表于 2020-6-3 16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
整个教程的目录:一.Onenet平台配置及M5311配置(本章)
二.STM32连接HLW8032采集电参数
三.整体测试M5311核心板官网资料下载:http://dwz.date/aT8c
HLW8032计量模块资料下载:

链接:https://pan.baidu.com/s/1gN1PVEEKmINgDYsWVlPCTQ 提取码:i59p
关于HLW8032模块的操作可以参看这篇文章:
https://blog.csdn.net/qishi3250/article/details/103546632

实现的功能:1.测量用电设备的有功功率、电流和电压有效值和用电量;
2.电参数通过nb-iot上传到Onenet,可以在后台实时监控数据;
3.可以通过Onenet后台发送指令控制电参数是否上传(可以拓展继电器控制)。

需要的材料:
1.一个STM32芯片,我这里用的是正点原子的mini开发板,型号:STM32F103RCT6

http://dwz.date/aTyF  刚刚看了一下,竟然降价了。131元,大学我买的时候168块,亏了一个亿。。。。

2.ST-Link下载器,主要用来给STM32单片机下载程序的,有其他的仿真下载器也是可以的。当然,用串口也是可以下载的,就是比较麻烦,我比较喜欢用仿真器下载,一键完事!
http://dwz.date/aTzr

3.USB-TTL串口模块,这个是用来调试M5311模块的,可以不需要,因为mini开发板板载USB转TTL模块,你可以拔掉原有的短路帽来用。不过玩单片机的话,最好是有一个这个模块,超级方便!
http://dwz.date/aTza

4.中移的M5311核心板,建议用哪个胶棒天线的,比较方便!
http://dwz.date/aTzf

5.HLW8032计量模块,用于采集电参数的,不需要进行校准,精度2%。也可以自己再进行校准一次,精度可达0.5%,需要专门设备进行校准,我自己用2%的精度足够了
http://dwz.date/aTzp

6.杜邦线12根

一、获取M5311模块的IMEI和IMSI1.把USB转TTL串口模块和M5311模块用杜邦线连接起来

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

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


CH340驱动下载地址:http://pan.baidu.com/s/1gfreXbH

3.输入AT指令获取模块的IMEI和IMSI
先发送:AT+SM=LOCK
这个是关闭模块的睡眠模式!!!
然后再发送AT+CGSN=1指令获取IMEI


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

拿到这两个参数之后,接下来就是配置Onenet后台了,也是非常简单几步就可以了!
二、配置Onenet后台
1.打开Onenet官网:https://open.iot.10086.cn/
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会通过串口打印数据的,平台会显示发送失败,因平台需要收到模块的反馈指令才会认为数据发送成功的。

下一遍就是操作STM32开发板采集电参数!!!

资料下载: HLW8032参考设计资料.7z (8.6 MB, 下载次数: 36)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:791593 发表于 2020-6-28 15:20 | 只看该作者
我们有NBIOT真正透传模块,不需要AT指令配置,唤醒直接透传,不需要外接MCU,不需要增加成本
回复

使用道具 举报

板凳
ID:275041 发表于 2020-6-30 09:11 | 只看该作者
正在学着用这个,准备用SIM868,谢谢了
回复

使用道具 举报

地板
ID:138097 发表于 2020-7-27 14:27 | 只看该作者
问个问题,我看M5311的串口是1.8V,直接连到STM32的串口的?
回复

使用道具 举报

5#
ID:384332 发表于 2020-7-27 16:47 | 只看该作者

正在学着用这个,准备用SIM868,谢谢了
回复

使用道具 举报

6#
ID:601833 发表于 2020-8-3 13:44 | 只看该作者
多谢楼主等后续更新
回复

使用道具 举报

7#
ID:147025 发表于 2020-9-23 22:10 | 只看该作者
whx.000 发表于 2020-7-27 14:27
问个问题,我看M5311的串口是1.8V,直接连到STM32的串口的?

不是直接接的哈,我买的M5311开发板上面有电平转换的了
回复

使用道具 举报

8#
ID:891119 发表于 2021-3-19 14:26 | 只看该作者
楼主你好:我不用mini板而用stm32f103c8t6的板子烧程序可以不!
回复

使用道具 举报

9#
ID:147025 发表于 2021-4-26 20:55 | 只看该作者
13276996958 发表于 2021-3-19 14:26
楼主你好:我不用mini板而用stm32f103c8t6的板子烧程序可以不!

可以的,你修改一下启动文件及工程配置就OK了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表