卢社阶,叶 鑫,熊再红
(1.湖北科技学院 音视频处理重点实验室,湖北 咸宁 437100; 2.咸宁职教集团,湖北 咸宁 437100)
随着农村用水工程的启动,凿井抽水成为解决农村饮用水的主要方法,但是,如果要人工监测抽水,不仅浪费人力资源,而且还容易造成抽水过多直至水箱溢出或者将井水抽干的现象,极不方便[1].目前绝大多数面向此类应用的产品并不能达到智能的效果,只能进行单一的人工操作,并且安装后无法改变初始的设置,不能很好的满足用户的需求.为了提高效率,节约资源,设计一套完善的自动供水系统是必不可少的.本文采用单片机作为控制系统,利用串口通信来实现PC机对供水系统的控制,实现了农村地下水智能供水系统,并给出了相应的硬件电路及程序设计的思路.
从图1所示的自动供水系统示意图可以看出系统的功能、工作过程,以及所需要解决的技术问题.当水塔中的水位低于设定的最低水位时,开始启动水泵提水,直至水塔中的水位达到所设定的最高水位.如果水井中的水位低于设定值时,应停止水泵提水,并给出提示信息,等待设定时间后重试.
由于这套系统是面向家庭用水的最小适用系统,故选用AT89C51[2]型号的单片机作为控制芯片,该芯片是一款自带4K字节FLASH存储器的低电压、高性能CMOS的8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.
图1 自动供水系统示意图
供水系统需要同时监控水箱和水井两处的水位变化,可采用两个水压传感器[3]来采集水位信息,由于采集到的信息都为模拟信号,因此需要利用模数转换芯片ADC0832[4-5]将水位模拟信号转化为数字信号,然后再经控制芯片处理后传输给LCD1602显示.系统还设计了相应的按键来根据用户需要设定水箱和水井的初始高低水位以及对电机的控制.由于单片机RAM断电后用户设定的数据会丢失,因此,需要外接一款EEPROM芯片24C02来存储用户输入的初始水位设置数据.同时为了防止意外情况的发生,添加了报警蜂鸣器.系统框架如图2所示.
图2 硬件整体设计框架图
本系统结合了单片机技术、模数转换技术、液晶显示技术以及串口通信技术[6],组成了一套性能比较完善的智能供水系统.系统的具体功能如下:
(1)设定水箱和水井的初始高低水位;
(2)实时监测并显示水箱与水井的当前水位;
(3)自动控制电机的开关;
(4)出现故障及时报警;
(5)利用串口通信通过PC机来获取用户需要的数据.
图3 单片机接口电路
单片机AT89C51的接口电路如图3所示.单片机的P0口接LCD1602的八位数据总线,P1.0和P1.2分别接蜂鸣器电路和电机控制电路.P1.5-P1.7三个口接三个按键,用于设置水箱和水井的初始水位,P2.5和P2.6分别接在24C02芯片的时钟输入和数据输入端.P3.0和P3.1分别接在串口驱动芯片MAX232的输入输出端.P3.5-P3.7接AD转换芯片的三个相应端口.
模数转换电路是基于ADC0832作为A/D转换芯片来实现的,利用压力传感器来检测水井与水箱中的水位压力.压力传感器的工作原理是被测水压的压力直接作用于传感器的膜片上,使膜片产生与水压成正比的微位移,使传感器的电阻值发生变化,用电子线路检测这一变化,并转换输出一个相对应压力的标准测量信号.ADC0832就可以将测量的标准信号转化为数字信号传给单片机.ADC0832芯片的引脚接线如图4所示.
图4 ADC0832引脚接线电路
其中INT0和INT1分别接水箱和水井的水压传感器输出端.
本系统中的串口通信用到的是RS232标准协议,RS-232是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同.因此,为了能够同计算机接口或终端的TTL器件连接,必须在RS232与TTL电路之间进行电平和逻辑关系的变换.实现这种变换的方法可用分立元件,也可用集成电路芯片.本系统使用MAX232芯片来转换电平,其电平转换电路如图5所示.
图5 串口电平转换电路
本系统的程序设计主要分为四个部分:控制器的初始化、水位数据的采集与转化、LCD1602数据显示、串口操作.主程序的流程如图6所示.
图6 主程序流程图
程序采用C51进行编程,单片机的主频设置为11.0592 MHz.初始设定P1.0、P1.2口均为高电平.由于水位的变化波动比较大,因此程序中设定每1s采集一次数据.采集到的有两组数据,一组是水箱的水位数据H1,另一组是水井的水位数据H2.先将水井的水位数据H2与设定的水井最低水位h2进行比较,若H2<h2,则P1.0口置低电平,蜂鸣器报警,P1.2口置高电平,关电机;若H2>h2,则P1.0口置高电平.在H2>h2的条件下,再对检测到的水箱水位与设定的水箱初始最低水位h10、最高水位h11分别进行比较,若H1<h10,则置P12低电平,开电机,直到H1>= h11,置P12高电平,关电机,在这一过程保持P12低电平;若H1>h10,则始终置P12高电平.其部分程序代码如下:
图7 单片机串口发送数据流程图
采用串口通信的目的是为了让用户可以通过PC机上的软件来获取水位和设置初始水位.串口通信的波特率设置为9600,上位机软件使用串口调试助手.单片机通过串口发送数据的流程如图7[7]所示.
本系统采用AT89C51单片机作为控制芯片,它具有体积小、功耗低、控制能力强、扩展灵活、微型化和使用方便等优点,同时只需5V的供电电压,最大限度地降低了系统的成本,节省了电力资源.通过继电器来控制电机电路的开断,保证了系统的安全性.基于串口的通信控制,实现了PC机与单片机的有效互联,可以大大提高系统的整体性能,同时也使整个系统使用起来更加简捷方便.因此,该系统对于自动化供水系统工程来说,具有极其优越的适用性,在日常生活中也具有很强的推广性.
[1]朱湘萍.基于89C51的供水自动化与检测系统的设计[J].微计算机信息,2010,4(2):90~91.
[2]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2010.
[3]刘畅生.传感器简明手册及应用电路:压力传感器分册[M].西安:西安电子科技大学出版社,2007.
[4]刘芸,张英全,樊爱华,王进.电路与电子技术基础[M].北京:高等教育出版社,2006.
[5]周荷琴,吴秀清.微型计算机原理与接口技术[M].合肥:中国科学技术大学出版社,2008.
[6]斯托林顿.数据域计算机通信[M].(第九版)王海译.北京:高等教育出版社,2011.
[7]周建春,钱敏,李文石,曹云鹏,杨翠军.基于单片机和PC串口通信的测温系统[J].通信技术,2011,44(5): 257~259.