伍 薇,苏文兴,刘倩希
(玉林师范学校 计算机科学与工程学院,广西 玉林 537000)
我国是农业大国,由水利部近三十年来发布的水资源公报可知,每年农业用水量占全国总用水量的60%左右[1]。从数据可以看出,农业用水方式还没有得到明显的优化。传统的接触式测距受外在因素影响较大,测距时要与被测物相接触,增大了测量误差[2-5]。本文就此问题设计了一款使用便捷且测距精度更高的非接触式农田水位测量系统,通过超声波实现非接触式测距[6-8],并对超声波在空气中传播导致的误差进行温度补偿,以提高测距精度。
本系统设计的基本原理如图1所示,总体框图如图2所示。
图1 超声波农田水位测量基本原理
图2 系统总体框图
本系统需要进行两次定点测量,第一次测量超声波传感器距地面总高度h,第二次测量超声波传感器到农田水面之间的距离s。
首先对h的测量,在农田干旱的情况下进行,超声波传感器向地面定向发射超声波,入射波到达农田地面后立即被反射,反射波被超声波接收器接收,从超声波发射到接收的时间间隔为Δt,利用时间渡越法就可以算出h:
式中,v为超声波传播速度。
再按下测量键,将h写入E2PROM中,超声波开始自动测量农田水位d:
按下测量键,代表已经确定好h,开始进行s的测量,与测量h一样。测出s后,立即进行处理并得到农田水位。
最后可通过LCD屏实时查看农田水位情况,如果水位超过指定范围,利用蜂鸣器和LED进行报警提示,以确保农田水位保持在一个适宜位置。
农田水位测量系统的电路原理如图3所示。
图3 硬件电路设计原理
以低功率、高性能的STC89C52为主控芯片,采用频率为12 MHz的高精度晶振组成晶振电路,由K1按钮控制复位形成复位电路,供电模块采用5 V直流电源,以上即为最小系统的组成。
2.2.1 超声波模块电路
HC_SR04超声波模块的内部自带一个40 kHz的电压脉冲信号,其工作电压为5 V,测量精度可达0.3 cm,其工作时序如图4所示。工作方式是首先保持触发控制信号Trig引脚为低电平,单片机P2.0引脚向Trig脚输出一个持续10 μs以上的高电平,超声波模块被启动后会连续发出8个40 kHz的脉冲,从而发出超声波信号;信号发射完成后,回响信号Echo脚将发出持续的高电平,当模块接收到反射回的超声波时,该脚位被置地,Echo脚立即变为低电平,此时单片机处理该Echo的高电平持续时间即式(1)中的Δt。
图4 HC_SR04模块工作时序
2.2.2 温度检测电路
本设计中通过DS18B20温度传感器[9]对系统进行温度补偿,其不需要进行A/D转化,能够提高农田水位测量的实时性。温度传感器的电压范围为3.0~5.5 V,测量范围为-55~125 ℃,满足农田环境温度测量要求。单总线通信接口(DQ)与单片机的引脚P1.0连接就可以实现互相通信,大大减小了外界对系统的干扰。
本次设计采用五个独立式按键实现对农田安全水位值进行调整,五个按键分为设置/退出键、设置加键、设置减键、复位键、测量键。按下设置键后,进入最高、最低水位阈值进行界面设定,然后通过设置加减按键进行调整;按下复位键,本系统进行初始化到空状态;按下测量键,表示已经测量好了超声波发射器到农田地面之间的距离,开始实时测量农田水位。
数据显示模块由LCD液晶显示和声光报警两部分组成。
LCD液晶显示部分选用了体积小、低功耗的1602液晶屏,其主要原理是用电流刺激液晶分子产生点、线、面并配合背部的灯管来形成画面的,按照显示字符的行或点阵的行、列来命名;其主要显示内容为设定的农田水位阈值、农田水位和当前环境温度。
声光报警部分由蜂鸣器与LED组成,当测量水位不在阈值范围内时,会听到报警声并可以看到LED亮起[10];否则,无任何情况。
为提高测距精度和稳定性,本系统在设计中添加了温度补偿算法,利用数字温度传感器对超声波模块进行温度补偿,单片机通过温度传感器实时读取当前环境温度的数值,使得测距数据更加精确。超声波在空气中传播时可以看作是在理想状态下的小振幅声波,对超声波传播速度进行温度补偿。
式中:B为气体的弹性模量;ρ为气体的密度,当温度为0 ℃时,空气密度为1.293 kg/m3。
由理想气体压缩特性可得:
式中:γ为气体的比热容,空气的比热容为1.402;P为气体压强,标准大气压为1.013×105Pa。
由理想的气体状态方程可得:
式中:V为气体体积;m为气体质量;M为气体的物质的量,空气为28.8×10-3kg/mol;R为摩尔气体常数,为8.134 kg/mol;T为气体温度。
结合式(2)、(3)可得:
式中,V0为0 ℃下空气中的声速,为331.6 m/s。
由此可得,传播介质温度与超声波的声速呈非线性关系,进行温度补偿是必不可少的。利用温度补偿算法即可得到超声波的波速。
本系统采用运行速度极快、存储量小的C语言编写,能够使超声波测距更加精确、实时性更强。在单片机内部设置最高/最低水位阈值,当测得的水位高于或低于阈值时,系统进行声光报警提示,根据水位的高低报警频率也会有所不同,直到水位恢复到最佳状态时,才退出声光提示。农田水位系统的整体软件设计如图5所示。
图5 农田水位系统的整体软件设计
以一个高30 cm的水池作为农田,并用高精度测量工具在水池内以5 cm为单位进行标记,选取标准大气温度(20 ℃)和常温(25 ℃)作为环境温度因变量,控制好环境温度,使其温度分别稳定在(20±0.5)℃和(25±0.5)℃,测试对象分别为未加温度补偿仪器(即市面上常见仪器)和本系统测距仪器,进行测距对比实验,并在同一水位进行5次测量取其平均值进行记录。将记录数据绘制成折线图,如图6所示。
图6 测试数据分析
按照平均相对误差公式计算两种温度下的平均相对误差,数据见表1所列。
表1 测量水位平均相对误差
根据图6与表1可得,采用本设计系统进行水位测量时,相较于未加温度补偿的设备,优势在于误差小、稳定性高,其在20 ℃环境下平均相对误差从5.45降低到2.71,在25 ℃环境下其温度补偿水位测量精度大大优于未加温度补偿的水位测量。进行多次不同温度环境下的测量后发现,未加温度补偿水位测量时波速是在标准大气温度下(20 ℃)确定的,所以环境温度越偏离20 ℃,误差就会越大;而温度补偿水位测量时可以发现其平均相对误差会在0~5%区间内,大大保证了数据的准确性。
超声波发射器发出的超声波呈喇叭状扩散传播,会因反射物的不同而产生误差。主要使用场景为农田,其空气湿度的不同也会使测距存在一定的误差。
本文根据超声波测距原理,结合STC89C52单片机设计一种基于温度补偿算法的超声波农田水位测量系统,添加温度监测模块有效地降低了超声波水位测量的误差,使得超声波的稳定性和精确度得到了很大的提高。