《基于单片机的小型智能家居监控系统.doc》由会员分享,可在线阅读,更多相关《基于单片机的小型智能家居监控系统.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南理工大学毕业设计(论文)说明书摘 要环境拥有自己的语言,好的环境让人朝气蓬勃,相反不好的环境却让人觉得情绪低迷。而居室环境对一个人的影响也是很大的,因为每个人每天接触最多的就是居室。对于居室环境而言,最重要的就是空气。居室空气作为居室环境中的一大资源,它包围着我们起居生活的方方面面。一个环境的通风、湿度以及温度给人带来的舒适度是不一样的,过热、干燥、密闭、潮湿等环境会给人带来负面的心理影响,合理调节这些元素,将会直接影响到我们健康生活的质量。随着单片机技术以及数字技术快速发展,基于单片机的小型智能家居监控系统的发展已经达到了一定的成熟。本系统是基于Atmel89S52单片机为核心处理器,配
2、以外载多个温湿度监控模块,对居室温湿度进行检测,并根据需要,向继电器发送开关量,来控制220V电路的工作状态,220V电路中的电器设备按照要求调节好,根据继电器的通断工作。除此之外,还有GY-30光照模块对居室光照强度进行检测。该系统设备简单,成本低,能可靠的使用,在居室、办公室小型场合有很高的利用价值。关键词:居室环境 温湿度监控 单片机ABSTRACTEnvironment have their own language . A good environment make people vigor and vitality . Instead of bad environment make
3、 person feel emotional downturn . And bedroom environment exert a tremendous influence for a person . Because every day everyone in contact with bedroom environment is what most of the bedroom . As to the bedroom environment , the most important is the air . Bedroom air as a bedroom environment of a
4、 resource , it surrounds our daily life every aspect of life .ventilation, humidity and temperature of environmental bring comfort is different . Overheating, dry, airtight, such as wet environment can bring negative psychological effect, Reasonable adjustment these elements , which will directly af
5、fect the quality of life and our health. With the rapid development of todays single-chip technology and digital technology, the development of small single-chip intelligent home monitoring system has reached a certain maturity. This system is why the Department of Atmel89S52 single-chip processor,
6、with other than set out a number of temperature and humidity monitoring module to detect the room temperature and humidity, and, if necessary, sent to the relay switch to control the working status of the 220V circuits, 220V circuits electrical equipment in accordance with the requirements of regula
7、tion, according to the relays off. In addition, there BH1750 chip on the living room light intensity detection. The system equipment is simple, low cost, reliable use. High value in the living room, small office occasions. Keyword:Bedroom environment,temperature and humidity control,microcontroller目
8、录摘 要IABSTRACTII1 绪论11.1基于单片机的居室温度湿度监控系统概述11.2基于单片机的居室温度湿度监控系统选题背景11.3基于单片机的居室温度湿度监控系统意义21.4基于单片机的居室温度湿度监控系统研究现状与发展趋势22 基于单片机的居室温湿度监控系统总体设计32.1系统的基本要求32.2系统模块的划分32.3系统硬件组成33 系统硬件设计53.1单片机最小系统设计53.1.1单片机选型53.1.2单片机最小系统的设计63.2温度湿度检测模块电路的设计73.2.1温湿度传感器的选择73.2.2温湿度检测模块电路设计83.3光照强度环节的设计93.3.1光照传感器的选择93.3.
9、2光照传感器电路103.4显示模块设计103.5温度湿度调节电路设计113.5.1控制环节的选择113.5.2控制环节电路设计113.6系统特点124 软件程序设计144.1软件模块化划分144.2主程序流程图144.3温度湿度检测模块程序设计164.3.1DHT11时序逻辑164.3.2读DHT11数据流程174.3.3DHT11数据格式174.3.4DHT11核心程序代码184.4光照强度检测模块程序设计204.4.1光照强度模块IC总线时序图204.4.2BH1750的读写数据格式204.4.3GY-30核心程序代码214.5显示模块程序设计234.5.1LCD1602的使用234.5.
10、2LCD1602工作要求244.5.3LCD1602时序逻辑264.5.4显示模块程序274.5.4核心程序代码275 总结与展望29致谢30参考文献31附录A 系统程序清单32附录B系统电路图46IV1 绪论居室温度湿度监控系统(Room Temperature And Humidity Monitor System )在信息化社会的今天已经并不少见了,尤其是人们对生活质量的要求越来越高的今天。可靠的居室温度湿度监控系统对人们的生活质量的提高,对人心理情绪的影响,都是非常重要的。在今天,数字电子技术的高速发展,单片微机以及各类传感器的生产和应用,使得今天居室温度湿度监控系统的发展和技术越发的
11、成熟,而且越来越可靠,简单,小巧。基于单片机与各类传感器制造的居室温度湿度监控系统成本低,可靠性高,而且功能更多,这类产品将有良好的发展前景。1.1基于单片机的居室温度湿度监控系统概述居室的环境因素包括很多,例如温度、湿度、光照强度、二氧化碳浓度等等,这些因素对人们生活的影响很大,然而温度和湿度这两项在居室环境中所占的比重很大。居室温度和湿度监控系统的主要功能就是通过居室中安置的温度和湿度传感器对居室的温度和湿度进行实时监测,并将所测数据传回主控处理器进行处理、处理所得数据跟控制系统所设置的阀值进行比较,进而对控制回路进行必要控制,从而达到控制居室的温度和湿度的目的。基于单片机的温湿度监控系统
12、,设计简单,安全可靠,能很好地达到目的。可靠的调节温度湿度,能使人们在日常生活中能够保持良好的工作生活状态。1.2基于单片机的居室温度湿度监控系统选题背景基于单片机的居室温度和湿度监控系统是单片微机技术和数字电子技术发展结合的产物,是智能家居发展的产物。智能家居系统是使用计算机技术,网络通信技术,综合布线技术,人体工程学等各种技术融合所实现的全新意义上的居家环境。随着智能技术的发展,各种大大小小的智能家居、家电设备,不断涌现。随着单片机的发展,各种产品越来越小,使用越来越可靠。智能家居设备的发展已经成为一种流行趋势。由于智能家居系统大都是一个很大的系统,然而随着近些年来人们对生活质量的要求越来
13、越高,对生活中的小的细节要求也越来越高。居室的环境是人们每天接触的,在这个环境中温度和湿度占了很大的比重。因此,基于单片机的居室温度湿度的检测和控制系统的发展成为近年来人们研究的焦点。本次设计按照人们对生活中居室环境中温度和湿度的要求为重点,采用Atmel89S52单片机为核心控制器,结合各种传感器和继电器控制,产品小巧,设计简单,可靠性高。1.3基于单片机的居室温度湿度监控系统意义基于单片机的居室温度湿度监控系统可以有效的整合居室的环境,并对人的心理产生积极的影响。基于单片机的温湿度监控系统,不仅可用于居室,还可应用于办公室等各种环境,对人的生活、工作和学习等产生积极影响。人们在生活中能够始
14、终拥有良好的心态,始终积极向上,这具有十分重要的现实意义,能够提高工作效率,学习效率等。1.4基于单片机的居室温度湿度监控系统研究现状与发展趋势目前基于单片机的居室温度湿度监控系统的发展已经比较成熟了,各种产品都有,相关的研究也已经很丰富。目前的系统都是应用各种单片微机作为主控芯片,并配以模拟或者数字传感器进行数据采集。在控制方式上采用自动控制,闭环处理。以达到精确的控制温度湿度。尽管如此,在这个方面的研究仍然在继续,数字电子技术,单片机技术的发展会使得产品更加精细,控制更精确,更可靠,成本更加低廉,更加适合居室环境的使用。22 基于单片机的居室温湿度监控系统总体设计2.1系统的基本要求本次设
15、计的居室温湿度监控系统要求:(1) 系统能够多点检测室内温度,检测室内光照强度;(2) 通过一定的显示设备显示出来,方便人们查看;(3) 单片机作为控制芯片,可控制调节回路进行温湿度调节。本设计以Atmel89S52为核心控制器,结合DHT11温湿度传感器以及GY-30数字光照强度模块,检测居室的温度、湿度以及光照强度,并通过LCD1602液晶显示器显示当前环境的检测值,实时的反馈监测信息。由于系统比较小,为了节省硬件成本,在数据传输时,选用线连接,而非无线模块传输。在检测数据处理过后,根据控制环节的数量关系对比,将当前各监测值同阀值进行比较,从而控制调节电路的工作,以达到控制居室温度湿度的目
16、的,并反映出居室的环境条件。以满足人们的日常生活的要求。系统构架图如图2.1所示:图 21系统构架图2.2系统模块的划分本次设计题目为基于单片机的居室温度湿度监控系统,根据2.1所分析的系统所要完成的任务,可以将系统划分为温湿度监测模块、光照强度采集模块、显示模块、控制模块。这四个模块分别完成数据采集,数据显示和环境调节的任务。系统按照模块进行设计,各模块只需要与单片机进行数据交换,在编写程序时将各模块程序写成子程序,只需要调用即可。2.3系统硬件组成本设计以Atmel89S51为核心控制器,结合DHT11温湿度传感器以及GY-30光照强度传感器为检测装置,LCD1602为显示模块。控制回路主
17、要是由继电器与控制其通断的三极管S8050和消除继电器线圈剩磁的二极管IN4007组成。本设计通过核心单片机来控制继电器,从而控制220V回路的工作状况,控制的电器设备为超声波加湿器和凉风机等同类型的温湿度控制器。硬件连接图如图2.2所示:图 22硬件连接图133 系统硬件设计3.1单片机最小系统设计3.1.1单片机选型今天,微处理器已经无处不在,无论是录像机、智能洗衣机、移动电话等家电产品,还是汽车引擎控制,以及数控机床、导弹精确制导等都要用到各类不同的微处理器。微处理器发展到今天,除了最早的简单单片机,还有嵌入式系统,但是根据此次设计的系统的复杂程度来看,用最简单的80C51单片机就能满足
18、要求。单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。此次设计中,核心控制器的主要功能是处理传感器芯片传来的数据信息,包括温湿度传感器和光照强度传感器,对数据进行简单的处理,并控制外围电路的工作,这些要求对80C51来说已经可以很好的满足。而且80C51在日常生活中的应用和现在的发展状况,既能满足系统需要,也能降低成本,因此选用内核为80C51的Atmel89S52为主控芯片。Atmel公司生产的AT89S52单片机,属于MCS-51系列。AT89S5
19、2是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。PORT0(P0.0P0.7):端口0是一个8位宽的双向输出输入端口,由于端口0内部缺少上拉电阻,因此在系统设计中,需要添加上拉排阻。PORT1(P1.0P1.7)、PORT2(P2.0P2.7)、PO
20、RT3(P3.0P3.7)与PORT0(P0.0P0.7)构成了单片机的四组双向I/O口。单片机可以通过这四个双向I/O口与外接的模块之间进行通信,获取数据信息,或者发送控制命令。其中PORT3(P3.0P3.7)具有第二功能。如下图3.1所示:图 31单片机AT89S523.1.2单片机最小系统的设计单片机作为主要的控制芯片,其本身是一个复杂的同步时序系统,为了保证其同步工作的实现,单片机必须有时钟信号,使其系统在时钟信号的控制下按时序协调工作。因此需要给单片机设计时钟电路,其中时钟电路包括振荡电路和分频电路。振荡电路通常使用单片机的XTAL1和XTAL2两个引脚在芯片外接晶振和两只30pF
21、左右电容器构成。分频电路则由单片机内部器件进行的,震荡电路的信号经过分频电路为单片机提供工作时钟。晶振选用12MHZ。振荡电路图如下3.2图:图 32振荡电路单片机要正常工作除了要保证有时钟电路外,还需要简单的复位电路。因为复位是单片机的硬件初始化操作。经过复位操作后,单片机系统才能正常工作。所以需要设置复位电路,并通过单片机的RST引脚引入。复位电路分为加电复位和手动按键复位两种方式,在本次设计中使用按键复位。复位电路图如3.3所示:图33复位电路单片机最小系统电路图如下3.4所示:图 34最小系统3.2温度湿度检测模块电路的设计3.2.1温湿度传感器的选择数字电子技术发展到今天已经很成熟,
22、现在市场上的传感器可简单地分为两类:一类是模拟式的传感器,输出的是电压或电流信号;另一类是数字式的传感器,输出为数字信息流。若选用模拟式的传感器,针对此类传感器还需要设计相应的A/D转换电路,才能采集到所需要的数据信息。与数字式的传感器相比较,模拟式的传感器有诸多的不便。而数字式的传感器,通过程序,按照相应传感器的时序图,对传感器写入或者读出数据即可,因此在此次设计中选用数字式传感器。图 35DHT11器件图此次设计中选用DHT11数字温湿度传感器,它是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与长期的稳定性。传感器包括
23、一个电阻式测湿元件和一个NTC 测温元件,并与一个高性能8位单片机相连接。因此,该产品具有品质高、响应快、抗干扰能力强、性价比极高等。单线制串行输出接口,使系统集成变得简易快捷。超小的体积、极低的功耗,可应用于各种场合。DHT11典型应用图如下图3.6所示:图 36典型应用3.2.2温湿度检测模块电路设计在设计中由于使用的是线路传输数据,在线路不超过20米时,选择加5K的上拉电阻,以保证数据信息的正确性。由于是单口串行通信,因此只占用单片机的一个I/O口即可完成上下位的连接。在此次设计中,为了保证对数据信息采集的准确性,选择使用多个温湿度传感器,在实物中只使用两只,占用P2.0和P2.1两个端
24、口。设计电路图如下图3.7所示:图 37温湿度检测电路3.3光照强度环节的设计3.3.1光照传感器的选择传统的测光系统的光强采集元件都是使用光电三极管或光电池。除此之外还要添加信号放大电路、A/D 转换电路等外围电路,这是这两类采集元件必不可少的部分,其系统设计的复杂度较高。高级的测光系统能耗、空间开销更大、而灵活性却很低,因此选用新型单片测光芯片BH1750 ,较好地解决了传统测光系统的弊端。而且BH1750 是的具有优良光谱灵敏度特性、16 bit串行输出的单片数字照度传感器。BH1750FVI 是一种用于两线式串行总线接口的数字型光强度传感器集成电路。使用方便,分辨率高。利用它的高分辨率
25、可以探测较大范围的光强度变化。(1lx-65535lx)BH1750光照强度测量芯片具有6种工作模式,分为高分辨率模式,和低分辨率模式,还包括连续与非连续,在使用中选择连续高分辨率模式。其分辨率为0.5lx,高精度连续测量。完全可以满足日常居室光照强度的探测。而且使得系统规模小,使用方便、简单。本次设计中针对光照强度探测选用的是基于BH1750的数字光模块GY-30。此数字式模块将BH1750与低功耗稳压器以及电平转换器集成在一块板子上,可以更为方便的使用。3.3.2光照传感器电路本次设计使用的是GY-30数字光模块,在使用中对双串行数据口应给以上拉电阻,以保证数据的正常传输,由于ADDR引脚
26、接高电平和低电平是给BH1750芯片具有不同的地址,在此次设计中,将ADDR引脚接地,芯片地址为0x46。在使用中,两串行口要占用单片机的两个口,此次设计中使用P1.0和P1.1两个端口。GY-30与单片机的连接图如3.8所示:图 38GY-30光照强度模块电路图3.4显示模块设计显示在本次设计的系统中也占有很重要的比重,用户可以通过显示模块来读取当前所探测的环境信息。而显示有多种方式,最简单的是七段数码管,此外还有液晶显示,点阵显示。七段数码管可以简单的显示数字信息,无法显示字符等其他信息,而点阵显示在该系统中并不适应,小块点阵显示并不灵活,大块点阵显示需要耗费大量空间。因而选择操作简单,显
27、示方便的液晶显示模块。此次显示只需要显示简单字符,不需要显示汉字等,因此LCD1602即可满足现实需求。LCD1602液晶显示模块有八位数据口,在此次设计中使用单片机的P0口为其写入数据信息,LCD1602还有三个操作位,RS(寄存器选择端口)、RW(读写操作选择端口)、EN(使能信号端口),需要单片机的三个端口对其进行操作,来控制LCD1602正常显示,因此选择三个端口分别为P2.5、P2.6和P2.7。LCD1602的第三个端口接地为对比度调节端口,因此对其接10K可调电阻接地,其余端口分别接地和电源。LCD液晶显示与单片机连接图如下图3.9所示:图 39显示模块电路图3.5温度湿度调节电
28、路设计3.5.1控制环节的选择本次设计中选用的空气加湿器是220V电压供电的超声波加湿器,温度调节装置根据季节的不同,夏季可选择电风扇,凉风机等电器设备,冬天可使用电暖扇,电暖气片等设备。所用设备都使用220V供电。本次设计对于调节系统的设计为开关量的控制,对于所选择的调节设备,根据具体情况事先调节好相关设备的工作要求,因此只需要开关量开通或者关断电路,即可控制调节设备的工作状态。对于电路工作状态通断的控制,最简单的是使用继电器进行控制。3.5.2控制环节电路设计继电器在使用中不能由单片机直接信号控制,因而需要具有开关性能的器件来控制,由此可以选择三极管。三极管在基极未加电压时,集电极和发射极
29、之间是断路,是不导通的,在基极加上一定电压后就可使三极管导通,因此具有模拟开关的作用,用来开通和断开继电器的线圈电路是很理想的器件。三极管可选用S8050高频三极管放大器。在断开继电器时,由于继电器的线圈还保留有磁场,会使得继电器的断开不灵敏,因此需要添加一个反向二极管,为剩磁提供通路,而不影响继电器的开断。选用二极管为IN4007。为了保证电路的正常工作,除了以上相关器件外,还需要添加保险丝,以防止过电流,烧坏电路。图 310控制电路3.6系统特点由于本次设计系统是基于单片机的,在传输方面采用的是线路传输,在单片微机和数字电子技术发展日益进步的今天,该系统以做到了小型化,方便使用安装。因此该
30、系统具有如下特点:(1)数据采集的实时性与准确性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。此次系统的设计中,在保证程序设计正确的前提下,数据可保证完全争取,因此数据有很高的准确性。传感器传回的数据是实时的,单片机的数据处理性能也是比较强的,对于大容量的数据可做到快速处理。(2)系统工作可靠性首先,工业级的单片机Atmel89S52可以保证系统可以抵御较为恶劣的环境条件;其次,控制电路中的熔断器可保证设备安全工作,不出现用电安全隐患;再次,数字电路在传输中可保证数据的正常,可以保证系统能较为可靠的安全运行。(3)使用场合较广由于本系统
31、简单,小巧,成本低,可靠性高,可以广泛的适用于卧室,办公室等环境中,适用范围广。4 软件程序设计4.1软件模块化划分本次设计的系统按照其功能可划分为四个模块,分别为温湿度检测模块,光照强度检测模块,温湿度调节控制模块和液晶显示模块。系统的功能模块如下4.1所示:图 31功能模块图光照强度检测模块主要是监测居室环境的光照强度,并将检测到的数据传送回单片机进行处理。光照强度模块实时监测,实时传送数据,以求可以实时掌握房间的光照强度,在此基础上可以进行其他任务的扩展。温湿度检测模块是系统的核心模块,是系统进行温湿度调节的基础,此模块实时监控居室的温度与湿度情况,并将监控的信息传送回单片机进行处理比较
32、,在此基础上控制调节系统进行调节,以便满足人们对环境的要求。液晶显示模块使人们可以很简单的掌握屋内环境条件状况。光照强度监测模块和温湿度监测模块实时的向单片机传送监测到的数据信息,单片机对数据信息进行简单的处理后,返回到液晶模块进行显示,动态实时更新使得人们可以很容易就掌握居室的环境条件。温湿度调节模块也是系统中很重要的一个模块,此模块根据监控信息和单片机的指令调整当前的工作状态,从而调节相关电器的工作状态,调节改善环境条件。4.2主程序流程图由于此次实物是按照模块化的思想进行设计和制作的,在编程的过程中应用模块化思想,对各个模块对应编写源代码,完成之后再将源代码进行系统处理,系统程序按照模块
33、化流程进行工作。图 42程序流程图总的系统软件工作流程为:启动单片机后,单片机开始运行,首先对光照强度模块和液晶显示模块进行初始化操作;然后启动光照强度模块和温度湿度监测模块进行数据采集;接着将采集到的数据送回单片机进行处理;然后送到显示模块进行显示;最后对处理后的数据与设定的阀值进行比较,若不满足要求,则驱动控制电路进行调节,若满足,则返回数据采集程序段,循环工作。4.3温度湿度检测模块程序设计温湿度检测模块所使用的芯片为DHT11,DHT11为数字传感器,该传感器为单个数据引脚接口的串行通信,DHT11有四个引脚,第一和第四引脚为电源引脚和接地引脚,第三引脚为悬空,第二引脚为数据引脚,该引
34、脚为输入输出双向引脚。DHT11芯片要完成数据采集,需要单片机按照相应的时序与DHT11通信,才能完成正常工作。4.3.1DHT11时序逻辑DHT11传感器是通过单总线协议和上位机(控制器)进行数据通信。DHT11 传感器需要严格的按照读写协议来工作,以确保数据的完整性。整个读写分为,上位机发送起始信号,上位机接收下位机发来的握手响应信号,读0,和读1四个步骤。所有的信号除主机启动复位信号外,全部都由DHT11产生。 通过单总线访问DHT11顺序归纳如下: (1)主机发开始信号 (2)主机等待接收DHT11响应信号 (3)主机连续接收40Bit的数据和校验和 (4)数据处理单片机发送一次开始信
35、号(低电平)DHT11从低速模式转换到高速模式,等待主机开始信号结束(拉高)后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。总线线空闲状态为高电平,单片机把总线线拉低大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到单片机的开始信号后,等待单片机开始信号结束,然后发送低电平响应信号。单片机发送开始信号结束后,延时等待20-40us后, 读取DHT11的回应信号,单片机发送开始信号后,可以切换到输入模式,或者输出高电平均可,保证总线为空闲状态。总线由上拉电阻拉高。DHT11复位时序图如下图4.3所示:图 43DHT11复位时序图4.3.2
36、读DHT11数据流程单片机发送开始信号后,延时等待20us-40us后读取DHT11的响应信号,读取总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高,准备发送数据,每一位数据都以低电平开始。如果读取响应信号为高电平,则DHT没有响应。请检查线路是否连接正常。读DHT11数据的时序图如下图4.4所示:图 44读DHT11数据流图DHT11数据流中,数据“0”和数据“1”都是以低电平为开始,数字“0”高电平的持续时间是26-28us,数字“1”高电平持续时间是116-118us。因此在读取DHT11数据时需要注意延时问题,以正确的读取数据信息。4.3.3DHT11数
37、据格式数字温湿度传感器采用单总线数据格式。即单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。一次通讯时间最大3ms,数据分小数部分和整数部分。操作流程如下:一次完整的数据传输为40bit,高位先出。 数据格式:8bit 湿度整数数据+8bit湿度小数数据 +8bit温度整数数据+8bit温度小数数据 +8bit 校验和。校验和数据为前四个字节相加。DHT11数据格式如下表:表 41数据格式温度湿度校验整数小数整数小数8Bit8Bit8Bit8Bit8BitDHT11需要按照时序图编写读写程序,并需要准确的进行延时,这样才能保证读写数据正确,不至于出现混乱。DHT1
38、1的程序工作时,首先由单片机发送数据给DHT11,准备于DHT11进行通信,当DHT11接收到单片机数据,并处于空闲状态时,则向单片机发送应答信号,单片机接收到信号开始准备接收数据流,然后对数据流进行校验,若正确则进行数据处理,若错误,则返回重新接收数据。DHT11的程序流程图如下图4.5所示:图 45DHT11程序流程图4.3.4DHT11核心程序代码DHT11发送的是40Bit的数据流,每8Bit为一个数据信息,因此在读取时,需要一个一个数据读取,然后将40Bit的数据进行处理,代码如下:char recv_data()/单字节信息读取uchar i,datatemp,recvdata;r
39、ecvdata=0;for(i=0;i8;i+)while(!Dout);delay_us(35);datatemp=0;if(Dout)datatemp=1;while(Dout);recvdata=1;/循环左移,读取数据recvdata|=datatemp;return recvdata;void continuous_data()/连续读取40Bit数据,并检查数据是否正确doDout=0;delay_ms(20);Dout=1;delay_us(60);Dout=1;if(!Dout)while(!Dout);while(Dout);datath=recv_data();/连续读取4
40、0Bit数据datatl=recv_data();datarhh=recv_data();datarhl=recv_data();checkdata=recv_data();while(datath+datatl+datarhh+datarhl!=checkdata );/数据正确跳出循环,否则循环F16T=datath;F16RH=datarhh;4.4光照强度检测模块程序设计光照强度模块主要使用的是GY-30数字光模块,GY-30数字光模块核心元件是BH1750芯片,其简化了BH1750芯片的使用,BH1750有六个端口,而GY-30数字光模块使用五个端口,其中第一个和第五个为电源端口和接
41、地端口,第二个和第三个为数据端口SCL和SDA,第四个端口ADDR与寄存器地址相关,在本次设计中使得ADDR接地,寄存器地址为0X46。要使光照强度模块完成检测,需要单片机按照其时序逻辑对其进行读写。4.4.1光照强度模块IC总线时序图对于GY-30模块,其核心仍为BH1750芯片,写测量指令和读测量结果指令都是由IC总线接口完成。则需要按照正规的IC总线接口时序图对其进行读写操作。IC总线接口时序图如下图4.6所示:图 46IC总线接口时序图通过时序图可以看出,BH1750在工作过程中需要启动和停止。BH1750的工作过程为SDA和SCL都有高电位拉低之后,BH1750进入工作状态,在下一个
42、阶段SCL由高拉低之后,单片机从SDA引脚向BH1750发送ACK信号,BH1750接收到SDA信号后,在下一个阶段SCL由高拉低之后从SDA引脚向单片机写响应信息,接收到响应信息后,单片机就开始从BH1750开始读取数据。4.4.2BH1750的读写数据格式BH1750的读写格式是单片机控制BH1750,并从BH1750中读取数据信息的重要格式,下面举例说明;由主到从由从到主(1)发送BH1750的工作模式;(2)等待完成第一次测量;(3)读取结果。在工作过程中,单片机与BH1750按照上述读写模式和时序逻辑进行操作,即可得到光照强度数据。GY-30数字光模块执行程序:首先单片机向GY-30
43、发送数据,启动GY-30工作,然后GY-30发送应答信号并开始采集数据,接着单片机接收数据并开始进行处理,然后返回主程序。GY-30数字光模块的程序流程图如下图4.7所示:图 47GY-30程序流程4.4.3GY-30核心程序代码GY-30要正常使用首先要对其发送启动程序,工作完成转入空闲状态要发送停止信号。代码如下所示:void BH1750_Start()/启动BH1750 SDA = 1; SCL = 1; Delay5us(); SDA = 0; Delay5us(); SCL = 0; void BH1750_Stop()/停止BH1750 SDA = 0; SCL = 1; Del
44、ay5us(); SDA = 1; Delay5us(); 在GY-30在工作前首先要对其初始化,设定工作方式,其代码如下:void Init_BH1750()/BH1750初始化BH1750_Start(); Single_Write_BH1750(0x11);/设定工作模式为连续高分辨率模式BH1750_Stop();Delay5ms(); BH1750的主要功能是采集光照强度信息,并将采集到的数据送回单片机,则其数据传递程序也是非常重要的,代码如下所示:void Continuous_read_BH1750(void)/连续读取BH1750采集的数据 uchar i; BH1750_St
45、art(); BH1750_SendByte(SlaveAddress+1); for (i=0; i3; i+) BUFi = BH1750_RecvByte(); if (i = 3) BH1750_SendACK(1); else BH1750_SendACK(0); BH1750_Stop(); Delay5ms();4.5显示模块程序设计4.5.1LCD1602的使用LCD1602液晶显示模块现在已很普遍了,字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的。此处所用字符型LCD 16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其余引脚Vss(1脚)为电源地,Vss(2脚)为电源端,Vee(3脚)为背光调整,RS(4脚)寄存器选择端口、R/W(5脚)读写操作选择端口、EN