版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号:10417227常州大学毕业设计〔论文〕〔2023届〕题目基于单片机和GSM的大棚温湿度检测系统的研究与设计学生杨达学院信息科学与工程学院专业班级自动化102校内指导教师王雪专业技术职务讲师校外指导老师专业技术职务二○一四年五月基于单片机和GSM的大棚温湿度检测系统的研究与设计摘要:随着我国农业的迅速开展与农业现代化进程的逐步加快,大棚的应用也逐渐普及,然而这也带来了新的问题。植物生长需要适宜的环境,需要在一定温度与湿度范围内才能正常地生长,因昼夜变化或者天气骤变导致的温湿度的巨大变化,对植物的生长造成了不小的负面影响。而大棚无法解决由各种原因造成的温湿度的变化,所以对大棚的温湿度进行检测与控制十分关键。因此为了让大棚环境更适合植物的生长,提高大棚作物的产量和质量,对大棚的温湿度的监测变得尤为重要。本文设计的基于单片机和GSM的大棚温湿度检测系统,以STC89C52RC单片机为控制器,以数字式温湿度传感器DHT11作为温湿度检测模块,与华为GSM通信模块有机结合,构成一个温湿度实时检测报警系统。本系统通过温湿度检测模块实时检测大棚的温湿度,并通过LCD1602液晶屏显示当前温湿度。假设温湿度超过设定范围,系统进行声光报警,同时通过GSM模块将报警信息发至用户的,实现远程报警。本文通过四个独立按键实现温湿度的阈值设置等功能。本文为我国温室大棚自动控制系统的研究与开发打下了良好的根底。关键词:大棚温湿度检测系统;单片机;GSM;ResearchandDesignofthetemperatureandhumiditydetectionsystemingreenhousebasedonmicrocontrollerandGSMAbstract:WiththerapiddevelopmentofChina'sagricultureandtheaccelerationofagriculturalmodernizationprocess,greenhousehasbeenpopularized,butitalsobringsnewproblems.Plantsneedrightgrowingenvironment,andtheycanonlygrownormallywithinacertainrangeoftemperatureandhumidity.Greatchangesintemperatureandhumidityduetodiurnalvariationorthesuddenchangeoftheweatherhassignificantnegativeimpactonplants.However,greenhousecan’tsolvethisproblemwhichiscausedbyreasons.Sothedetectionandcontroloftemperatureandhumidityinthegreenhouseisveryimportant.Inordertomaketheenvironmentmoresuitableforplantingreenhouse,andimprovetheyieldandqualityofgreenhousecrops,monitoringtemperatureandhumidityofthegreenhousehasbecomeespeciallyimportant.Inthisarticle,thedesignoftemperatureandhumiditydetectionsystemingreenhouseisbasedonMCUandGSM,usingSTC89C52RCascontroller,takedigitaltemperatureandhumiditysensorcalledDHT11asatemperatureandhumiditydetectionmodule,andthencombinedwithHuaweiGSMcommunicationmodule,atemperatureandhumidityrealtimedetectionsystemwithwarningfunctionisconstituted.Thesystemcandetectthetemperatureandhumiditytemperaturewithhumiditydetectionmodule,anddisplaythecurrenttemperatureandhumiditythroughtheLCD1602LCDscreen.Ifthetemperatureexceedsthesetrange,soundlightalarmsystemwillalarm.Atthesametime,alarminformationissenttothepersoninchargethroughtheGSMmodule.Inthisdesign,thethresholdvalueoftemperatureandhumiditywillbesetbyfourindependentbuttons.ThispassagehaslaidagoodfoundationfortheresearchanddevelopmentoftheautomaticcontrolsystemofgreenhouseinChina.Keywords:Greenhousetemperatureandhumiditydetectionsystem;MCU;GSM;目录摘要I目录III1绪论11.1概述11.2课题的国内外研究现状与开展趋势11.2.1国外开展情况与开展趋势11.2.2国内开展情况与开展趋势21.3本文主要研究内容22系统的总体方案32.1功能概述32.2总体设计方案简述32.3方案选型42.3.1控制器选型42.3.2温湿度传感器选型42.3.3通信模块选型5显示模块选型53系统硬件局部设计73.1单片机模块硬件电路设计73.1.1STC89C52RC单片机简介7单片机模块最小系统硬件电路的设计93.2温湿度检测模块硬件电路设计113.2.1DHT11简介113.2.2DHT11硬件电路设计113.3GSM通讯模块硬件电路设计123.3.1GSM开发板简介123.3.2HUAWEI_GTM900通信模块简介123.3.3GSM通信模块硬件电路设计123.4LCD显示模块硬件电路设计133.4.1LCD1602简介133.4.2LCD1602硬件电路设计143.5按键与报警硬件电路设计153.5.1按键硬件电路设计15报警硬件电路设计164系统软件设计174.1程序设计语言与软件开发环境简介174.2系统软件总体设计174.3温湿度采集模块软件设计204.4GSM通讯模块软件设计244.5LCD1602显示模块软件设计254.6键盘软件设计284.7报警软件设计305系统调试及运行325.1硬件调试325.2运行结果326结论37参考文献39致谢40附录原理图411绪论1.1概述我国是一个农业大国,有几千年的农业文明。随着控制技术、移动通信技术的快速开展,设施农业逐渐兴起,反季节瓜果、蔬菜在人们消费水平提高的前提下迅速开展[1]。为使人们在不同的季节都可以食用其喜爱的作物,温室大棚的作物栽培起到了很大的作用[2]。但是,瓜果蔬菜在大棚里的生长受到很多因素的影响,包括阳光、空气中各种气体的含量、温度和湿度等等[3]。在温室大棚控制系统中,温室中的温度和湿度对各种蔬菜、花卉、苗圃等作物的生长和发育起着关键性的作用,与大自然中的普通作物相比要求精度较高。在关键时期,参数的微小变化可能会影响大棚内作物的生长,造成不可预计的经济损失[4]。传统大棚由农民依据自己的经验和简单的温度计进行监测并手动进行管理控制,很难到达预期的效果。为了使作物获得比室外生长更优的环境条件,到达优质、高产、高效的目的,人们对温室大棚的性能提出了更高的要求[5]。因此,如何方便有效地对温室大棚环境进行检测和控制,如何提高温室大棚蔬果作物生产的产量与质量水平是目前可控环境农业研究的重点。由于不同蔬菜作物的适宜温度和湿度不同,且需要稳定在一定的范围内。仅仅依靠人工管理会出现调节不及时、不准确等问题,不仅影响蔬菜正常生长,同时也会造成人力资源的浪费。因此,需要一种能对大棚温湿度检测有足够精度,并尽可能有效降低本钱的技术[6]。本文研究的蔬菜大棚温度湿度监测系统正是这种有效技术,该系统旨在以更经济的方式实现对蔬菜大棚内的温度与湿度的监测与控制,为蔬菜生长提供最有利的环境条件,从而保证蔬菜的健康生长。温室大棚技术的开展带来了良好的经济效益和社会效益,它可以提高农民收入,提高产业化水平,提高抵御自然灾害能力,延长作物生长时间,提高作物产量[7]。本文研究的大棚温度湿度监测系统利用信息传感技术和数据采集技术获得大棚内的温湿度信息并进行处理,有利于实现大棚温湿度监测的智能化与精确化,有助于提高农业大棚的自动化程度和生产效率。1.2课题的国内外研究现状与开展趋势1.2.1国外开展情况与开展趋势国外兴旺国家在20世纪50年代已经开始建造并管理温室大棚[8],上个世纪70年代末,美国、日本、荷兰等兴旺国家陆续开始应用计算机来控制温湿度。1978年,国外已经成功研制出温室环境综合控制微机系统。随着计算机技术日新月异的开展,80年代末期出现了使用计算机进行数据采集的分布式温湿度控制系统。美国是进行该项研究最早的国家之一,其开发的温室计算机控制系统可以根据具体要求,对于温度、湿度甚至光照度进行自动控制,该技术被广泛运用到日常生活、食品行业、工农业生产等各个领域。目前,美国等兴旺国家已经将计算机、遥感技术、GPS全球定位等高新技术应用到相应的研究中[9]。总体来说,国外兴旺国家的温室系统已经形成规模,并具备一定的行业标准。绝大多数温室大棚工厂均以计算机系统为核心控制,并辅助以各种各样的传感器,对温室环境进行精确控制,并且根本完全取代人工劳作,直接基于智能化的控制系统,已经在向全自动化的方向进行开展。1.2.2国内开展情况与开展趋势最初,国内对于温湿度控制系统的研究也主要表达在温室控制技术的研究上,总体来说起步较晚。自上世纪80年代以来,在引进国外先进温湿度控制技术的根底上,我国开始着手研究温室的温度、湿度和二氧化碳等单项因子控制技术。但由于引进的技术并不适合我国的国情开展,因此,国内先后出现多家公司及工程师,对国外大棚技术进行研究,并结合我国现状,对大棚控制系统进行开发,逐步推出适合我国国情,适宜我国农业工作者操作控制的系统。2000年之后,我国加大了在温湿度控制方面的研究力度。结合目前的技术现状,总体来看,相关研究工作已经逐步从简单应用的阶段向实用性、综合性、智能化的方向过渡与开展,研究的技术水平已经相当高。1.3本文主要研究内容系统完成后可以通过温湿度传感器对大棚温室内的温湿度进行测量,通过单片机对采集到的数据进行处理,并用显示模块显示出当前环境的温湿度状况,当环境温湿度超出了设定范围时,发出现场声光报警,报警持续一段时间以后发送GSM短信报警。本文主要完成的任务为:〔1〕对现有的大棚温湿度检测系统进行调研,从而确定温度和湿度的监测范围及精度,再根据调研情况设计系统总体功能方案;〔2〕根据总体功能设计方案设计温湿度检测模块电路、GSM通信模块电路与单片机模块硬件电路及其相应的软件;〔3〕制作设备,进行调试。本文将要利用单片机及GSM通讯模块、温湿度传感器,对大棚及温室的温湿度进行监控,并且将会根据温湿度传感器的工作原理,进行硬件和软件的方案设计。本文将进行基于单片机与GSM通信模块的大棚温湿度监控的设计,利用温湿度检测模块对大棚内的温度与湿度进行实时监测,制作出精度高、体积小、系统稳定、价格低廉、功能强大的温湿度检测控制系统,实现稳定、精确的温湿度检测和控制,使之能很好的应用于当代的大棚生产活动,使得人们可以更好地控制大棚的温湿度。希望能从一定程度上解决大棚温湿度检测不便的现状,普及大棚温湿度检测,增加大棚的产出,进而提高农民的收益。2系统的总体方案2.1功能概述在大棚种植过程中,温湿度对作物的生长起到了至关重要的作用,因此大棚温湿度的控制是国内外的研究热点之一。国内外已有相领先进的环境监测控制系统,而且成熟应用于大型农场。然而,这类工业级的控制系统大都比拟昂贵,而且不够简单易用,虽然性能非常好,但却不一定适应国内一些散户农民的大棚种植。而本文研究的方向那么是为散户农民提供针对小面积大棚的较为廉价高效的的温湿度监测系统,以填补这一市场空缺。本文研究的主要内容是运用单片机和温湿度采集模块等等,对温室内的温度和湿度进行实时监测与显示,当温湿度处于警报范围内时进行声光警报,并辅以GSM通信模块,在声光报警一段时间后仍未解除报警,通过GSM通信模块将温湿度相关信息发送到指定号码,以此通知相关人员进行相应的控制,使得作物得以在适宜的环境中生长。本系统所具备的功能如下:〔1〕温湿度实时采集并准确显示。通过温湿度采集模块进行温湿度的实时采集,并通过单片机对采集到的数据进行处理,最后由显示模块显示当前的温度值和湿度值。使得用户可以实时查看当时的温湿度。〔2〕通过按键更改温湿度的上下限。用户可根据不同作物在不同时期的最适宜生长环境,通过按键输入温度值和湿度值的范围并由显示器实时显示。由于作物在不同生长期所适宜的温湿度是变化的,此时调节温湿度范围可以使作物长时间处于较为理想的环境中,同时也满足了不同作物的环境需求。〔3〕将测得的值与温湿度范围进行比拟,超限时进行报警。报警模块具有两项功能,即为声光报警和GSM短信信息报警。当采集到的温度、湿度值超出设定范围时,启动报警装置进行报警,并通过发送GSM短信通知用户采取相应的措施。2.2总体设计方案简述本文的大棚温湿度监测系统是由温湿度传感器、单片机最小系统、GSM通信模块、显示模块、报警模块等等组成,通过大棚温湿度信号的采集与分析,进行声光警报及GSM短信警报,使得人们可以及时发现大棚温湿度的异状。图2.1系统设计整体框图如图2.1系统设计整体框图所示,本系统以单片机与GSM模块、温湿度传感器为核心,主要由温湿度信号采集电路、GSM通信模块、LCD显示电路、时钟复位电路、电源电路、按键电路、报警电路组成。系统通过温湿度传感器采集大棚的温度与湿度,然后单片机对数据进行处理,将实时测得的数据显示在显示模块上,并将采集的数据与预先设置的适宜温湿度的范围进行比照,假设不在范围内,那么启动报警模块,进行声光警报,持续报警一段时间,当系统处于报警状态一定时间后仍未解除报警,通过GSM通信模块将当时的温湿度发送到指定号码,从而实现了大棚温湿度的检测,显示与报警。2.3方案选型2.3.1控制器选型〔1〕8051单片机8051是一种由英特尔公司制造的8位元的单芯片微控制器,属于MCS-51单芯片的一种。8051单芯片是同步式的顺序逻辑系统,整个系统的工作完全是依赖系统内部的时脉信号,用以来产生各种动作周期及同步信号。在8051单片机中已内建时钟产生器,在使用时只需接上石英晶体谐振器〔或其它振荡子〕及电容,就可以让系统产生正确的时钟信号。〔2〕STC89C52RC单片机STC89C52是由宏晶公司生产的一种低功耗高性能的8位微控制器,指令代码完全兼容传统的8051,存储器为8KFlash存储器,内核为MCS-51,拥有许多传统51单片机所不具备的功能,是一款增强型的8051单片机。它的标准功能有:8KFlashROM,512ByteRAM,内置4KBEEPROM,以及32位I/O口线,看门狗定时器,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构等等,而且具有ISP〔在系统可编程〕/IAP〔在应用可编程〕功能,可极大的方便下载程序。另外STC89C52可降至0HZ静态逻辑操作,支持2种节电模式。空闲模式下,CPU停止工作,但是允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。结合本系统的需求,与8051单片机相比,STC89C52RC功能更强大,下载程序更为方便,价格也相当廉价。由于该芯片应用广泛,学习资料也可以更容易地获得,所以本文选用的STC89C52RC芯片。温湿度传感器选型〔1〕方案一采用独立温度传感器与湿度传感器常用的温度传感器有热电偶与热电阻,常用的湿度传感器有氯化锂湿度传感器、碳湿敏元件、氧化铝湿度计、陶瓷湿度传感器等等,采用这些传感器时,通常是将4-20mA模拟信号通过AD转换电路转换为数字信号进行温湿度的采集与处理,再通过单片机进行判断与相关的动作。然而,这些传感器价格较高,接线复杂,对环境要求也较高。譬如常用的温度传感器,热电偶精度不高,而热电阻虽然精度高,体积小,但是容易造成热负载造成测量不准;湿敏传感器那么对供电电压要求很高,供电电压假设有偏差,对湿度的检测会造成很大的影响。〔2〕方案二采用单片智能化湿度/温度传感器常用的单片智能化温湿度传感器有DHT11及SHT11等等,由于本系统的目的为监测大棚的温湿度,精度无需太高,因而DHT11数字温湿度传感器就足够本系统的使用。DHT11内含一个电阻式湿度传感器、一个NTC温度传感器以及一个8位单片机,采用专用的数字模块进行温湿度采集,相对采用独立的温湿度传感器而言,具有极高的可靠性与稳定性。每一只DHT11在出厂前都经过了精确的校准,而校准系数会被编成相应的程序存入校准存储器OTP中,从而在测量过程中传感器会利用校准系数进行自动校准。DHT11采用单线制串行接口,使得系统集成更为便捷,同时它具有反响快、抗干扰能力强、性价比高的特点,使得它更适合本系统使用,超小的体积与极低的功耗,更是独立传感器所无法相比的。由于本文采用单片机为控制器,为了节约本钱,选用单片智能化温湿度传感器DHT11可以省去温度、湿度两个传感器及相应的AD转换电路,使系统更为简单稳定高效,所以本文选用DHT11温湿度传感器采集温湿度信号。2.3.3通信模块选型〔1〕SIEMENSTC35I通信模块TC35I是德国西门子公司的一款支持900/1800MHZ双频的高度集成的GSM模块。TC35IGSM模块通过接口连接器和天线连接器分别连接SIM卡读卡器和天线,是一种支持中文短信息的工业级GSM模块,支持EGSM900和GSM1800双频段,可传输语音及数据信号。TC35I的数据接口通过AT命令可双向传输指令和数据,可选波特率为300b/s~115kb/s,自动波特率为1.2kb/s~115kb/s。它支持Text和PDU格式的SMS,支持通过AT命令或关断信号实现重启和故障恢复。〔2〕HUAWEIGTM900B通信模块华为GTM900B是GTM900C模块的老版本,广泛应用于远程监控、无线公共、无线POS终端等领域,是一款双频、高集成度的GSM/GPRS模块。该模块体积小,重量轻,功耗低,使用简单,易于集成。同时GTM900B软件、硬件兼容TC35I、MC39I,用户可以花更短的时间更少的本钱开发新的产品。本文仅使用GSM通信模块发送短信,华为GTM900B比TC35I价格低很多,在这两种通信模块都能满足本系统的情况下,为了使系统更为经济,本文采用华为GTM900B。显示模块选型〔1〕采用LED数码管显示。LED数码管是由多个发光二极管封装在一起“8〞字型的器件,通过对这七个条形发光二极管通以高/低电平使得相应的发光二极管暗灭,显示出相应的字形。LED数码管拥有两种驱动方式,静态驱动时编程简单,LED亮度高,但是需要占用大量I/O口,动态显示应用广泛,但一般需用驱动芯片进行驱动显示。〔2〕采用LCD液晶显示器显示。LCD1602是指可以显示两行,每行16个字符的液晶模块。常用在袖珍式仪表和低功耗应用系统中,它具有功耗低、体积小、可视面积大、画面好、抗干扰能力强、显示内容丰富且美观的特点,可以节省软件中断资源。相比以上两种方案,由于本系统显示模块需要使用的字符较多,假设用LED数码管需要较多I/O口,且电路较为复杂,所以本文使用LCD1602显示器,相比于采用LED数码管,具有电路简单,画面清晰易懂的优点。3系统硬件局部设计如图3.1所示,本文设计的大棚温湿度检测系统,以STC89C52RC单片机为控制器,以数字式温湿度传感器DHT11作为温湿度检测模块,与华为GSM通信模块有机结合,构成一个温湿度实时检测报警系统。本系统使用四个独立按键实现温湿度的阈值设置等功能,再通过温湿度检测模块〔DHT11〕实时检测大棚内的温湿度,并由LCD1602液晶屏实时显示当前温湿度。当温湿度超过设定范围时,系统进行声光报警。当系统处于报警状态一定时间后仍未解除报警,那么通过GSM模块将报警信息发至负责人,实现远程报警。图3.1系统详细功能框图3.1单片机模块硬件电路设计3.1.1STC89C52RC单片机简介单片机是一种具有强大数据处理能力的超大规模的集成电路芯片,其内部是由中央处理器〔CPU〕、随机存储器〔RAM〕、只读存储器〔ROM〕、多种I/O口和中断系统、定时器/计数器等等组成,局部功能强大的单片机可能还具有显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器电路等。由于其强大的计算能力、较好的稳定性、较低的价格,在工业控制领域得到了广泛应用。国内使用最多的单片机是INTEL公司的51系列的单片机,它是一种最为根底的单片机,它具有品种齐全、兼容性强、软件资源丰富、性价比拟高的特点,在国内得到了最为广泛的应用。本系统使用的STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,它完全兼容8051单片机的代码,可将8051的代码直接应用与该芯片。它拥有8K字节的用户应用程序空间,512字节片内RAM,32个通用I/O口,看门狗定时器,内置4KBEEPROM,3个16位定时器/计数器,4个外部中断,此外,它无需专用编程器,无需专用仿真器,可通过串口〔RxD/P3.0,TxD/P3.1〕直接下载用户程序,为本系统的设计与调试提供了巨大的方便。图3.2STC89C52RC引脚图图3.2为STC89C52RC引脚图,其功能说明如下:引脚40为VCC电源正脚,引脚20为电源电压接地脚VSS。P0端口〔P0.0~P0.7,39~32引脚〕:P0口是一个漏极开路的8位双向I/O口。P0口作为I/O口输出的时候,输出低电平为0,输出高电平为高组态而非5V,相当于悬空状态。也就是说P0口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻〔一电阻连接到VCC〕,由电源通过这个上拉电阻给负载提供电流。P1端口〔P1.0~P1.7,1~8引脚〕:P1口是一个带内部上拉电阻的8位双向I/O口。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入〔P1.0/T2〕和定时器/计数器2的触发输入〔P1.1/T2EX〕。P2端口〔P2.0~P2.7,21~28引脚〕:P2口是一个带内部上拉电阻的8位双向I/O端口。3.1.2单片机模块最小系统硬件电路的设计图3.3最小系统硬件电路最小系统如图3.3所示,其中复位电路与晶振电路的硬件设计详细介绍如下所示。〔1〕复位电路的硬件设计单片机运行程序时,都是从地址0000H开始的,所以进入系统时必须对CPU进行复位,此外,当程序运行时由于程序错误或者操作失误导致系统进入死锁状态,也需要通过复位使系统恢复正常。在RST引脚上〔第9引脚〕加一个持续时间为24个振荡周期的高电平,便可使单片机成功复位,本文采用按键复位,复位电路如图3.4所示。当电源刚接通时,由于电容两端电压不能突变,所以RST端维持高电平一段时间,只要电容充电时间不超过1ms,就可以对单片机进行通电自动复位,即一接通电源便复位。同时,在正常使用过程中,需要复位时按下按钮,那么VCC的+5V电平就会直接加到RST端。由于正常按下按钮时会保持接通达数十毫秒,完全能够满足复位的时间要求的24个机器周期,所以便能直接复位。图3.4复位电路〔2〕晶振电路的硬件设计图3.5晶振电路STC89C52RC单片机工作时需要时钟电路产生控制信号,单片机内部的各个功能部件的运行都是以时钟控制信号为基准,来有序工作的。因此时钟频率直接影响单片机的速度,本系统采用内部时钟方式,如图3.5所示,将XTAL1与XTAL2跨接石英晶体和微调电容,构成了一个稳定的自激振荡器。3.2温湿度检测模块硬件电路设计3.2.1DHT11简介DHT11数字温湿度传感器是一款拥有数字模块采集技术和温湿度传感技术的温湿度复合传感器,可靠且稳定。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。每个传感器都经过极为精确地校准。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。产品为4针单排引脚封装,单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其在各类领域中都得到了广泛的应用。它的技术参数为:供电电压范围为3.3~5.5VDC,输出信号为单总线数字信号,湿度测量范围为20-90%RH,精度±5%RH,温度测量范围为0~50℃,精度±2℃,湿度分辨率为1%,温度分辨率为1℃,长期稳定性为<±1%RH/年。DHT11温湿度传感器引脚说明如下所示:脚1为电源正脚〔VDD〕;脚4为接地脚〔GND〕。脚2为单总线形式串行数据线脚;脚3为空脚,悬空即可。由于连接线长度短于20米时需要用5K上拉电阻,大于20米时根据实际情况使用适宜的上拉电阻,而在本系统连线长度仅为几厘米,所以采用连接5k上拉电阻的方案。DHT11的供电电压为3~5.5V。传感器上电后,需要等待1s,来越过不稳定状态。在此期间无需发送任何指令。电源引脚〔VDD,GND〕之间可增加一个100nF的电容,到达去耦滤波的目的。3.2.2DHT11硬件电路设计DHT11与单片机接线图如图3.6所示,DHT11脚1连接电源正脚VCC。脚2为穿心数据线脚,本文中,DHT11通讯口为P2.2,所以DHT11脚2连接P2.2口。脚3为空脚,无需连接悬空即可。脚4为接地脚,所以连接地。查DHT11产品说明书,查得DHT11连接线短于20m时,需要用5K的上拉电阻,由于本系统中DHT11与单片机距离短于20m,所以按要求安装5K的上拉电阻。按图3.6连接,单片机便能与DHT11成功连接通讯。图3.6DHT11硬件电路3.3GSM通讯模块硬件电路设计3.3.1GSM开发板简介SUNRISINGGSM/GPRS开发板是一款内嵌TCP/IP协议的GPRS模块,使用方便,简单易学。单片机接口电平自动适应,无需设置,解决了5v单片机和3.3v单片机等的连接问题,兼容性极好;同时,使用单片机调试的时候可以同时连接电脑,无需跳线设置,便可使用电脑的串口调试助手实时的监测单片机和模块通信的数据,可以很方便地进行调试;其GPRS内嵌TCP/IP协议,GPRS上网只需几条简单指令;它使用了插拔式SIM卡座,带SIM卡保护电路,同时支持单片机控制启动和关机,支持单片机检测在线状态;GSM开发板有电源指示灯、信号指示灯,并留有语音接口,有音频处理电路,可以后期进行功能扩展;它采用工业级低压差芯片,大容量电容和合理的布线,拥有较高的可靠性。3.3.2HUAWEI_GTM900通信模块简介华为GTM900B是GTM900C模块的老版本,广泛应用于远程监控、无线公话、无线POS终端等领域,是一款900/1800MHZ双频、高集成度的GSM/GPRS模块。该模块体积小、重量轻、功耗低、使用简单、易于集成。同时GTM900B支持标准的AT命令及增强AT命令,软件、硬件兼容TC35I、MC39I,用户可以花更短的时间更少的本钱开发新的产品。GTM900-B使用AT命令集,通过UART接口与外部MCU通信,主要实现无线发送和接收、基带处理、音频处理等功能。键盘、LCD等外部设备由外部MCU进行控制,具有接口简单的特点,使得用户能利用各种键盘和LCD开发各种类型的终端产品。GSM开发板引脚说明如下所示:〔1〕单片机通信只需要链接GND/TXD/RXD,其中电平自适应。〔2〕+引脚为电平匹配引脚,根据使用单片机引脚是否有上拉来选择使用,一般不连接。〔3〕其中IGT是启动控制脚。〔4〕RESET是复位脚。〔5〕RI是来电信号引脚。3.3.3GSM通信模块硬件电路设计华为GTM900-B无线模块采用串口与单片机进行通信(可以采用全功能串口也可以采用三线制:TXD,RXD和GND),接上1张SIM卡,通过AT指令集,就可以拨、听,收发送短信。如图3.7所示,将单片机的串口与开发板的串口相连接,便可使单片机与GSM开发板建立通信。开发板尾部有八根排针,在其旁边丝印了一个小表格,上面标注着TXD、RXD、GND,用杜邦线将其与单片机相应的TXD、RXD、GND连接,便可建立通信。图3.7GSM通信电路硬件设计3.4LCD显示模块硬件电路设计3.4.1LCD1602简介LCD1602是指可以显示两行,每行16个字符的液晶模块。它由假设干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。常用在袖珍式仪表和低功耗应用系统中,它具有功耗低、体积小、可视面积大,画面好,抗干扰能力强、显示内容丰富且美观的特点。图3.8LCD1602引脚图如图3.8所示,LCD1602引脚接口说明如下:第1脚:VSS为电源地。第2脚:VDD为电源正。第3脚:VL为LCD1602的比照度调整端,接正电源时比照度最弱,接地时比照度最高,比照度过高时会产生影子,使用时可以通过一个10K的电位器调整比照度。第4脚:RS为存放器选择,高电平1时选择数据存放器、低电平0时选择指令存放器。第5脚:R/W为读写信号线,高电平1时进行读操作,低电平0时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.4.2LCD1602硬件电路设计图3.9LCD1602硬件电路设计如图3.9所示,P0口接上拉电阻,第1脚接地,第二脚接电源正,第三脚串接2K电阻接电源正,第四脚接P2.7,第5脚接地,第六脚接P2.6,P0.0~P0.7接LCD16028位双向数据线第7~14脚,第15脚接电源正,第16脚接电源负,LCD1602便能正常工作。3.5按键与报警硬件电路设计3.5.1按键硬件电路设计〔1〕按键原理键盘从结构上分为独立式键盘与矩阵式键盘。一般按键较少时采用独立式键盘,按键较多时采用矩阵式键盘。在由单片机组成的测控系统及智能化仪器中,用的最多的是独立式键盘。这种键盘具有硬件与软件相对简单的特点,其缺点是按键数量较多时,要占用大量I/O口。当按键没按下时,CPU对应的I/O接口由于内部有上拉电阻,其输入为高电平;当某键被按下后,对应的I/O接口变为低电平。只要在程序中判断I/O接口的状态,即可知道哪个键处于闭合状态。由于本系统只需要用到4个按键,按键数量少,为了更方便地编程与更简单有效的电路,本文采用独立按键方案,即将四个按钮连接四个I/O口,按钮的另一端接地。图3.10按键电路硬件设计如图3.10所示,按键S1,S2,S3,S4一端接地,另一端分别接单片机STC89C52RC的P1.0,P1.2,P1.3,P1.4口。其中,S1为菜单及切换键,S2为数值加键,S3为返回键,S4为数值减键。当系统运行时按下S1,那么进入设置温湿度阈值状态,此时假设继续按S1,那么光标会在4个限值之间循环切换,当光标移动到一个限值上时,按下S2那么该限值加一,按下S4那么该限值减一,继续按S1可更改光标位置,全部设置完成后按下S3可退出设置,此时进入运行状态。3.5.2报警硬件电路设计当温湿度超过所设定温湿度阈值范围时,系统进行声光报警,同时相应的指示灯指示出四种不同的报警原因,以便用户迅速发现问题。本系统有四种报警状态,分别为温度低于温度下限,温度高于温度上限,湿度低于湿度下限,湿度高于湿度上限,报警时,设置四盏不同的LED灯代表四种报警状态,因此需要四个I/O口来分别控制四盏灯,以及两个个I/O口来控制蜂鸣器与报警灯。图3.11报警电路硬件设计如图3.11所示,四个LED〔LED1,LED2,LED3,LED4〕阳极接电源,阴极分别连接1K限流电阻后连接单片机的P3.4,P3.2,P3.7,P3.6。通过软件实现报警功能,设定温度范围为温度下限~温度上限,湿度范围为湿度下限~湿度上限。当温度低于温度下限时,P3.4=0,LED1点亮;当温度高于温度上限时,P3.7=0,LED3点亮;当湿度低于湿度下限时,P3.2=0,LED2点亮;当湿度高于湿度上限时,P3.6=0,LED4点亮。而不管何种情况,只要温湿度不在设定范围内,都会进行声光报警,蜂鸣器发出滴滴声,报警灯会闪烁,即P2.0=0,8550PNP三极管接通,蜂鸣器接通发出声音,可通过软件间断使P2.0=0,使蜂鸣器发出滴滴声,间断使P1.1=0,使报警灯闪烁。4系统软件设计4.1程序设计语言与软件开发环境简介由于使用汇编语言编本系统程序较为繁杂,且不易移植可读性差,所以使用KeilμVision4进行编程,编程语言为C语言。KeilC51是美国KeilSoftware公司出品的兼容51系列单片机的C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C语言编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔uVision〕将这些局部组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍,Keil的优点如下所示:〔1〕KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。〔2〕与汇编相比,C语言具有可读性强、结构性强、可维护性强、更易学的特点,因而应用更为广泛。使用过汇编语言后再使用C来开发,对此体会更加深刻。4.2系统软件总体设计本系统主要功能为:
〔1〕温湿度实时、准确的显示。通过单总线数字式温湿度传感器进行温湿度采集,再通过单片机对采集到的数据进行处理,由液晶显示屏对当前的温度值和湿度值进行显示。〔2〕键盘输入。操作人员可根据不同作物在不同时期的最适宜生长环境,将温度范围和湿度范围由键盘输入,使得系统更灵活,同时也满足了不同用户的需求。〔3〕超限报警功能。报警模块具有两项功能,即为声光报警和GSM短信信息报警。当采集到的温度、湿度值超过设定范围时,立即启动声光报警。〔4〕温湿度控制功能。通过将测得的温湿度与设定的范围进行比拟,当温湿度值某一值超出范围时,相应的LED灯亮,可同时通过并接继电器,可以控制其它设备进而控制温湿度。系统总流程图如图4.1所示,当系统通电后,先将LCD1602等初始化,然后与GSM模块进行联机,屡次尝试联机,直到握手成功。然后再设置文本短信通信方式,设置成功后进入主循环。主循环第一步为读取DHT11的温湿度数值并显示,再检测按键,假设按键1按下那么进入设置模式,来进行对温湿度阈值的修改。假设未进入设置或者设置成功后,那么将测得的温湿度与阈值相比拟,假设超出范围那么进行声光警报,声光警报后一段时间仍未解除报警那么发送GSM短信警报。图4.1系统总流程图voidsystem() //系统功能实现函数{ dht11_got(); //从DHT11中读取数据 tmp_do(); //数据处理 tmprh_display(); //LCD1602显示}主函数如下所示intmain(void){ uint8aj=0; //按键检测uint8wz=0; //光标位置uint8js1=0,js2=0; //超限计数 RW=0;lcd_ini(); Serial_Init();//初始化串口 CLR_Buf();//去除缓存内容 Delay_ms(Delay_Time); Send_ASCII("AT");//发送联机指令 while(!Hand("OK"))//判断是否握手成功,如果不成功延时一会,再发送AT握手指令 { Send_ASCII("AT");//发送联机指令 lcd_str(0,0,"initgsm"); Delay_ms(Delay_Time);//延时 lcd_str(0,0,"initgsm*"); Delay_ms(Delay_Time);//延时 } CLR_Buf();//去除缓存内容 Delay_ms(Delay_Time);//延时 Send_ASCII("AT+CMGF=1");//文本(TEXT)模式 while(!Hand("OK")) //等待设置成功 { Send_ASCII("AT+CMGF=1");//文本(TEXT)模式 lcd_str(0,0,"initgsm*"); Delay_ms(Delay_Time);//延时 lcd_str(0,0,"initgsm**"); Delay_ms(Delay_Time);//延时 } CLR_Buf();//去除缓存内容 Delay_ms(Delay_Time);//延时 Delay_ms(Delay_Time);//延时 lcd_order(0x01);while(1) { system();delay(12000); aj=keyscan(); if(aj==1) //按键1按下时,进入设置状态,此时可以更改温湿度范围 { …… }if(TH_TMP>w2)//当温湿度超限时,启动声光报警,此处四种超限对应四种led指示灯{d3=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}elseif(TH_TMP<w1) {d1=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d1=d3=1;js1=0;}if(TH_RH>s2) {d4=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}elseif(TH_RH<s1) {d2=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d2=d4=1;js2=0;} js1++;js2++; if(js1>50||js2>50) //温湿度长时间超限时,启动GSM报警 { js1=0; js2=0; if(TH_TMP>w2||TH_TMP<w1||TH_RH>s2||TH_RH<s1) { ……………… ……………… } } } }4.3温湿度采集模块软件设计DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,具有极高的可靠性与稳定性。传感器拥有一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。产品为4针单排引脚封装,单线制串行接口,使系统集成变得简易快捷。它的串行接口〔单线双向〕用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数局部和整数局部,一次完整的数据传输为40bit,高位先出。它的数据格式为8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验。其中数据传送正确时校验数据为“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据〞所得结果的末8位[10]。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取局部数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后换到低速模式。通信过程如图4.2示。图4.2DHT11通信过程总时序图如图4.3所示,总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。流程图如图4.4所示。图4.3DHT11通信过程详细时序图图4.4DHT11通信过程流程图总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1。格式见下列图4.4示。如果读取响应信号为高电平,那么DHT11没有响应,请检查线路是否连接正常。当最后1bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图4.5所示。图4.5DHT11传输信号时数字0表示方法数字1信号表示方法如图4.6所示。图4.6DHT11传输信号时数字1表示方法函数名:dht11_ini。返回值:ans,为1时是指收到DHT11的应答信号,为0时是指未收到DHT11的应答信号。功能:向温湿度传感器发送开始信号。uint8dht11_ini(){bitans;DHT11=1; //主机拉高电平delay(1);DHT11=0; //主机发送开始信号delay(1000);DHT11=1; //拉高并延时等待delay(3);if(!DHT11)//接收应答信号 ans=1; //接收到应答信号时为1elseans=0;while(!DHT11); //等待应答完成returnans;}函数名:dht11_read返回值:date,从DHT11中读出的数据功能:从DHT11中读一个字节的数据uint8dht11_read(){uint8i,date=0;DHT11=1;TMOD=0X01;TH0=0X00;while(DHT11);//等待从机发送80us的高电平完成for(i=0;i<8;i++){ TL0=0X00; //定时器初使化 while(!DHT11);//等待从机发送50us的低电平完成 TR0=1; //开启定时器 while(DHT11); //等待从机发送的高电平完成 TR0=0; //关启定时器 date<<=1; //数据左移以便接收数据 if(TL0>35) //拫据高电平的时间来判断从机发送的是0还是1 date|=0x01;//接收数据 }returndate;}函数名:dht11_got功能:从DHT11中读温度的整小数,湿度的整小数,校验码voiddht11_got(){if(dht11_ini()) //发送开始信号 { TH_RH=dht11_read(); //湿度的整数 TL_RH=dht11_read(); //湿度的小数 TH_TMP=dht11_read(); //温度的整数 TL_TMP=dht11_read(); //温度的小数 CRC=dht11_read(); //读较验码 }}4.4GSM通讯模块软件设计华为GTM900-B无线模块是一款两频段900/1800MHZ高度集成的GSM/GPRS无线模块,内嵌TCP/IP协议模块,使用简单,易于集成。它支持标准的AT命令及增强AT命令,提供丰富的语音和数据业务等功能,是高速数据传输等各种应用的理想解决方案,在远程监控和无线公话以及无线POS终端等领域您都能看到GTM900B无线模块在发挥作用。AT指令集是从终端设备〔TerminalEquipment,TE)或数据终端设备〔DataTerminalEquipment,DTE)向终端适配器(TerminalAdapter,TA)或数据电路终端设备(DataCircuitTerminalEquipment,DCE)发送的。其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度〔包括最后的空字符〕。每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。标准AT命令如表1所示。表1常用AT命令[11]AT命令功能AT+CMGC发出一条短消息命令AT+CMGD删除SIM卡内存的短消息AT+CMGF选择短消息信息格式:0-PDU;1-文本AT+CMGL列出SIM卡中的短消息AT+CMGR读取短消息AT+CMGS发送短消息AT+CMGW向SIM内存中写入待发的短消息AT+CMSS发送存储的消息AT+CNMI显示新收到的短消息AT+CPMS选择短消息内存AT+CSCA短消息中心地址AT+CSCB选择蜂窝播送消息AT+CSMP设置短消息文本模式参数AT+CSMS选择短消息效劳其中对短消息的控制共有三种模式:BlockMode,基于AT命令的PDUMode,基于AT命令的TextMode。由于本系统采用短信通知的方式,仅仅使用了发短信通知,所以本文着重介绍一下发送消息:AT+CMGSif(TH_TMP>w2||TH_TMP<w1||TH_RH>s2||TH_RH<s1) { fm=1;d0=1; lcd_order(0x01); Serial_Init();//初始化串口 CLR_Buf();//去除缓存内容 Delay_ms(Delay_Time);//延时 while(!Hand(">")) { Delay_ms(Delay_Time);//延时 } CLR_Buf();//去除缓存内容 Delay_ms(Delay_Time);//延时 lcd_str(0,0,"Sending..."); neirong(); while(!Hand("OK")) { Delay_ms(Delay_Time);//延时 } CLR_Buf();//去除缓存内容 lcd_order(0x01); lcd_str(0,0,"SendingOK"); fm=0;Delay_ms(20);fm=1;Delay_ms(20); Delay_ms(20);Delay_ms(20);Delay_ms(20);Delay_ms(20);Delay_ms(20);Delay_ms(20); }4.5LCD1602显示模块软件设计LCD1602是指可以显示两行,每行16个字符的液晶模块。它具有功耗低、体积小、可视面积大,画面好,抗干扰能力强,显示内容丰富且美观的特点。1602液晶模块内部的控制器共有11条控制指令,1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。常用的LCD1602指令有清显示、显示开关控制,光标返回及光标或字符移位等等的命令LCD1602控制指令如表2所示,其中,1代表高电平,0代表低电平:表2LCD1602控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM〕10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平那么无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF为忙标志位,高电平表示忙,低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表见表3:表3与HD44780相兼容的芯片时序表读状态输入RS=L,R/W=H,E=H输出D0—D7=状态字写指令输入RS=L,R/W=L,D0—D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0—D7=数据写数据输入RS=H,R/W=L,D0—D7=数据,E=高脉冲输出无1602LCD的一般初始化〔复位〕过程:延时15mS写指令38H〔不检测忙信号〕延时5mS写指令38H〔不检测忙信号〕延时5mS写指令38H〔不检测忙信号〕以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置函数名:lcd_ini功能:LCD1602的初始化voidlcd_ini(){ lcd_order(0x38); //设置1602的显示光标功能 delay(150); lcd_order(0x0c); //显示开及光标设置 delay(150); lcd_order(0x06); //显示光标移动设置 delay(150); lcd_order(0x01); //显示清屏 delay(150);}函数名:lcd_order行参:date要定入的指令功能:向LCD1602的写1个指令voidlcd_order(uint8date){RS=0; //选择写指令//RW=0;EN_LCD=0; //使能初使化P0=date; //发送指令EN_LCD=1; //开使能delay(300); //延时EN_LCD=0; //关使能}函数名:lcd_data行参:date要定入的数据功能:向LCD1602的写1个数据voidlcd_data(uint8date){RS=1; //选择写数据//RW=0;EN_LCD=0; //使能初使化P0=date; //发送数据EN_LCD=1; //开使能delay(300); //延时EN_LCD=0; //关使能}函数名:tmprh_display()功能:温湿度显示处理voidtmprh_display(){ uint8i; lcd_order(0x80); for(i=0;i<16;i++) lcd_data(dis1[i]); lcd_order(0xc0); for(i=0;i<16;i++) lcd_data(dis2[i]);}voidlcd_str(uint8hang,uint8lie,uint8*s){ if(hang==0) { lcd_order(0x80+lie); } else { lcd_order(0xc0+lie); } while(*s) { lcd_data(*s); //写入一个数据 s++; //数据指针加1 }}4.6键盘软件设计由于通常按键所用的开关是机械开关,当开关闭合、断开时并不能马上稳定地接通和断开,而是在闭合与断开瞬间均伴随有一连串的抖动。为了确保CPU对键的一次闭合仅做一次处理,必须要在程序或硬件上进行防抖处理。为节省硬件,通常在单片机系统中,一般不采用硬件方法消除键的抖动,而是用软件消抖方法。常用的软件消抖法一般为测得按键闭合后延时5-10ms,让前延抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,那么确认真正有键按下。当测得按键释放后,也要延时5-10ms,待后延抖动消失后才转入该键处理程序。本文使用常用的软件消抖法。例如按键1的检测,进入按键检测程序时,首先检测按键1是否被按下,假设检测到按键1已被按下,那么延时一定时间后再次检测按键1是否被按下,假设检测到按键1确实被按下时,那么等待按键1松开后,返回值1,即返回按键1被按下这一信息。按键1检测流程图请见图4.7。图4.7按键1检测流程图uint8keyscan() //按键扫描程序 { if(k1==0) //检测按键1是否被按下 { Delay_ms(5); //延时 if(k1==0) //再次检测按键1是否被按下{while(k1==0); //按键1松开后返回值1return1; }} elseif(k2==0) //检测按键2是否被按下 {…………} elseif(k3==0) //检测按键3是否被按下 {…………} elseif(k4==0) //检测按键4是否被按下 {…………}elsereturn0;}4.7报警软件设计当温湿度超过设定的温湿度阈值范围时,系统进行声光报警,同时相应的指示灯指示出四种不同的报警原因,以便用户迅速发现问题。本系统有四种报警状态,分别为温度低于温度下限,温度高于温度上限,湿度低于湿度下限,湿度高于湿度上限,报警时,设置四盏不同的LED灯代表四种报警状态,因此需要四个I/O口来分别控制四盏灯,以及两个I/O口来控制蜂鸣器与报警灯。如图4.8所示,系统读取DHT11传感器的温湿度数据后,将温度与湿度与温湿度的上下限进行比拟,当温度低于温度下限时,P3.4=0,LED1点亮;当温度高于温度上限时,P3.7=0,LED3点亮;当湿度低于湿度下限时,P3.2=0,LED2点亮;当湿度高于湿度上限时,P3.6=0,LED4点亮。而不管何种情况,只要温湿度不在设定范围内,系统都会进行声光报警,即P2.0=0,蜂鸣器接通发出声音,P1.1=0,LED0亮。可通过软件延时间断使P2.0=0,P1.1=0,使蜂鸣器发出滴滴声,LED0闪烁。〔LED1,LED2,LED3,LED4分别由P3.4,P3.2,P3.7,P3.6控制〕图4.8声光报警程序流程图if(TH_TMP>w2) //温度大于温度上限时{ d3=0;d0=0; //LED3亮fm=0; //蜂鸣器响Delay_ms(20); //延时,蜂鸣器继续响d0=1;fm=1; //蜂鸣器关Delay_ms(20);}elseif(TH_TMP<w1) {d1=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d1=d3=1;js1=0;//如果温度在范围内,那么LED1,LED3灭,报警计数js1清零if(TH_RH>s2) //湿度大于湿度上限{d4=0;d0=0;fm=0; //LED4亮,蜂鸣器响Delay_ms(20); //延时,蜂鸣器继续响d0=1;fm=1; //关蜂鸣器Delay_ms(20);}elseif(TH_RH<s1) {d2=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d2=d4=1;js2=0;} //如果湿度在范围内,那么LED2,LED4灭,报警计数js2清零5系统调试及运行5.1硬件调试在系统原理图完成后,按原理图焊接电路板,并连接GSM通信模块。通电前认真检查电路有无错误,对照电路图,一个模块一个模块地检查。由于之前焊接的时候一边焊接一边检查,及时在焊接的时候纠正错误,所以此时硬件电路完全和原理图一致,没有发现任何错误。然后着重检查三极管极性与二极管方向是否接反,芯片引脚是否接错,轻轻拔一下器件看看是否牢固,没有发现任何问题。然后用万用表测量电源正与电源负是否短路,一切正常。但是最后在安装铜柱的时候,发现由于板子较小,一开始布局的时候没有考虑周全,发现有一个铜柱安装时会与一个电阻挤到一起,无法很好地安装,但此时电路已不方便修改,只能吸取教训,以后焊接之前要考虑好布局。在确定电路不短路了以后,尝试通电运行,没有发现冒烟,声光等等的异常问题,所有功能正常,未发现任何问题。但是在屡次测试运行之后,发现LCD1602经常出现亮度忽明忽暗,整个系统会突然重启的问题。于是我先检查电路有无虚焊问题,有无元器件松动问题,有无铜丝相互短路的问题。最后发现这些都没有问题,但是在一次偶然的调试过程中,发现扭动USB供电线的时候会直接造成LCD1602的通断电,最后发现该USB供电线质量问题,更换USB供电线即可。在最后进行GSM通信调试时,发现由于自己和周围的同学都是小的SIM卡,无法将其安装在GSM模块上,于是在初期调试的时候只能用小卡直接按在SIM卡槽的金手指上,并且按住不动,再进行调试。但是为了能够更好地演示,最后购置了一张大卡进行调试与演示。5.2运行结果〔1〕大棚温湿度检测系统温湿度的采集与显示展示如图5.1所示,本系统主要硬件由主电路板、GSM模块、USB电源线、DC直流电源线组成。其中主电路由单片机最小系统、DHT11温湿度传感器、LCD1602液晶显示、声光报警系统、按键等等组成。图5.1大棚温湿度监测系统总体展示首先将SIM卡插入GSM模块SIM卡槽中,然后接通GSM模块电源,接通后GSM模块红色电源指示灯常亮,黄色信号指示灯灭。此时按下GSM模块复位按键,GSM模块重新启动,此时黄色指示灯常亮。启动完成后开始搜索信号,同时黄色指示灯每一秒闪一下,待GSM模块成功搜到信号并成功接入GSM网络后,黄色指示灯灭3s闪75ms,此时表示接入网络成功。假设遇到黄色指示灯一直每一秒闪烁一次时,此时应检查SIM卡是否接反。GSM模块如图5.2所示。图5.2GSM模块然后接通主电路板电源,接通后主电路板会与GSM模块进行联机,并设置GSM模块为文本短信工作方式。联机成功后会显示“initgsm**〞,设置文本短信工作方式成功后会清屏进入温湿度实时检测与显示阶段。联机成功画面如图5.3所示。图5.3主电路与GSM模块联机成功时LCD1602显示内容进入温湿度实时检查与显示阶段时,DHT11会周期性检测大棚的温度与湿度,并由LCD1602实时显示。如图5.4所示,LCD1602显示内容的第一行为“#RH**:56./40-60〞,其中RH是指湿度,56为DHT11实时测得的湿度,40-60是指湿度的阈值。而“#TE**:31./20-35〞的TE是指温度,31这一数值为DHT11实时测得的温度,而20-35为温度的阈值。此时可以通过按下菜单/切换按键进入温湿度阈值的设置,按下菜单/切换按键可以更改温湿度的上下限值,如图5.4所示,此时按下数值加或数值减,可对湿度的上限进行更改,按下返回键可以退出更改。图5.4温湿度阈值设置界面〔2〕现场警报如图5.5所示,此时温度超过温度上限,系统进入声光报警状态。LED0闪烁,蜂鸣器滴滴响,同时与温度上限对应的LED3常亮,指出报警原因为温度超过上限。图5.5现场警报画面〔3〕远程报警当现场报警一段时间后,温湿度仍然不在设置阈值内时,启动GSM报警。系统发送短信到指定号码,首先LCD1602会显示指定的号码。如图5.6所示。图5.4系统准备发送短信时界面如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版石灰石供应合同模板
- 二零二五年度应急管理及救援装备租赁合同3篇
- 2025年度人工智能专利池共享与许可合同3篇
- 2025年度城市公共交通设施建设合同规范3篇
- 二零二四年商业地产项目新型业态招商代理服务合同样本3篇
- 年度芳香除臭化学品:空气清新剂产业分析报告
- 2025年新型材料现货购销合同标准范本3篇
- 2024-2025学年高中历史第二单元古希腊和古罗马的政治制度单元总结学案含解析岳麓版必修1
- 2025年度校园配送服务食品安全快速检测质量管理体系建设合同3篇
- 2025年度人工智能算法工程师保密协议及知识产权保护合同3篇
- 寺庙祈福活动方案(共6篇)
- 2025年病案编码员资格证试题库(含答案)
- 企业财务三年战略规划
- 提高脓毒性休克患者1h集束化措施落实率
- 山东省济南市天桥区2024-2025学年八年级数学上学期期中考试试题
- 主播mcn合同模板
- 新疆2024年中考数学试卷(含答案)
- 2024测绘个人年终工作总结
- DB11 637-2015 房屋结构综合安全性鉴定标准
- 制造业生产流程作业指导书
- DB34∕T 4444-2023 企业信息化系统上云评估服务规范
评论
0/150
提交评论