基于STC89C52RC单片机的便携式雨量检测器设计

2023-09-27 08:21张秋艳杨舟婷
榆林学院学报 2023年5期
关键词:雨量设定值雨滴

张秋艳 ,杨舟婷

(榆林学院 能源工程学院,陕西 榆林 719000)

为了快速解决降雨量大带来的洪涝灾害问题,需要找到妥善的解决办法,能准确有效地测量降雨量,避免造成巨大的经济和生命财产损失[1-2]。准确测量降雨量大小和水位信息是城市建设的一项重要需求。降雨量信息的准确测量和及时报送,可以使城市居民更加清晰地了解到天气对自然的影响,从而能够及时有针对性地防灾减灾[3]。传统的降雨量的监测主要依靠人工完成,但人工操作存在处理不及时、不准确等问题,而自动对雨量进行不间断的检测与在线监测会大大降低人工成本且降低出错率[4]。为了解决传统降雨量检测存在的问题,本文以STC89C52RC单片机为核心,设计了一种雨量检测系统,经由雨滴传感器,水位传感器等主要器件完成对雨量数据的采集,经主控制的分析处理,将必要的参数信息在线显示,同时通过GSM模块进行通信,上传到手机APP,便于用于及时获取信息。该系统操作简单,体积小,经济成本低,运行稳定,具有良好的市场应用前景。

1 总体方案设计

本次设计主要包含雨量、水位等信息检测模块、按键模块、显示模块、GSM模块和报警模块。经由雨滴传感器进行对雨量大小的测量,当测量值达到雨量的设置上限值时,水位传感器便开始测量水位的高度,当水位测量值达到水位的设置上限值时,蜂鸣器发出报警同时会通过GSM模块向手机终端发送短信。其主要系统结构如图1所示。

图1 系统结构图

(1)主控制器。选择STC89C52RC单片机为主控制器,它是STC公司生产的一款低功耗的8位微处理器,价格低比较经济实惠,还可以在线进行编程,具有掉电保护功能等[5]。

(2)显示模块。选用LCD1602作为雨量检测的显示器,与OLED相比较,LCD1602控制更为简单,成本更低,满足本设计要求[6]。

(3)检测模块。雨滴检测模块选用雨滴传感器,利用雨滴传感器的阻值与水量大小的对应关系,即在表面上的水越多导电性越好,电阻阻值越小;而表面上水越少其导电性就越差,电阻阻值也会越大。根据电阻产生的输出模拟电压大小,然后通过ADC进行转换测量就可以确定雨量值的大小。水位的检测由Water sensor水位传感器来完成。该水位传感器将检测到的电压值通过模拟转换器转化成数字信号,然后将其应用到程序功能中,从而实现了对水位的实时监测,并快速有效的判断出水位值大小。

(4)GSM通讯模块。考虑到雨量信息传输的及时性和稳定性,本次设计选用GA6-B通讯模块。GA6模块短信发送具有两种方式,一种是中文格式的短信,需要通过转化从而发送中文。另一种是TEXT格式,其只能发送数字以及英文字符。为了信息传送的快速性,可以发送英文警示语或标准拼音提示,避免汉字编码的解析[7-8]。

2 主要硬件电路设计

主要硬件电路包括检测模块、通信模块、声光报警模块和显示模块,如图2所示。

图2 主要硬件电路原理图

2.1 检测模块

检测模块主要包括雨量检测和水位检测两部分。

(1)雨量检测。在使用雨量检测系统设计时,雨滴传感器是非常重要的组成成分。在5 V电压供电模块下,该传感器作为数字特性,上电后,根据雨滴值输出一个电信号,然后对输出的电信号值进行采集,从而经过转换实现对雨量值的读取[7]。该部分是通过雨滴检测传感器实现对雨量大小的检测,该模块的引脚CH0与外界ADC0832的引脚CH0连接。当雨滴传感器检测到信号后,输出一个电阻值R,此时电阻值与电压CH0的关系如公式(1)。

CH0=[R/(R+R5)] *VCC

(1)

其中,CH0为计算输出的模拟电压值,V;电阻R5为10 K,R为传感器所测得的电阻值,VCC为5 V。

由于传感器输出的模拟电压值范围为0~5 V,经过分辨率为8位的ADC0832转换器后,返回的数值范围为0~255。在本设计中设置的雨量值的测量范围为0~100%。然后通过ADC0832模数转换器,将传感器输出模拟量经过计算后输出数字量。ADC采样的模拟值与雨量检测值的关系如公式(2)。

Rainfall=(255.0-CH0_Value)/2.55

(2)

其中,Rainfall为雨量检测值,%;CH0_Value为雨量ADC的采样模拟值。

雨滴传感器上检测到的雨量值越多,ADC采样值就越小。综上所述,当雨滴检测传感器上没有检测到水时,此时输出的最大电压为5 V,在电压最大值为5 V时,设定检测到的雨量值为0%;当雨滴传感器完全浸入水中,其电阻值为0,此时输出的电压为0 V,设置检测到的雨量值为100%。

(3)水位检测。水位模块在使用中非常成熟,通电之后,通过内部进行采样,然后经过ADC模数转换器转换成数字信号,从而经过计算后得出水位值。其中S引脚连接的是ADC0832模数转换器的CH1引脚。其电阻值根据水位的变化而变化,电阻变化对应从水位传感器的底部到水表面的距离。水位传感器是根据检测到的电阻值产生一个输出的模拟电压信号,然后通过转换成数字信号,以此来可以确定水位的高度,最后输出的具体数字需在在LCD1602显示屏上进行显示。

由于水位传感器输出的电压值范围为0~5 V,经过分辨率为8位的ADC转换器后,返回的数值范围为0~255。在本设计中设置的水位值的检测值范围为0~100 mm。水位采样的模拟值与水位值的关系如公式(3)。

Water-Level=(CH1_Value*100)/255.0

(3)

其中,Water-Level为水位值,CH1_Value为ADC的采样值。由于在程序设计中CH1_Value是浮点型,因此在计算公式中先给CH1_Value扩大一百倍,然后在进行计算,此时所得到的结果才更加准确。

在水位检测模块中,水位值越高,ADC采样值就越大。综上所述,当水位传感器没有检测到水时,输出的电压值为0 V,此时检测到的水位高度为0 mm,然后随着水位越来越高,输出的电压值越大,直到水位传感器完全浸入水中,此时输出的电压为5V,检测到的水位高度为100 mm。

2.2 GSM通信模块

GSM是一个蜂窝网络,也就是移动电话要连接到它能搜索到的最近的蜂窝单元区域。本设计在接收短信时设置模式为 TEXT 模式,这样收到的数据为ASCII形式,比较容易进行解析工作。GSM与单片机之间通信方式为串口,因此将GSM模块中的串口输入端引脚RX连接到单片机P3.0口,将串口输出端TX引脚连接到单片机P3.1口。

2.3 声光报警模块

由于设计中蜂鸣器所需要的工作电流较大,因此选择的三极管是8550的PNP管。图2中F1为蜂鸣器,当单片机P2.3接口为高电平的时候,R27上无分压,此时三极管的B极和E极电位相同,所以Q2是截止的,F1就不通电且不报警,LED1也不亮;当单片机P2.3接口为低电平时,R2和R27会产生分压。由于Q2导通之后B极和E极会产生二极管的钳位,会使电压钳位为0.7 V,因此R27在这里起到了限流的作用,R2起到了分压作用。此时会形成回路使电路导通,蜂鸣器F1报警。在设计中当水位测量值超过设定值时则蜂鸣器报警。

2.4 显示模块

雨量检测系统需要通过LCD显示器进行各类信息的显示,给使用者带来便利。其中,LCD1602显示器的D0~D7引脚连接单片机的P0口,读写控制端RW及使能端E分别连接单片机的P2.5和P2.6口。LCD1602的VO端口接了一个3 K的电阻,其是用来调节显示器的对比度,RS则为数据执行状态的选择端口,其连接单片机的P2.7口,BG 的VCC引脚接+5 V电压是正极,BG的 GND接地是负极。

3 系统软件设计

系统主流程如图3所示。首先系统初始化,然后显示基本信息,然后进入雨量值检测,其雨滴传感器会实时的感应雨量大小,系统此时会进行判断,雨量值是否超过设定值。当雨量值未超限,系统会一直进行检测,直到雨量值超过设定值后,系统启动水位传感器工作,然后利用水位传感器实时检测水面高度,并将测量到的信息显示在显示屏上。当水位值未超过设定值时系统返回并重新进行测量,然后直到测量值超过水位设定值,系统蜂鸣器报警并且GSM通信模块会将警告信息发送给用户从而提醒用户注意水面高度。

图3 主流程图

3.1 雨量检测子程序

在电源接通后,系统进行初始化,然后等待系统稳定后,显示初始雨量值为50%,然后可以通过按键S2对雨量初始值进行调节。当按键S4为低电平时,设定值减一,当按键S5为低电平时,设定值加一,直到雨量值a设置成功后,系统便开始进行测量,然后进行函数计算。当测量值S没有超过设定值a时,系统会一直进行测量,直到雨量测量值S超过设定值a后,系统将进入下一个环节,开始对水位进行检测,其子流程如图4所示。

图4 雨量检测

3.3 水位检测子程序

水位检测模块用于测量水位高度。该部分通过按键S3进入到水位值设置,设置初始水位值b为50 mm,然后利用按键S4和按键S5进行数值的调节。当按键S4为低电平时,设定值减一,当按键S5为低电平时,设定值加一,直到水位值b设置成功后,系统便开始进行测量,然后进行函数计算。若测量值S小于设定值b时则继续检测;当测量值S大于设定值b后,蜂鸣器则发出报警以此提醒用户水位超标。

3.4 GSM通信子程序

GSM通信模块主要进行信息的传输,并且其采用发短信的形式向用户发出报警信号。当检测值超过设定限度后,系统开始进行串口初始化,初始化成功后开始测试通信是否成功,若成功则进行下一步,查询是否插卡,等待插卡成功后,查询卡是否注册到网络,经过这一系列流程检测发现无误后,输入收件人手机号,并向其发送相应的指令。

4 系统测试过程及结果

根据上述软硬件设计,搭建硬件测试平台如图5所示。

图5 硬件测试

(1)通电之后,待系统稳定,显示初始信息。

(2)进入到雨量值的测试,在设计中设置初始值雨量值为50%,若要调节雨量初始值,通过按键S2进入到雨量初始值的设置中,然后通过按键S3和S4进行数值的调整。现在将雨量值调整为55%,此时需将按键S5按下五次,雨量上限值即设置为55%,其雨量初始值设置测试如图6所示。

图6 雨量初始值设置测试图

(3)进行水位值设置,若需要调节水位上限,则通过按键S3进行水位值的设置。若不需要调节水位初始值,则默认初始值为50 mm,其水位检测结果测试如图7所示。

图7 水位检测结果测试图

系统开始进入测试,随着雨量值的增加,当雨量值超过55%后,便开始进行水位值检测,随着水位测量值的增加,当水位值达过上限值50 mm时,系统停止检测,然后系统蜂鸣器报警。与此同时,当系统蜂鸣器报警时,此时系统会通过GSM模块向手机发送短信,及时提醒用户,其短信报警测试结果。

5 结语

本设计以STC89C52RC单片机为控制核心,通过雨量检测模块、水位检测模块、按键模块、显示模块及GSM通信模块,将雨量信息及时发送到手机用户。经硬件测试结果表明,该系统运行稳定,信息发送及时,故障率较低,提供了一种雨量信息的便携式获取途径,为城市的防洪防灾提供一定的参考价值。

猜你喜欢
雨量设定值雨滴
宁夏红柳沟流域水沙变化及产沙分析
冷轧镀锌光整机延伸率控制模式的解析与优化
小雨滴
可爱的小雨滴
基于小波去噪的称重雨量数据分析
小雨滴
SL—1 型雨量传感器故障分析排除和维护
西气东输二线人机交互界面的防呆系统
目标设定值传感器的原理与检修
对工频耐压试验跳闸电流设定值问题的探讨