查看: 70|回复: 0

[经验] 基于WT901传感器及NB-IOT无线技术开发的一款物体倾倒监测设备

[复制链接]

主题

好友

226

积分

秀才

该用户从未签到

发表于 5 天前 |显示全部楼层
基于维特智能WT901传感器
NB-IOT无线技术
开发的一款物体倾倒监测设备

一、 设备功能描述
该设备主要用于物体倾倒时的状态检测,通过维特智能【WT901】定时检测角度状态来判断物体是否倾倒;采用【NB-IOT】技术,可在服务端远程监控【WT901】当前的角度情况,在尽可能快的时间内了解物体的倾倒状态。

二、 设备主要特点
1. 物体当前状态监测
2. 远程监控
3. 低功耗,可长时间测量,长达5年的工作寿命
4. 根据使用情况,可设置定时检测物体当前角度情况
5. 根据使用情况,可设置定时上传数据

三、 设备主要部分介绍
该设备主要分为3大部分:
NB-IOT(某宝上搜索,可找到相关产品)
WT901姿态传感器(该产品采购于维特智能公司)
底板:处理器STM32L0(低功耗)、电源、其他外设

四、 WT901】数据采集
WT901】采用串口主动输出,所以STM32L0预留一个串口作为数据采集接口,以下为STM32L0采集【WT901】数据的示例代码:

基于WT901传感器
NB-IOT无线技术
开发的一款物体倾倒监测设备
一、 设备功能描述
该设备主要用于物体倾倒时的状态检测,通过【WT901】定时检测角度状态来判断物体是否倾倒;采用【NB-IOT】技术,可在服务端远程监控【WT901】当前的角度情况,在尽可能快的时间内了解物体的倾倒状态。


二、 设备主要特点
1. 物体当前状态监测
2. 远程监控
3. 低功耗,可长时间测量,长达5年的工作寿命
4. 根据使用情况,可设置定时检测物体当前角度情况
5. 根据使用情况,可设置定时上传数据


三、 设备主要部分介绍
该设备主要分为3大部分:
NB-IOT(某宝上搜索,可找到相关产品)
WT901姿态传感器(该产品采购于维特智能公司)
底板:处理器STM32L0(低功耗)、电源、其他外设


四、 WT901】数据采集
WT901】采用串口主动输出,所以STM32L0预留一个串口作为数据采集接口,以下为STM32L0采集【WT901】数据的示例代码:
[size=0.83em]
图片1.png (32.97 KB, 下载次数: 2)
接收WT901数据代码
[color=rgb(153, 153, 153) !important]7 天前 上传





file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7792\wps1.jpg
void CopeSerial1Data(unsigned char ucData)函数在串口中断调用,串口每接收一次数据,进一次接收中断,接收中断中,调用一次这个函数,函数里面有个全局Buff(ucRxBuffer),用来缓存每次进来的数据,知道满足【WT901】的协议条件,即可清空计数变量ucRxCnt,重新计数。

五、 NB-IOT】连接服务器及数据传输
NB-IOT】连接服务器流程(具体可参考使用说明书,以下所有指令后面携带换行符):
1.【NB-IOT】模组重启:拉高【NB-IOT】的RESET脚,500ms后,拉低RESET脚,实现重启模组;
2.等待【NB-IOT】模组初始化,等接收到模组的最后一行初始化指令后,表示初始化完成;
3.初始化完成后,查询【NB-IOT】的网络附着状态,发送指令“AT+CEREG?”,这一步是用来检测网络状态的,最好不要省略,当返回“+CEREG:0,1”表示网络附着成功,否则继续查询;
4.网络附着成功后,发送指令“AT+NSOCR="STREAM",6,0,1”, 创建本地TCP监听端口,开启数据到达自动上报;
5.接着发送指令“AT+NSOCO=0,183.230.40.158,5021”,连接服务器,当返回“CONNECT OK”,表示连接服务器成功;
6.发送指令“AT+NSOCFG=0,0,0”,进行数据类型设置,这是需要注意的地方,默认的数据类型有点复杂,最好发送本条指令;
7.接着可往服务器发送数据,具体参考说明书。

六、 角度比较
    角度比较,采用的方式是STM32L0具有的RTC定时唤醒,上次唤醒与这次唤醒的角度进行比较,超过设置的度数, 则把报警状态开起来,可选择标志位置1,然后打包数据,上传至服务器。
    如何记住上次的角度:这里采用BKP的方式,BKP具有休眠后,数据保存的功能,上一次休眠时,保存角度,下次唤醒时,读取BKP,然后进行比较判断。以下为BKP相关代码:


以上为BKP的代码

七、 低功耗讲解
1.对STM32L0设置低功耗模式:


file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7792\wps3.jpg
    注意点: STM32L0芯片官方手册介绍,芯片在低功耗情况下,功耗是可以降到1uA以下的,但真正开发后,会发现功耗会达到很高,甚至几个mA的等级,因为你设计的PCB板子上,有其它的外部设备,比如【WT901】、【NB-IOT】等等,所以必须配置单片机的IO管脚,可用万用表测试一下,当某个接外部设备的IO管脚浮空时,该管脚的电压是多少,如果处于高电平,则配置为上拉,如果低电平则配置为下拉。这样可以大幅度降低功耗。
2.对STM32L0以外的外围电路设置低功耗
    对于除STM32L0以外的其他外部设备设置低功耗,可采用IO口驱动Mos管管理电源的方式,比如【WT901】,这样可以把【WT901】的电源彻底关闭,不用去操作各种配置。这是一种很简单的方式,也可以使用多个LDO去控制。如果不打算使用这两种方法,也可以对【WT901】发送低功耗指令,但这样并不能完全把功耗降到最低。




回复

使用道具 举报

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

关闭

站长推荐上一条 /2 下一条

手机版|电路城

GMT+8, 2019-8-18 20:50 , Processed in 0.111557 second(s), 13 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz!

返回顶部