温室温度远程监测系统设计.docx
- 文档编号:9856060
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:41
- 大小:553.03KB
温室温度远程监测系统设计.docx
《温室温度远程监测系统设计.docx》由会员分享,可在线阅读,更多相关《温室温度远程监测系统设计.docx(41页珍藏版)》请在冰豆网上搜索。
温室温度远程监测系统设计
温室温度远程监测系统设计
【摘要】本系统是基于单片机STC12C2052AD配合温度传感器DS18B20和RS-232串行通信及RS-485远程通信、将在温室内温度数据传输到上位机进行实时监控和出现异常报警的一套温室温度监测系统。
下位机放置在温室内,通过传感器采集温度,然后经由单片机的串行接口,由RS-485总线负责下位机与上位机的通信,利用MAX232实现下位机及MAX485的TTL电平和上位机RS-232C电平之间的转换,实现下位机与上位机之间的异步串行通信。
上位机采用VisualBasic串行通信编程,接收和分析经由下位机发上来的数据,设置报警温度,以及其他参数,当实际参数超过设置参数时,上位机进行声光报警来提示管理员,从而进行其他相应操作。
系统采用简单的双绞线通信线缆、抗烦扰、布线简单、传输距离远。
本系统的实用性和可靠性高、操作简单、可广泛用于个人或者企业的温室进行温度监测使用,且无后期维护费用。
第1章绪论
随着社会主义农村的建设和社会的进步,生产水平的提高,温室也逐渐增多。
温室内的温度是生产过程中最重要参数之一,传统的监测方法是人工长期监守,利用干湿球玻璃温度计现场采集数据的方式,劳动强度大,操作规程复杂,制约了温室管理员的工作效率。
现代电子技术的发展,已经渗入到人们生活的方方面面。
利用智能监测系统对温室内的温度实行远程监测,不但可以解决传统温度监测的弊端,而且大幅度的提高农业生产的科技含量和生产水平,更重要的是促进了新农村建设的发展和社会的进步。
国外对温室环境控制技术研究较早,始于20世纪70年代。
先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。
80年代末出现了分布式控制系统。
现在世界各国的温室控制技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。
我国对于温室控制技术的研究相对较晚,始于20世纪80年代。
我国工程技术人员掌握了人工气候室内微机控制技术。
之后,我国的温室控制技术得到了迅速发展。
但由于我国农业现代化水平较低,农业劳动力大量过剩,温室的一次性投资大,资金短缺以及对操作人员的素质要求比较高等因素,限制了温室控制技术在温室系统的扩展。
从国内外温室控制技术的发展状况来看,温室环境控制技术都是从手动控制转向自动控制,监测技术也正逐步走向智能化。
本系统设计是以单片机为核心,利用温度传感器对温度进行采集,再经过单片机与计算机通信,将温室内的温度数据传送给上位机软件处理,对温室内的温度远程监测。
实现了对温室内的温度自动控制,使劳动生产率得到提到.
第2章系统设计方案
2.1系统总体设计
温室温度监测系统的系统框图如2-1所示。
主要是由温度传感器和单片机构成的下位机、远程通信、上位机三大部分组成。
图2-1系统框图
下位机由单片机进行控制,温度由温度传感器进行温度采集。
单片机对信号进行处理,然后由LCD液晶进行下位机现场显示。
同时单片机与上位机进行实时远程通信。
上位机的控制处理程序,对接受到的数据进行处理,存储,分析。
同时进行动态显示、查询、备份。
对超限数据进行声光报警提示。
2.2方案选择
整套主要是由温度传感器和单片机构成的下位机、远程通信、上位机三大部分组成,方案的选择将直接影响设计效率和最后整体效果。
2.2.1温度传感器的选择
温度传感器AD590属于模拟量输出,需要使用AD芯片将模拟量转换为数字量,另外如果多个传感器就需要占用更多的转换芯片以及单片机口线,外围元件复杂。
温度传感器DS18B20具有独特的1-Wire总线技术,可以挂接多个传感器[1]。
数字量输出,测量温度X围-55℃至+125℃,测量精度高,增值量为0.5摄氏度,在一秒内可以把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,而且体积小、使用方便。
基于DS18B20的优点,能够满足温室内的温度要求,加之对DS18B20的使用经验最后决定使用DS18B20传感器来采集温度。
2.2.2通信方式选择
远程通信部分在本设计中非常重要,该部分的设计质量直接影响整体设计的质量、成本以及实际应用前景,因此确定一个好的远程传输方案就显得尤为重要。
随着通信技术、计算机技术和网络技术的飞速发展,远程监视系统越来越多的应用于生产和管理领域中。
就远程数据传输方式而言,目前有很多种,归纳起来分一下两大类:
(1)无线通信方式
无线传输方式可分为卫星通讯、GSM数字网、GPRS数字网、CDMA数字网及数据通信电台等传输方式。
卫星通讯、GSM数字网、GPRS数字网和CDMA数字网络虽然有很多优点比如:
网络覆盖X围广,不受地域限制,信号较稳定,无同频干扰,XX性好,可处理大量的短消息、数据和传真传送等业务功能;但是由于路由选择复杂容易造成短信息等数据传输的系统延迟,而且其使用成本高,所以只适合在特殊场合下使用,如用卫星进行电视信号传输,GSM和CDMA广泛用于手机业务,GPRS全球定位系统等等。
数据传输电台方式具有建网灵活方便,实时性高,费用较低等特点,特别适合偏远地区没有公用网的场合。
但是需要申请无线电台播放频段才可使用,而且其有效工作距离和发射功率有关,如果距离太远成本会很高。
(2)有线通信方式
有线通信方式可分为电力线载波传输、因特网传输、RS-485总线[2]远程传输等。
电力线载波方式由于抗干扰和传递距离等关键技术还没有完全解决,在国内尚处于小区试验阶段;因此在我国还不太适合实际应用。
因特网可利用通用网络或线,需预先架设网络及大型专用设备,投入资金很大。
RS-485总线速度很快,最大10MB/S,传送距离相对很远(90KB/S下可传1200米),以差分平衡方式传输信号,具有很强的抗共模干扰的能力,允许一对双绞线上一个发送器驱动多个负载设备。
因此工业现场控制系统中一般采用该总线标准进行数据传输。
通信网络各节点均带有RS-485串行通信接口。
在总线末端接一个匹配电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。
可靠性高,投入小,1对双绞线即可胜任。
鉴于投入和架设的难易程度,最终决定本次设计选用RS-485总线负责远程通信串口通信。
2.2.3程序使用语言的选择
本次设计包含2个部分,上位机和下位机,
1.下位机编程可使用的编程语言有汇编语言和C语言,其中汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。
其主要优点是占用资源少,程序执行效率高。
但是不同的CPU,其汇编语言可能有点差异,所以不易移植;而且没有很好的可读性,以及良好的结构。
用C语言编写单片机程序比汇编语言更符合人们的思考习惯,开发者可以摆脱与硬件无必要的接触,更专心的考虑功能和算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。
C语言具有良好的程序结构,适用于模块化程序设计,因此采用C语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,将功能模块化,由不同的模块完成不同的功能,这样可使整个应用系统程序结构清晰,易于调试和维护。
不同的功能模块,分别指定相应的入口参数和出口参数,对于一些要重复调用的程序一般把其编成函数,这样可以减少程序代码的长度,又便于整个程序的管理,还可增强可读性和移植性。
所以本次单片机应用程序设计选择C语言进行编写。
2.上位机监测软件编程可以使用的语言有VB和C,C++等其他高级语言,其中VB的图形用户界面(GUI)。
不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。
如果已使用过诸如Paint之类的绘图程序,则实际上已掌握了创建用户界面的必要技巧。
VisualBasic在原有BASIC语言的基础上进一步发展[3],至今包含了数百条语句、函数及关键词,其中很多和WindowsGUI有直接关系。
专业人员可以用VisualBasic实现其它任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。
VisualBasic不仅是VisualBasic编程语言[4]。
VisualBasic编程系统,MicrosoftExcel的ApplicationsEdition,MicrosoftAccess和Windows的许多其他应用程序都使用这一语言。
VisualBasicScriptingEdition(VBScript)是广泛使用的脚本语言,它是VisualBasic语言的子集。
这样,在学习VisualBasic中得到的经验可应用到所有这些领域中。
C,C++语言,适合大型软件系统编程,提供了对机器级概念的访问(如字节、地址),而这些是其他编程语言试图隐藏的内容,因为这样很容易造成系统的不稳定甚至崩溃,同时它也是一种小型语言,提供了一套有限的特征集合,为了保持少量的特征,C语言在很大程度上依赖一个标准函数库;C语言提供详细的差错功能,但是稍不小心可能导致编程出错,难以修改。
鉴于本系统设计中实际需要,VB更适合用来编程本监测软件,所以在这次设计中使用VB进行上位机编程。
第3章系统硬件设计
下位机部分包含电源模块、单片机控制模块、温度采集模块、远程通信模块和液晶显示模块。
单片机负责采集传感器产生的数据和对数据进行分析处理,得到可用的信息,然后将信息通过单片机串口发送至远程通信模块,最后传送至上位机。
其中控制部分采用STC12C2050AD单片机,传感器采用DS18B20数字温度传感器,通信部分使用MAX485通信芯片进行远距离有线数据传输,芯片电平与单片机兼容。
同时备有MAX232芯片,该作用是直接进行电平转换,与上位机进行测试和调整,以及程序的写入。
下位机整体结构简单、体积小巧、维护方便。
3.1电源模块设计
电源的设计是电子电路设计的重要环节,在某种意义上可以说电源电路的性能指标直接关系到设计成败。
电源电路的设计,因系统供电形式、系统对电源的要求等具体情况的不同其构成原理也有所不同。
本设计的所有器件都是5V电源器件,所以外接电源直接用7805稳压模块就可以直接完成,大容量电容可以起到更好的滤波效果。
另外,当市电停电时为了不给用户造成因为停电期间的不能显示温度,进而造成经济损失,所以在下位机增加了外接电源插孔。
做到外接电源单独模块化,此外,也方便外接电源的维修和更换。
外接电源电路原理图如图3-1所示[5],电路图绘图工具使用ProtelDXP[6]。
其中Jpw为电源输出插头。
图3-1外接电源模
3.2单片机控制模块设计
STC12C2052AD单片机是下位机的核心,同样也是硬件系统的核心。
编写的下位机程序就是烧写入到该芯片中,它对整个下位机进行控制,包括读取和分析传感器的发送的数据、控制液晶屏显示的内容、并且将数据通过串口输出。
STC公司的STC12C2052AD单片机具有单时钟/机器周期(1T)、高速、低功耗、超强抗干扰等特点:
1.工作温度X围从-40℃至+85℃,适合在温室中使用;
2.指令代码完全兼容传统8051[9],但速度快8-12倍;
3.内部集成MAX810专用复位电路;
4.具有串口,经过芯片进行转换后与计算机的RS232串口进行通信;
5.针对电机控制,强干扰场合。
引脚图如图3-12。
图3-12STC12C2052AD管脚图
STC12C2052AD内部有256字节RAM,2K程序空间,集成度高,芯片本身就是1个最小系统。
在能满足系统的性能要求的情况下,可优先考虑采用此种方案。
用这种芯片构成的最小系统简单、可靠。
用STC12C2052AD单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路。
最小系统是整体设计的核心部分。
本系统使用RC复位电路。
其中单片机的1脚是复位脚,使用阻容组合电路来实现看门狗功能。
STC12C2052AD内部RC振荡器5.2MHz~6.8MHz,可接高精度外部晶体或时钟(具体应用由ISP软件设置),本系统使用个外部晶体,晶体频率为11.0592MHz,外接晶体管脚为芯片4、5脚。
在晶体的选择上要准确。
晶体的性能直接影响单片机能否正常工作。
C1、C22个33pF的电容是帮助谐振的。
两个电容与晶体共同构成谐振电路。
若不接,大部份情况下也可以用。
但是有可能振不起来。
该最小应用系统可以进行PWM输出,AD输入等一些功能。
STC12C2052AD使用5V工作电压。
STC12C2052AD最小系统如图3-3所示。
图3-3STC12C2052AD单片机最小系统图
3.3温度采集电路模块
温度采集电路使用的温度传感器是由DALLAS公司生产的DS18B20。
数字量输出可以使该芯片直接接入单片机的口线上,分辨率为9~12位(可设置),工作电压X围为3.0V至5.5V。
其独特的1-Wire总线型数字量输出的使得可以在一条总线上挂接多个传感器,而且相互不影响温。
封装类型为TO-92,芯片如图3-15。
这使得温度传感器放置在许多不同的地方。
它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制,简化了分布式温度传感应用;应用X围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。
图3-15DS18B20引脚说明图
1.GND:
电源地;
2.DQ:
数据输入,数据输出;
3.VDD:
电源。
该芯片在本系统中的作用是将温度转换位数字量。
在本系统中,该芯片2脚数据输出由一只4.7K上拉电阻(R2)与3脚电源相连。
1脚连接系统电源地;3脚连接系统电源;2脚与单片机6脚相连。
传感器与单片机硬件连接已经完成。
如图3-4。
图3-4DS18B20硬件连接图
3.4远程通信电路模块
3.4.1调试端口电路设计
数据通信方式有两种,即并行数据通信和串行数据通信。
并行数据通信中,数据的各位同时传送,其优点是传递速度快;缺点是数据有多少位,就需要多少根数据线;串行通信中,数据字节一位一位串行地顺序传送,通过串行接口实现。
它的优点是只需一对数据线(利用线就可作为数据线),这样就大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。
在应用时,可根据数据通信的距离决定采用哪种通信方式,例如,单片机机与外部设备(如打印机等)通信时,如果距离小于30m可采用并行数据通信方式;当距离大于30m时,则要采用串行数据通信方式。
单片机具有并行(如图3-17)和串行(如图3-18)二种基本数据通信方式。
基于本设计实际应用环境这里选择使用串行通信方式。
图3-17并行通信图图3-18串行方式图
1.按照串行数据的时钟控制方式,串行通信分为异步通信和同步通信两类。
在异步通信中,数据是以字符为单位组成字符帧传送的。
发送端和接收端由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。
2.在串行通信中按照数据传送方向,串行通信可分为单工、半双工和全双工三种制式。
单工通信定义为在任何一个时刻,信号只能从甲方向乙方单向传输,甲方只能发信,乙方只能收信。
半双工通信定义为在任何一个时刻,信号只能单向传输,或从甲方向乙方,或从乙方向甲方,每一方都不能同时收、发信息。
双工通信定义为在任何一个时刻,信号能够双向传输,每一方都能同时进行收信和发信工作。
3.在进行串行通信接口设计时,必须根据需要确定选择标准接口、传输介质及电平转换等问题。
RS-232C是使用得最早、最多的一种异步串行通信总线标准。
它由美国电子工业协会(ElectronicIndustriesAssociation)于1962年公布,1969年最后一次修订而成。
其中RS是RemendedStandard的缩写,232是该标准的标识,C表示此标准已修改了三次。
RS-232C主要用来定义计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接口的电气特性,目前已广泛用于计算机与终端或外设之间的近端连接,适合于短距离或带调制解调器的通信场合。
由于RS-232C标准早于TTL电路的产生,与TTL、MOS逻辑电平规定不同。
该标准采用负逻辑:
低电平表示逻辑1,电平值为-3V~-l5V;高电平表示逻辑0,电平值为+3V一+l5V。
因此,RS-232C不能直接与TTL电路连接,使用时必须加上适当的电平转换电路,否则将使TTL电路烧毁。
常用的电平转换芯片有MC1488、MC1489、MAX232,其中MAX232采用单5V电源供电,使用非常方便。
MAX232系列芯片由MAXIM公司生产,工作温度X围为0℃至70℃,内含两路接收器和驱动器。
片内含有一个电容性电压发生器以便在5V电源供电时提供EIARS-232C电平。
每个接收器将EIARS-232C电平输入转换为5V的TTL/CMOS电平。
这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接收±30V的输入。
每个驱动器将TTL/CMOS输入电平转换为EIARS-232C电平。
采用该芯片硬件接口简单、价格适中,所以被广泛使用。
图3-19为该芯片引脚图。
图3-19MAX232引脚说明图
C1+,C1-:
倍压器电容接入端,接0.1μF电容;
C2+,C2-:
电压反相器电容接入端,接0.1μF电容;
V+:
升压电容接入端,对+5V接0.1μF电容;
V-:
极性变换电容接入端,对地接0.1μF电容;
T1in、T2in:
TTL/CMOS电平输入端,接单片机输出端口;
T1out、T2out:
EIARS-232-C电平输出端,接串口端口;
R1in、R2in:
EIARS-232-C电平输入端,接串口端口;
R1out、R2out:
TTL/CMOS电平输出端,接单片机输出端口。
该系统在实际应用中,一些特殊情况需要直接与下位机进行通讯,这样,在下位机引入MAX232电平转换芯片,外围元件简单,12脚与单片机3脚相连;11脚与单片机4脚相连,进行串行数据的传输和转换。
硬件连接如图3-20所示。
图3-20MAX232与单片机硬件连接图
3.4.2远程通信电路设计
在以单片机为基础的数据采集和实时控制系统中,通过计算机中的RS-232接口进行计算机与单片机之间的命令和数据传送,就可以利用计算机对生产现场进行监测和控制。
由于计算机上的RS-232所传送的距离不超过30m,所以,在远距离的数据传送和控制时,可以用MAX485协议转换芯片将RS-232转换成RS-485协议进行远距离传送。
RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,故传输信号能在千米以外得到恢复。
使用RS-485总线,一对双绞线就能实现多站联网,构成分布式系统,设备简单、价格低廉、能进行长距离通信的优点使其得到了广泛的应用。
RS-485支持半双工或全双工模式。
通常采用半双工方式组网应用。
图3-8为典型半双工RS-485通信网络。
各驱动器分时使用传输线(不发送数据的驱动器应被禁止)。
总线网络上可挂接32个节点。
传输线通常采用双绞线,可以较大程度抑制共模干扰。
在传输线的末端接120
的电阻进行阻抗匹配,消除由于不匹配在线路上产生的信号反射。
在实际应用中,为减少误码率,通信距离越远,通信数率应取低一些。
RS-485规定:
通信距离为120m时,最大通信速率为1Mbps;若通信距离为1.2km,则最大通信速率为100kbps。
图3-8RS-485通信网络图
综上所述,对于远程有线高速通信,所以RS-485是最好选择,其构成简单,高速可靠的特性使得其已经得到了广泛的应用。
这里使用MAX485高速通信芯片来实现本系统的高速实时通信功能。
在应用中仅为单向通信,只需要2个MAX485即可完成,一个芯片负责把单片机的数据送到总线上,另一片负责从总线接收数据送到上位机串口。
(1)RS-485发送部分:
发送部分与MAX485的6脚和7脚相连的接口P1为总线接口。
R5为120的平衡电阻,3脚发射使能置高,无需进行控制,数据经单片机3脚异步串口输出给MAX485芯片4脚。
如图3-9。
图3-9MAX458与单片机连接构成的发送电路图
(2)RS-485接收部分:
由于MAX485与MAX232都是属于有源芯片,工作电压为5V,只有提给芯片提供电源芯片才能工作。
另外接收部分连接至上位机,上位机串口使用的是RS-232C协议,电平是EIARS-232C电平。
可以使用DTR和DSR的状态进行串口去电,方法是是DTR或DSR其中1个或者2个输出高电平,经过D1,D2进行隔离后连接到L78M05ABV这个+5V稳压模块输入端,输出即为MAX232与MAX485所需要的5V电源。
图3-10是由MAX485与MAX232连接,构成的RS-485总线的接收电路部分。
RS-485通过MAX-485右侧的接口P2连接RS-485总线,经过平衡电阻R6后连接至MAX485芯片6,7脚。
其接收使能端2脚置为高电平,这样使其可以接收RS-485总线上的信号。
其输出与MAX232芯片连接,目的是将TTL电平转换为上位机串口所用的RS-232C电平。
最后送至上位机串口。
图3-10RS-485接收电路图
3.5显示电路模块
为了方便在温室内得到温度信息和防止因为市电停电上位机无法处理和得知温室内现场的温度,所以增加显示电路。
常用的显示电路有很多,比如LED数码管,液晶显示模块(LCD,LCM),点阵LED等等。
其中LED数码管和点阵硬件电路连接复杂,显示效果死板,LED数码管不能显示汉字,点阵可以显示汉字,但是程序复杂而且体积和功耗也很大。
而带有字库的液晶显示模块不仅功耗低功耗设计可满足产品的省电要求;可以显示字符,汉字,还有自定义图形,而且显示信息量远远大于其他显示电路,同时与单片机等微控器的接口界面灵活。
简化程序存储空间。
提高单片机利用率。
这里使用带有字库的LCM128645ZK液晶显示模块来显示温度信息。
LCM128645ZK的字型ROM内含8192个16*16点中文字型和128个16*8半宽的字母符号字型;另外绘图显示画面提供一个64*256点的绘图区域GDRAM;而且内含CGRAM提供4组软件可编程的16*16点阵造字功能。
电源操作X围宽(2.7Vto5.5V),低功耗设计可满足产品的省电要求;同时与单片机等微控器的接口界面灵活(三种模式:
并行8位/4位,串行3线/2线)。
中文液晶显示模块可实现汉字、ASCII码、点阵图形的同屏显示,广泛用于各种仪器仪表、家用电器和信息产品上作为显示器件。
中文液晶显示模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令,具有光标显示/闪烁控制命令及关闭显示命令。
预留多种控制线(复位/串并选择/亮度调整)供用户灵活使用。
液晶LCM128645ZK管脚说明:
1:
Vss(地);
2:
VDD(逻辑电压);
3:
VO(对比度调节);
4:
RS/CS(选择寄存器,并行/片选,串行);
5:
RW/SID(读写控制,并行/输入数据,串行);
6:
E/SCLK(读写数据起始,并行/输入脉冲,串行);
7~14:
DB0~DB7(数据线0~7);
15:
PSB(控制界面);
16:
NC(未用);
17:
/RST(复位信号);
18:
VR(对比度调节);
19:
LED+(背光正极);
20:
LED-(背光负极)。
本设计中采用并口数据传输接法,具体设置是将PSB脚接高电,由指令位(DLFLAG)来选择8-BIT或者4-BIT接口,主控制系统将配合(RS,RW,E,DB0...DB7)来完成传输动作。
相关参数及时序图如下:
此模块硬件电路如图3-11。
电阻R3,R4是对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温室 温度 远程 监测 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)