一、产品介绍/背景
近期学习了嘉立创开源的《物联网NBIoT定位器》项目,对移远通信模块进行了调试,并将结果上传到ONENET云平台;然而实际应用场景中不仅需要定位模块,还需要对传感器输出的信号进行采集,因此项目基于STM32L+BC20+AD7190模块,将采集的传感器数据上传到云平台。
二、应用场景
1、微弱电压信号采集;
2、定位器模块;(位置信息上报)
三、产品概述
本模块软硬件实现功能为:使用STM32L431驱动AD7190芯片,实现电压信号的AD转换,后续通过移远通信的BC20模块,将mcu采集的数据发动到ONENET云平台;本项目开放文件有(原理图PDF,GERBER,源代码等),以便各位在此基础上进行改进。
四、产品参数
- 电路板采用4层板:尺寸为:90*80mm,采用单面布局,具体如下图:
- 电路板采用AD7190作为AD转换芯片,主要的参数有:AD7190配置为两路差分输入或四路伪差分输入,是一款适合高精密测量应用的低噪声完整模拟前端,集成一个低噪声、24位Σ-Δ型模数转换器(ADC) ,能够直接输入小信号 ;采用锂电池供电,配备有升压电路以及电源管理模块;
- 模块输入电源电压为 5V,能够测量的电压范围为 -3-3V;
- 具备电源指示灯和充电指示灯,展示设备状态;

五、使用说明
数据上传到ONENET云平台:(本项目提供的KEIL源码参考)
- 依据【物联网NBioT定位器】项目教程,获取BC20模组的产品序列号和imsi号码,并且在云平台上添加设备,具体如下图所示:
- keil程序代码中建立NB_NOTIFY5700_CMD[60]="AT+MIPLNOTIFY=0,"数组;
- 提取ad7190采集电压的整数位:NB_NOTIFY5700_CMD[33+NB_OB3320_count]=Ad7190_Value[0]/1000; 小数位:NB_NOTIFY5700_CMD[35+NB_OB3320_count]=(int)Ad7190_Value[0]%1000/100;

使用步骤
1、安装好电源、天线以及物联网卡后,打开电路板的电源模块,查看电源指示灯状态;
2、查询物联网模块的信号强度,具体命令为:AT+CSQ;
3、获取BC20模组的产品序列号及IMSI号码,后续在ONENET云平台上注册产品;具体命令分别为:AT+CGSN=1和AT+CIMI;
4、在物联网平台接收上传数据(需要进行实例更新)。
5、部分用户在使用BC20模组过程不能收到[removed]回显,解决方案为:onenet云平台进行刷新;
以上只是是步骤简约的说明,详细使用教程请看附件的“基于ONENET平台的电压信号采集板-教程说明.rar”
六、备注
- 本模块为软硬结合,程序文件详见硬件源码附件
- 产品使用Keil uVision V5开发,进行源码的修改时请确保软件上的兼容性
- 本模块电路使用altium designer绘制
- 本模块的小批量(10PCS以内)成本大概在160元左右,其中STM32L431主控、BC20模块、AD7190占主要部分。
七、演示视频
1.AD7190测量结果验证视频:对电路板的性能进行了测试,过程中把AD7190的信号线进行短接,模块具体的采样结果为-0.0013499mV,具体如图所示,从测试结果可以看出,模块的零偏误差小于2uv,外界环境引起的噪声信号小于1uv,该电路板具有较好的稳定性。

2.BC20通信模块验证视频