发送端软件应用了防脉冲干扰平均滤波法[9]对A/D采样数据作预处理 。其原理是:连续采样K次,然后对这K个采样数据进行比较,去除其中的最大值和最小值,计算剩下的K-2个数据的算术平均值作为采样有效值 。该方法融合了中位值滤波法和算术平均滤波法的优点,既可去掉脉动性质的干扰,又可消除偶然出现的脉冲性干扰引起的采样值偏差 。为加快计算速度,设计数字滤波器时K=10 。
为了提高系统的实时性,软件中采用分段线性插值法[10-11]作标度变换 。过程如下:(1)按传感器TGS2620的标定曲线,将该曲线进行非等距分段(曲率变化大(小)时,样点距离取小(大)),选取各分段点坐标(VRLi,Ci)(i=0,1,…,M),其中:VRLi和Ci分别为不同样点时传感器输出电压值和对应浓度值;(2)计算相邻样点间的拟合直线斜率ki=(Ci 1-Ci)/(VRLi 1-VRLi)(i=0,1,…,M-1);(3)将M组坐标数据(VRLi,Ci)和对应斜率ki存储于单片机片内EEPROM的第二扇区(地址为2200H~23FFH)中;(4)每采集到一个电压值VRL即查询EEPROM表,找出VRL所在区间(VRLi,Ci)~(VRLi 1,Ci 1),取出该区间(VRLi,Ci)和ki数据,用线性插值公式C=Ci ki(VRL-VRLi)计算出当前酒精浓度值C 。
将采集到的N个样本数据(xi,yi)代入式(5)中即得到系数a、b的值,并存入单片机的内存单元中 。系统测量时,将标度变换后的酒精浓度测量值x代入误差校正方程y=ax b中,即可得到校正后的酒精浓度值y,从而达到消除系统误差的目的 。
3.1.2 接收端软件设计
接收端单片机的软件流程如图9所示 。接收端开机上电后,程序初始化设置nRF24L01和串口,然后进入监控场景 。当nRF24L01接收到一帧完整的酒精浓度数据后,立即通过串口发送到上位机 。接收端单片机与PC之间数据交互采用异步通信模式 。独立波特率,串口协议设置为:波特率9 600 b/s,8 bit数据位,1 bit停止位,无校验位 。
3.2 上位机软件设计
上位机用户界面采用通用的基于对象的程序设计语言Microsoft Visual Basic 6.0开发,实现酒精浓度数据的接收、显示和保存 。软件用到了串行通信控件MSComm 。MSComm控件是Microsoft公司提供的Windows下串行通信编程的ActiveX控件,通过对此控件的属性和事件进行相应的编程操作,即可轻松地实现串行通信 。串口通信协议与接收端完全相同 。上位机软件的程序流程如图10所示 。
4 系统测试
为了检验本系统的测量性能,采用无水乙醇和纯净水按照一定体积比配制标准的酒精溶液作为被测量对象,测试结果如表1所示 。其中:单位ppm=μg/mL表示1 mL酒精溶液中含酒精的质量 。由测量结果可以看出,测试数据覆盖传感器的量程,测试最大相对误差小于±2%,优于同类设计产品[3-5] 。
为了获得本仪器发送端与接收端的最大无错误率的通信距离,在室外进行了nRF24L01随距离的错误率(临界区间)测试实验,结果如表2所示 。其中,每米的错误率是10次试验后计算得到的平均值 。可见,nRF24L01的传输距离可达到100 m,略高于RFID、ZIGBEE和蓝牙等无线通信技术[12] 。
5 主要技术指标
本仪器主要技术指标如下:(1)测量范围:50~5 000 ppm;(2)灵敏度(传感器电阻变化率):0.3~0.5;(3)测量精度:≤±2%;(4)传输距离:≤100 m;(5)工作电源:DC 5 V;(6)工作环境温度:-40 ℃~ 70 ℃;(7)工作环境相对湿度:0~85%RH 。
推荐阅读
- 外置无线网卡能不能增加信号强度
- 酒精含量5%是几度,5g的盐放在95的水中含盐量是多少
- 外国人的格言
- 知否知否应是绿肥红瘦 知否知否多少集
- 完整榴莲怎么保存
- 碗可以用白醋消毒,水果表面可以用75%酒精消毒
- 用含有酒精的化妆水怎么样
- 东华帝君的另一种柔情 东华凤九床文
- 酒精在什么条件下可燃,酒精是容易什么和什么的液体
- 无线蓝牙耳机怎么用