池塘水位水温实时远距离监测装置的设计

龙光利



摘 要: 针对目前池塘水位水温测量不精确、实时性较差等问题,设计一种池塘水位水温实时远距离监测装置。该装置包括硬件和软件两部分。硬件由单片机最小系统、水位传感器、水温传感器、SIM模块、液晶显示模块等组成。软件由主程序、温度采集子程序、液晶显示子程序等组成。水温水位采集模块将水位和温度信息传送到数据处理模块;通过键盘可以设置温度和水位的上下限值,单片机把水位和温度传感器传送来的数据经过处理,产生相应的显示代码驱动液晶显示模块进行显示,同时能将水位水温信息实时发送到手机上,并可进行远程控制。实践表明,装置工作稳定、监测距离远,池塘水位水温测量比较准确、实时性好。
关键词: 水位监测; 水温监测; 实时监测装置; 短消息; STC89C52
中图分类号: TN931+.3?34; TP212.9 文献标识码: A 文章编号: 1004?373X(2017)18?0143?04
Design of real?time remote monitoring device for water level and
water temperature in pond
LONG Guangli
(School of Physics and Telecommunication Engineering, Shaanxi University of Technology, Hanzhong 723001, China)
Abstract: Aiming at low accuracy and poor real?time performance of monitoring the water level and water temperature in pond, a real?time remote monitoring system of water level and water temperature in pond was designed. The device includes hardware and software. The hardware is composed of the MCU minimum system, water level sensor, water temperature sensor, SIM module, liquid crystal display module, etc. The software is composed of the main program, temperature acquisition subprogram, liquid crystal display subprogram, etc. The water level and water temperature acquisition module transmits the water level and water temperature data to data processing module. The upper and lower limits of water temperature and water level are set by means of keyboard. MCU processes the data transmitted by water level and water temperature sensors, then generates the corresponding display code to drive the liquid crystal display module for display, and sends the water level and water temperature information to mobile phone in real time for remote control. The practice results show that the device can work stably, has long monitoring distance, and can measure the water level and water temperature accurately and in real time.
Keywords: water level monitoring; water temperature monitoring; real?time monitoring device; short message; STC89C52
0 引 言
水库按容量可分为大、中、小型。容量大于1亿m3的为大型水库,容量在1 000万~1亿m3的为中型水库;容量在10万~1 000万m3的称为小型水库(其中100万~1 000万m3的称为小(一)型水库,10万~100万m3的称为小(二)型水库);容量小于10万m3的称为池塘或堰塘,不能称为水库[1]。水库的主要功能是农田灌溉和汛期防洪,以及为居民生活、养殖用水提供有利条件,一般有专门的机构管理。而池塘的功能以养殖为主,兼顾农田灌溉和汛期防洪。良好的水环境是水产养殖的重要环节,随着水产养殖业的迅猛发展,水产养殖方式由简单的散养转化为大规模的集约化养殖,且大多数水产养殖物为变温动物,水位水温的变化不仅影响鱼类和其他水生生物的自身生长、繁殖、越冬以及对药物与毒物的作用,同时也影响着池塘的物质循环速度等外界其他因子,只有控制好池塘水位水温,才能提高养殖生物类的生长速度,减少疾病实现水产养殖类健康、高产、优质、高效的目的。因此及时掌握池塘水位水温的变化,并积极地采取措施是当前水产养殖业亟待解决的问题[2]。
1 硬件设计
本文设计的池塘水位水温实时远距离监测装置原理框图如图1所示。
池塘水位水温实时远距离监测装置由水温采集模块、水位采集模块、键盘控制模块、显示模块、无线通信模块等组成。水温采集模块采用DS18B20传感器(防水型),水位采集使用浮球液位传感器,通过对水的温度及深度进行采集处理,最后输入控制模块。控制模块采用STC89C52作为核心处理芯片,进行数据的分析处理,分别对液晶显示、放水蓄水装置、报警装置、无线通信模块等进行控制。键盘控制是对水温初始值、水位初始值的设定输入装置。无线通信模块使用SIM900 GSM模块,将水温和水位信息通过GSM网络以短信形式发送到接收手机上,从而实现实时监测。实践表明,此装置工作稳定,监测距离远,池塘水位水温测量比较准确、实时性好。
1.1 单片机最小系统
所设计的单片机最小系统由STC89C52单片机、复位电路和时钟电路构成[3]。
(1) STC89C52单片机是与工业标准MCS?51指令集和输出管脚相兼容的单片机,具有速度高、功耗低、抗干擾能力强等优点。单片机的工作频率范围在0~40 MHz之间,工作电压在3.3~5.5 V之间;不需要专用的仿真器和编程器,可以通过串口直接下载程序且具有E2PROM功能。
(2) 复位电路:采用手动加上电自动复位方式,既具有上电自动复位的功能,又能够通过小按钮手动复位。系统上电时为单片机提供复位信号,系统电源稳定后再撤消复位信号。
(3) 时钟电路:单片机引脚18和引脚19外接电容及晶振, STC89C52单片机的工作频率在2~40 MHz范围之内,单片机工作频率取决于晶振XT的频率,可选用11.059 2 MHz晶振,两个瓷片电容选取30 pF,以保证振荡器电路的稳定性及快速性。
1.2 无线通信模块
无线通信模块采用SIM900A GSM模块,SIM900A模块是一款双频的GSM/GPRS模块,采用SMT封装和ARM926EJ?S架构,可以内置客户应用程序[4]。SIM900A工作的频段为EGSM 900 MHz和DCS 1 800 MHz。SIM900A模块和用户移动应用的物理接口为68个贴片焊盘,提供了模块和客户电路板的所有硬件接口。其主串口和调试串口可以帮助用户进行开发应用。SIM900A内嵌TCP/IP协议,扩展的TCP/IP AT命令让用户能够使用TCP/IP协议。模块的工作电压为3.4~4.5 V。该模块有AT指令集接口、支持文本和PDU模式的短消息等;全功能UART接口,支持天线连接器和天线焊盘。常用工作模式有正常工作、掉电模式、最小功能模式等。SIM900A模块主要通过串口与单片机进行连接,通过单片机实现对SIM900A模块的控制。SIM900A的串口提供了多条控制线,包含数据信号线TXD和RXD,状态信号线RTS和CTS,控制信号线DTR,DCD,DSR和RI。RXD数据接收信号线用于接收来自单片机的数据。STC89C52 的P3.0(RXD)和P3.1(TXD)两个引脚是专门进行UART串行通信的,由它们组成串行通信接口。
1.3 水温采集电路
水温采集电路采用防水型DS18B20,它是美信公司研制的温度传感器[5],DS18B20的输出引脚与单片机进行通信,把DS18B20 的数据引脚和单片机的一个 I/O 口接上,就可将温度读出。DS18B20具有负压特性,即当其VCC引脚和GND引脚接反时,防水型DS18B20传感器不会被损坏,但不能正常工作。将防水型DS18B20的数据引脚DQ和单片机的P1.2端口相连,输出池塘水温值,并可判断当前的温度值是否满足按键设置初值,如果超过设定值,则蜂鸣器报警。
1.4 水位采集电路
设计的水位采集电路如图2所示。
浮球根据水位的上升或下降判定当前的水位值[6]。在图2中4个浮球式液位传感器与电压比较器LM339相连,LM339的4个输出端口与单片机的P2.0~P2.4端口相连,LM339的4个反相输入端连接4个10 kΩ电位器,其作用是为了调节浮球式液位传感器的灵敏度,从而使测量结果更加准确。将4个液位点的液位情况测量显示出来,控制继电器动作,实现水位的自动调节。
1.5 液晶显示电路
液晶显示采用LCD1602[7],其工作电压为4.5~5.5 V,在使用时直接接5 V,其工作电流是2 mA。设计的液晶显示电路如图3 所示。
LCD1602的3脚是液晶显示偏压信号,用来调整显示的黑点和不显示的黑点之间的对比度。在3脚接1个电位器,便于调整3脚的电压。LCD1602的4 脚是数据/命令选择端,将此引脚接到了ADDR0上,通过跳线帽和P1.0连接在一起,当引脚是H(High)高电平时,输出是数据,当引脚是L(Low)低电平时,输出是命令。LCD1602的5脚是读/写数据或者命令,不但可以写给液晶数据或者命令,而且可以读取LCD1602液晶内部的数据或状态。LCD1602的6 脚是使能信号,可使液晶正常读/写命令和数据。LCD1602的7~14引脚是8个数据引脚,通过这8个引脚读写数据和命令。
1.6 电机驱动电路
设计的电机驱动电路如图4所示。
驱动电路采用控制继电器来控制蓄水泵和排水泵(对于大功率电机,可由继电器控制交流接触器完成)。驱动电路采用低电平触发的电磁继电器,当单片机输出低电平时,PNP三极管导通,三极管发射极连接的线圈流过电流从而产生电磁效应,通过磁力的吸引,把大电压端的铁片开关吸引闭合,使其大电压电路导通。当输入端为高电平时,PNP三极管截止,电流为零,磁力消失,大电压电路截止,从而实现小电压控制大电压的电路。
2 软件设计
软件包括主程序、液晶显示子程序、水温采集处理子程序、水位采集处理子程序等。
2.1 主程序设计
设计的主程序流程图如图5所示。上电后首先对LCD1602进行初始化,之后再进行波特率和定时器的初始化,初始化完成之后通过设置并扫描按键,确定设置的温度上下限和水位上下限。通过LCD1602显示水位、水温、空气温度,无线发送水位和水温值,再判断水温水位是否在预先设置的范围内。如果水温水位在设置的范围内则继续扫描,如果不在范围内蜂鸣器报警。接收打开或关闭蓄水泵或排水泵的指令,启动水泵工作,延时一段时间(可通过按键设置),判断水温水位是否在预先设置的范围内,循环上述过程,实现水位的自动调节。
2.2 液晶显示子程序设计
设计的液晶显示子程序流程如图6所示,先对LCD1602显示屏进行初始化(初始化大约持续10 ms),初始化完成之后延时1 ms,再判断液晶当前的状态,液晶的状态字有8位,第一位可以判断液晶当前的状态,后7位代表数据存取的地址。当第一位为1,即BF=1时,表示液晶正忙;第一位为0,即BF=0时,表示液晶当前不忙,可以进行数据的显示,获得显示RAM的地址,写入采集到的温度和水位值。
2.3 水温采集子程序的设计
设计的水温采集子程序流程图如图7所示。
水温采集子程序首先进行初始化,接着单片机要使该引脚为低电平,持续时间为480~960 μs(本设计持续500 μs)。之后单片机提供一个高电平,防水型的DS18B20等待15~60 μs后会主动使该引脚为低电平,持续60~240 μs后,DS18B20会主动释放总线,I/O口会被上拉电阻自动拉高电平,再进行ROM地址检测,最后读取温度值。
[图6 液晶显示子程序][图7 水温采集子程序]
根据流程图,用C语言编程,用Keil软件进行编译[8],编译通过后生成“hex”文件,下载烧录到单片机STC89C52中。
3 实验结果
首先在Proteus平台上进行仿真[8], 使用Altium Designer 10软件设计PCB图,并制作PCB板,将有关元器件焊接在PCB板上,并对水温采集(防水型DS18B20)模块、水位采集(浮球式液位传感器)模块、键盘控制模块、显示模块、无线通信(SIM900)模块、蓄水泵、排水泵等按电路要求连接。连接完毕,检查无误后通电测试。通过按键,设置水温和水位的上下限,如设置水温上限为30 ℃,水温下限为5 ℃,设置水位下限为[14,]上限为1。将水位传感器放入水中不同的位值,如放置水位下限为[14]时,显示当前模拟装置的水位为[14]。液晶显示屏上的HT代表水温的上限值、CT代表当前温度,HW代表水位下限、SW代表当前水位。当需要了解池塘的水位水温信息时,发送短信CT?SW, 短信截图如图8所示,图8中收到的第一条短信表示温度上限为50 ℃,当前水温位24 ℃;其设置水位下限为[12],当前水位为[14]。收到的第二条短信表示温度上限为30 ℃,当前水温24 ℃,當前水位为[14],设置的水位下限为[12]。如设置四个浮球式液位传感器可以监测4个水位点(也可设置多个液位传感器就可监测多个水位点),分别为0,[14],[12],1。分别将4个浮球式液位传感器固定在不同的位置,随着水位的上升,即可显示水位的高低,从而掌握水位情况。同时,通过手机回复短信,可实现远程打开或关闭蓄水泵和排水泵。
4 结 语
本文设计的池塘水位水温实时远距离监测装置,可将水位水温信息通过GSM网络以短信形式发送到接收者手机上,可远程打开或关闭蓄水泵和排水泵,实现水温和水位的自动调节。装置工作稳定,监测距离远,池塘水位水温测量比较准确、实时性好。为进一步拓展应用,电源部分可采用太阳能供电系统[9?10],增加传感器,还可监测水的pH值、溶解氧等相关参数。
参考文献
[1] 吴世泽.水库大小的划分[J].中国钓鱼,1998(9):35.
[2] 郝彦周,任中纪,景广振.水产养殖技术推广的现存问题及对策[J].水产养殖,2011,32(2):30?31.
[3] 胡洪波,章勇高.基于单片机控制的水温控制系统设计[J].邯郸学院学报,2009,19(3):81?83.
[4] 翟顺,王卫红,张衍,等.基于SIM900A的物联网短信报警系统[J].现代电子技术,2012,35(5):86?89.
[5] 车玮.智能热水器温度及水位测量系统[J].信息通信,2015(12):62?64.
[6] MA Daokun, DING Qisheng, LI Daoliang, et al. Wireless sensor network for continuous monitoring water quality in aquaculture farm [J]. Sensor letters, 2010, 8(1): 109?113.
[7] 张磊,凌振宝,冯建华,等.地下水数据传输系统的电源设计与实现[J].电源技术,2015,39(1):116?117.
[8] 林立,张骏亮.单片机原理及应用:基于Prteus和Keil C[M].3版.北京:电子工业出版社,2014.
[9] 方益明,蔺陆军,李剑,等.农村太阳能热水器水温水位控制系统[J].农机化研究,2012(2):207?210.
[10] 郝向东.太阳能热水器控制系统的设计[J].山西师范大学学报(自然科学版),2016,30(1):53?56.