基于热脉冲精密土壤水分测试仪的研究与设计
2022-04-12魏丽君
魏丽君
(湖南铁道职业技术学院,湖南 株洲 412001)
0 引言
中国是农业大国,拥有广阔的适种土地,土壤的水分是农作物生长的重要供给,因此土壤水分的准确测量对于农作物的生长至关重要,水分过少会导致土地硬化,农作物不能充分吸收水分和养分,影响作物生长;水分含量过多时,会导致水分渗透,肥料流失,还可能对土壤造成污染。我国的农业用水的利用率不高,因此,开发高精密的土壤水分测试仪能有效的解决土壤水分参数的测量,指导农作物生长,实施合理灌溉,提高农作物的产量,同时能缓解因农业用水带来的淡水资源危机。
常用的土壤含水率测量方法主要为传统测量方法和现代测量方法:传统方式主要通过物理或化学方法将土壤中的水分从土壤样本中分离,进而确定其含量的方法,比如烘干法、射线法、阻抗法等;现代测量方法主要借助试验仪,利用土壤水分的电化学特性进行土壤含水率的测定,比如时域反射仪等,但物理或化学方法测试复杂,费时且不宜现场测量,而时域反射仪等价格昂贵,因此,该设计拟基于理想半无限空间热脉冲传导理论,设计一款高精密的土壤体积含水量测量装置。
1 半无限空间热脉冲传导理论
均质各向同性半无限空间匀速热传导基本方程(Carslaw & Jaeger 1959, p13)如下:
(1)
其中:α是热扩散系数(m2/s);U是流速(m/s)。当半无限空间一无限长线热源加热有限时间,即产生一热脉冲,其理论解如下(Carslaw & Jaeger 1959, p258):
(2)
其中:Q是热量(m2℃),Q=q/ρc;q输入线强度(J/m);ρc是体积比容。当传感器距离热源位置rm温度升到最大ΔTm时,对公式(2)求导数可得:
(3)
Campbell等(1991)给出土的体积比容ρc与最大温升有关,即:
(4)
其中:ρw是水的密度;cw是水的比热;θ是土的体积含水量;ρb是土的总密度;cm是土颗粒的比热。给定热脉冲q=I2Rt;I是加热电流;R是加热模块电阻;t是加热时间,实测最大温升ΔTm和传感器距离热源的位置rm之后,就公式(4)可以计算出土的体积含水量θ,如公式(5)所示。
(5)
2 系统硬件设计
该设计采用STM32作为硬件平台,硬件电路主要包含温湿度传感器模块、A/D转换模块、PTC加热模块、液晶显示模块、通讯模块、按键输入模块以及声光报警模块等。温湿度传感器模块采集信号后,经过AD转换,送给STM32进行处理。PTC加热模块与土壤测试模块在一起,测试到的信号通过串口进行通信。辅助有显示和报警模块,具体的硬件设计框图如图1所示。
图1 系统硬件框图
2.1 HS3001温湿度传感器模块设计
该设计使用的HS3001实物和电路设计原理图如图2所示。该传感器具有如下特点:相对湿度测量精度为±1.5%RH,正常工作范围为10~90%RH,14位转换精度,温度测量为±0.2 ℃, 正常工作范围为-10~+80 ℃,14位转换精度,宽工作电压为2.3~5.5 V,低能耗,标准IIC数据接口。
图2 HS3001传感器实物和电路设计图
2.2 PTC加热模块与土壤测试模块设计
设计采用的加热传感器模块如图3所示。它具有体积小,电阻值10 Ω,最大恒温50 ℃。将2个HS3001与加热模块捆绑连接,然后置于被测土壤中,通过施加60~120 s左右热脉冲,观测土壤升降温情况,以便换算土壤体积含水量。
图3 PTC恒温发热模块
2.3 A/D转换模块
AD7705包括5个串行数据接口,其中数据输入端D_IN,串行时钟输入端S_CLK,转换数据输出端D_OUT,芯片选择输入端CS用于传输数据,状态信号输出DRDY端用于指示输出数据寄存器数据是否准备就绪。当DRDY 端电平置低时,转换的数据可用;当DRDY端电平置高时,输出更新数据,无法读取。根据设定的数据输出进行速率更新A/D转换处理。具体的电路设计图如图5所示。
图4 土壤加热测试模块设计图
图5 AD转换电路原理图
2.4 串口通讯模块
串口通讯采用485通讯方式,可靠性好,精确度高。其设计的电路原理图如图6所示。
DE和RE端口均是高电平有效,其中R74是保护电阻,用于GPIO复用,R2R3R4三个电阻缺省,应用时可根据需要进行设置。
图6 串口通讯电路原理图
3 系统软件设计
3.1 定时功能实现
采用T0定时器进行1 s精确定时。首先进行串口T1和T0定时器初始化,程序如下:
/*---------串口初始化函数------*/
void init_uart()
{
TMOD=0x21;
TL1=0xfd;//实现波特率9600(系统时钟11.0592MHZ)
TH1=0xfd;
TL0=T1MS; //initial timer0 low byte
TH0=T1MS>>8;//initial timer0 low byte
SCON=0x50;
PT0=1;
PS=0;//串口中断优先级设置;
TRO=1;TR1=1;ET0=1;ES=1;EA=1;//开中断允许;
}
T0定时中断程序如下,其中为了弥补计数误差,TL0每次修正了2个计数,即TL0 += 0x69。
/*---------定时器中断服务程序----------*/
void tm0_isr()interrupt 1 using 1
{
TL0=Ox69;
TH0=0xfc;
If(count--==0)
{
count=1000;
second++;
if(second==3600)
{
second=0;
Hour++;
}
}
}
3.2 HS3001读数功能实现
论文中紧对温湿度的信号采集与处理部分做一个设计说明,具体的代码设计如下,部分的信息都在后续部分做了相应的注释。
void Convert_HS3001(void)
{
unsigned char TEMP1[7]; //用于记录温度
unsigned char HUMI1[7]; //用于记录湿度
unsigned char j;
unsigned long tem1,hum1;
float tem,hum;
tem=165.0f*(float)((BUFt[0]<<8)|BUFt[1])/16383.0f/4.0f-40.0f; //摄氏度
hum=100.0f*(float)((BUFh[0]<<8)|BUFh[1])/16383.0f;
BUFt[0]=0;
BUFt[1]=0;
BUFh[0]=0;
BUFh[1]=0;
tem1=(unsigned long)(tem*10); //摄氏度
hum1=(unsigned long)(hum*10);
if(tem1<0)TEMP1[0]=0x2D;//温度小于零,则数值前面加‘-’负号
else TEMP1[0]=0x20;//温度大于等于零,则数值前面加空格
TEMP1[1]=tem1/1000+'0'; //温度百位
if (TEMP1[1]==0x30) TEMP1[1]=0x20;
TEMP1[2]=tem1%1000/100+'0'; //温度十位
if (TEMP1[2]==0x30 && TEMP1[1]!=0x30) TEMP1[2]=0x20;
TEMP1[3]=tem1%100/10+'0';//温度个位
TEMP1[4]=0x2e;//小数点
TEMP1[5]=tem1%10+'0';//温度小数点后第一位
TEMP1[6]=0x20;//最后一位为空格
for(j=0;j<7;j++)
}
4 实验结果与分析
4.1 湿细砂热脉冲温度升降
将传感器模块埋入重力含水量10.4%的细砂中10 cm,分别施加120 s和60 s热脉冲,传感器升降温曲线如图6所示。从图中可以看出微量热脉冲对土体扰动小,升温曲线有很好的一致性。
图6 w=10.4%湿砂热脉冲温度升降曲线
4.2 干细砂热脉冲温度升降
再将传感器模块埋入重力含水量0.13%的细砂中10 cm,分别施加240 s和120 s热脉冲,传感器升降温曲线如图7所示。从图中可以看出微量热脉冲对土体扰动小,升温曲线有很好的一致性。湿砂和干砂升降温曲线比较如图8所示,显示升降温曲线斜率有较大差别。
图7 w=0.13%湿砂热脉冲温度升降曲线
图8 湿砂和干砂热脉冲温度升降曲线比较
部分实测湿砂温度升降原始数据如表1所示。
表1 实测湿砂温度升降原始数据表
5 结束语
该文在充分分析当前土壤水分测量方面存在的问题出发,提出了一种基于热脉冲的土壤水分测试系统的设计,经过软硬件的设计和实验测试,该装置利用热脉冲可以间接测量土壤体积含水量,热脉冲时间控制在1~2 min,测量周期约300 s,具有短时连续监测的优势;同时在非加热模式下,可以直接获取土壤温湿度,经过湿细砂热脉冲温度升降试验,该装置测量精度高,准确度达到99%,同时在降雨入渗和水位变化时可以直接监测湿度变化;此外加热模块还可以为温湿度传感器升温除湿,以增强深埋土壤高湿度环境下长期工作性能。