基于单片机的智能鱼缸设计(完整资料)_第1页
基于单片机的智能鱼缸设计(完整资料)_第2页
基于单片机的智能鱼缸设计(完整资料)_第3页
基于单片机的智能鱼缸设计(完整资料)_第4页
基于单片机的智能鱼缸设计(完整资料)_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的智能鱼缸设计(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)

基于单片机的智能鱼缸设计(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)基于单片机的智能鱼缸设计摘要随着社会科技与经济的飞速发展,用科技改善人们的生活已经成为了一种必然的趋势。智能鱼缸作为缓解压力的装饰品得到了人们的广泛青睐,而单片机渗透到我们生活的各个领域,如智能家居、手机电脑、汽车仪表等.因而,基于单片机的智能鱼缸设计具有很大的研究意义和实用价值.本设计是针对目前市场智能鱼缸尚在起步阶段,存在功能不齐全、成本较高的问题。利用STC89C51单片机,结合传感器技术和C语言编程技术设计可以自动温控、自动充氧、自动投食、自动水循环的低成本智能鱼缸。本文主要从硬件设计方面阐述设计的实践过程与细节。关键词:单片机;传感器;智能鱼缸DESIGNOFINTELLIGENTFISHTANKBASEDONSINGLECHIPMICROCOMPUTERABSTRACTWiththerapiddevelopmentofsocialscienceandtechnologyandeconomy,Usingtechnologytoimprovepeople’sliveshasbecomeaninevitabletrend。Intelligentfishtankshavebeenwidelyfavoredasanornamentforstressrelief,andsinglechipmicrocomputerhasinfiltratedallareasofourlives,suchassmarthomes,mobilephonesandcomputers,andautomotiveinstrumentation。Therefore,theintelligentfishtankdesignbasedonsingle-chipmicrocomputerhasgreatresearchsignificanceandpracticalvalue.Thisdesignisforthecurrentmarketthattheintelligentfishtankisstillinitsinfancy,anditisincompletefunctionandhighcost。UsingSTC89C51microcontroller,combinedwithsensortechnologyandClanguageprogrammingtechnologydesigncanautomaticallytemperaturecontrol,automaticwaterchange,automaticfeeding,automaticoxygenatedlow-costsmarttank.Thisarticleelaboratestheprocessanddetailsofthedesignfromthehardwaredesign。Keywords:singlechipmicrocomputer;transducer;intelligentfishtank目录1绪论….……………….….…。….….….….……………….11.1课题背景及目的……………….…。….…。…。….….………………。11。2国内外研究状况……………….…。….….…。….…。……………….11.3课题研究方法…。….….…。….…。….……………….21。4论文构成及研究内容………………22技术与原理…………。….….…。….….….……………….32。1单片机技术…………32。2嵌入式系统…………32.3传感器技术…………33智能鱼缸元器件选用……………………53.1智能鱼缸系统的功能要求…………53。2系统结构…………..53。3主要元器件选取……………………63.3.1主控芯片选用………………63。3。2温度传感器选用……………93.3。3时钟芯片选用………………93.3。4显示器选用…………………94系统电路设计……………….…….。…114.1各模块电路设计………………。…。。114.1.1USB接口电路………………114。1。2复位电路……………………114。1.3DS18B20温度传感器电路…………………124.1.4DS1302时钟模块电路………124。1.5驱动电机电路………………124.1.6存储芯片电路………………134.1.7按键模块电路………………134.1。8LCD1602显示模块电路……………………134.1。9继电器电路…………………144.2系统总体模块设计…………………144。3系统的软件设计……………………165系统功能测试……………185.1系统实物图…………185。2功能测试……………185。2。1自动温控……………………185.2。2自动投食……………………205.2.3自动充氧……………………205.2.4自动水循环…………………226总结………………………22参考文献……………………22致谢…………………………24附录…………………………25附件…………………………38附件一:开题报告………………………38附件二:英文译文及原文………………44绪论1.1课题背景及目的近年以来,随着我国综合实力飞速飙升,人们对物质和精神生活质量的要求也不断提升,各式各样的智能家居不断问世并得到消费者的喜爱。因而各样的智能鱼缸作为装饰品和智能家居的合体应景入驻家庭、办公室、商场等场所。它不仅可以作为装饰品给我们带来视觉享受,缓解精神疲劳,而且将中国传统水文化引入日常生活,极大的丰富了人们的生活。但目前市面上各式鱼缸鱼龙混杂,格式各异,大多为非智能,需要手动操作实现温控,换水,充氧,投食等.这将造成诸多不便,浪费使用者的大量时间精力,且影响鱼缸的美观性。但现代社会生活节奏较快,人们没有足够的时间动手照顾鱼缸,导致鱼缸生物成活率低。因而,现阶段智能鱼缸具有一定的市场需求。本课题设计的目的为实现鱼缸温控、换水、充氧、投食的一体化和智能化。该设计具有科研和实用两重价值。1。2国内外研究状况就现阶段社会现状来看,鱼缸作为家居和装饰品不仅受到老年人的喜爱,同时得到越来越多年轻人的青睐.鱼缸不仅可以做装饰品,给人们带来视觉上的享受,减轻压力,缓解心情,而且灵动的引入了中国传统水文化,成为了一种艺术与文化,因而被广泛的使用于家庭、办公室、商场等场合。但现阶段市场上传统鱼缸居多,需要使用者自行配备加热器,水泵,氧气泵等,这些设备需要手动操作,浪费使用者的时间精力,因为无法显示具体参数,所以使用者无法对含氧量、水温等进行精准的控制,长时间的充氧或加热不仅会浪费能源,而且会威胁到鱼缸内生物的生命,且自行组装严重影响了鱼缸的美观性.我国鱼缸控制系统起步较晚,改革开放后随着人们对生活质量的要求进一步提升,利用科技改善传统生活方式称为了一种趋势。消费者对智能鱼缸需求不断增加,这引起了较多厂商的重视,但目前市面上智能鱼缸尚处于不完善的状态,存在功能不齐全,操作复杂,成本过高等问题。单片机目前处于一个巅峰时期,单片机系统种类繁多,取得了诸多技术成果且保持着很快的发展速度,尤其是8位单片机,在我们生活的各个领域都能看到它的影子,如手机电脑、仪器仪表、智能家居等等.单片机发展阶段大概可以概括为:4位机、8位机、16位机、新一代8位机、32位机。4位机早期主要用于收音机、电视、冰箱等家用电器中,但目前,随着8位机技术的成熟,成本下降,家用电器更多采用8位机以实现模糊控制等新的技术要求。不仅可以降低系统的能耗,而且很大程度上提高了家用电器的自动化水平。16位机常用在需要实时控制、实时处理的系统中,因为16位机运算和反应速度相比4位和8位具有绝对的优势,但它能耗也相对较大,成本比较高。因而,就目前单片机技术的发展状况来看,8位单片机将很长一段时间将成为单片机中的佼佼者,因为它综合了16位机的高性能和4位机的低成本,而单片机将不断完善,提升性能,缩小体积,减少外围电路,扩大容量。1。3课题研究方法本课题设计主要是利用单片机为主控芯片,结合嵌入式技术、传感器技术、C语言编程等技术设计出满足功能的智能鱼缸系统。总体上,我们首先要根据智能鱼缸的使用场合和工作环境明确我们所设计系统所需的总体功能.其次,我们构思出系统的总体框架,绘出硬件和软件流程框图,然后根据流程图着手设计。硬件方面考虑到市场现有的芯片、元器件种类繁多,我们需要斟酌选用满足系统功能且稳定实惠的元器件。系统软件编程我们采用模块化程序设计,先根据系统功能要求构思出出程序框图,再利用C语言对各个模块进行编程设计。最后利用KeiluVision4对源程序进行调试、查错和修改,最后导入硬件设备,总体运行系统,确保系统满足功能要求且能稳定的运行。1。4论文构成及研究内容本课题的只要内容是是设计一个自动温控、换水、充氧、投食的智能鱼缸控制系统,论文主要构成包括:(1)课题的背景及主要研究内容;(2)相关基本原理技术;(3)系统的总体、硬件、软件设计;(4)设计的心得感悟以及参考文献.2技术与原理2。1单片机原理及应用单片机是将CPU、I/O口和存储器集成在一个芯片上的一种集成电路芯片.近年以来单片机技术随着科技飞速发展,并在计算机领域开拓出极具潜力的分支.单片机作为各种各样智能系统的核心控制元件,它的诞生满足了我国急速增长的工业需求,现已广泛的应用在手机电脑、仪器仪表、智能家居各种领域中。单片机的应用系统主要有两部分,分别是软件和硬件系统。其硬件系统包括单片机扩展的存储器、接口电路和外围设备等。软件系统只要是各个模块的应用程序.同理,单片机应用系统的设计主要包括单片机系统设计、应用软件设计、系统抗干扰设计、通道与接口设计等[2]。2.2嵌入式系统嵌入式系统相当于一种特殊的计算机,是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,因而也被称为嵌入式计算机系统,但嵌入式系统执行的任务是提前定义好的,且有特定要求,所以说和我们又不同于我们常见的计算机系统,因而嵌入式系统又被定义为用于检测、控制、和辅助机器的一种设备。嵌入式系统是以应用程序为中心的,基于计算机的,且其软件和硬件为可调整的目前被广泛的应用于功能、成本、稳定性、规格和功耗有严格规定的计算机系统中。嵌入式系统在满足应用的功能要求、稳定的前提下,还有必要尽量减少系统的成本。其制作过程包括软件和硬件两个方面。硬件方面要根据系统的功能要求,规划出简洁明了的框图,然后通过对比选择适当元器件,再设计满足应用需求的接口,最后设计出整体的机械结构.软件方面与硬件相似,要根据功能要求确定需要的操作系统,选择相匹配且自己擅长的系统编写软件.2。3传感器技术传感器是可以感测特定测量并根据一定规则将其转换为可用输出信号的设备或设备的总称,是目前世界最前沿的科技之一,是实现生活高科技化的重要技术支持之一,它通常被测量为非电气物理量,并且输出信号通常是电量。据了解,传感器技术、通信技术和计算机技术被称为信息技术三大支柱,越来越多的国家重视传感器技术的发展,其发展水平逐渐成为一个国家智能化、数字化、网络化的重要体现。随着科技的飞速进步,传感技术作为一个新兴技术也如雨后春笋飞速发展,并且在航天航空、医疗,工业、农业、教育、生活等领域得到广泛地利用,已经成为生活各个领域中随处可见的一项技术.因为传感器能提供精确、可靠的参数,而且感知的精确度远在人的感官器官之上,并且能通过数据很直观的变现出来,从而为我们的科研工作提供更加精准、直观的数据,更好的应用于其他领域,促进社会科技水平的发展,所以在日常生活和科学研究中,各式各样的传感器被广泛的使用。总之,传感器技术作为一种与现代科学密切相关的新兴学科正得到迅速的发展,并且在将会被应用于越来越多的领域.3智能鱼缸元器件选用3.1智能鱼缸系统功能要求该智能鱼缸系统的设计是以日常生活中鱼缸的养护为背景,根据当前市场上的需求,智能鱼缸系统需要自动实现自动温控、换水、充氧、投食等功能。系统需要稳定运行尽可能避免发生故障,且需要尽可能的降低成本,具有实用价值。系统需要对鱼缸内部环境进行检测,并保持环境参数保持在适宜鱼类生存的范围内。首先是温度,根据了解,鱼类的适宜的生存环境一般都在22~28℃,当温度传感器检测到水温低于22℃时,系统启动加热器加热,当温度达到28℃时系统停止加热,使温度在适宜鱼类生存的范围内波动。其次是充氧,目前生活中人们无法对充氧做到很好的把控,长时间不充氧容易导致鱼类缺氧死亡,而一直开启氧泵无疑是对资源的浪费,因而,利用定时控制氧泵开关,保证水中的一定的溶氧量将一定程度上解决上述问题。鱼类的投食频率一般是12小时或者24小时,最佳时间一般在中午这个时间段,因而可以利用系统的时钟模块定时控制投食器。水循环主要是为了除去水中的杂质,改良水质,可以利用利用系统定时模块定时开关水泵,将水通过活性炭海绵等过滤完成净化,为鱼类提供适宜生存的环境。3.2系统结构查阅相关资料可知,鱼类生存的环境要素包含很多,如光照、水的温度、营养物、杂质含量、溶氧量、PH等等。在此设计中,我们主要考虑到鱼类生存的四大环境要素:水温、水溶氧量、水杂质含量、营养物。而各个要素对应的系统处理功能如下表所示。表3—1系统控制参数项目环境参数系统处理1水温温度传感器处理并由加热器控制(自动加热)2水溶氧量定时启动氧泵充氧(自动充氧)3水杂质含量定时启动水泵水循环(自动水循环)4营养物定时启动投食器(自动投食)本设计的智能鱼缸控制系统主要实现自动加热、自动水循环、自动充氧、自动投食四个功能,选用STC89C52单片机作为系统核心芯片,控制温控模块、时钟模块和其他一些模块。温度控制模块中DS18B20温度传感器负责采集温度参数传送至主控芯片,利用继电器控制加热器以实现恒温.时钟模块通过继电器控制氧泵、水泵的开关,实现定时充氧、定时水循环.而自动投食功能利用时钟模块控制步进电机来模拟.系统结构框图如图3。1所示。图3。1系统结构框图3.3主要元器件选用元器件的选用,主要以满足系统功能要求、稳定简便和实惠为原则。以下是各个元器件的具体选用情况。3.3.1主控芯片选用主控芯片采用STC89C52单片机,具有功耗低、价格便宜、性能高、编程简单、可以不用ISP下载器,直接用串口下载程序的优点,适合初学者练习.STC89C52虽然使用传统的MCS-51内核,但具备传统51单片机不具备的功能[4].下面简单介绍下STC89C52引脚和功能,其引脚图如图3.2所示。图3。2STC89C52引脚图STC89C52单片机有P0、P1、P2、P3四组8位的可编程I/O口,每个口有8根引脚,共32根。有2根主电源引脚,分别是VCC(40引脚)和GND(20引脚)。外接晶振引脚也有2根,分别是XTAL1(19引脚)和XTAL2(18引脚)。控制引脚有4根,分别是RET/VPP(9引脚)、ALE/PROG(30引脚)、PSEN(29引脚)、EA/VPP(31引脚),其各个引脚具体介绍如下[4]:(1)VCC(40引脚):电源电压。(2)GND(20引脚):接地。(3)RET/VPP(9引脚):重置输入.当振荡器工作时,RST引脚在两个以上的机器周期内出现高电平,将会导致微控制器复位[4]。(4)ALE/PROG(30引脚):当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8字节。一般来说,ALE仍然以时钟振荡频率的1/6输出一个固定的脉冲信号,所以它可以从外部输出时钟或用于定时目的。应该注意的是,只要访问外部数据存储器,ALE脉冲就会被跳过。在FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可以通过在特殊功能寄存器(SFR)区域的8EH位置设置D0位来禁止ALE操作[4]。(5)PSEN(29引脚):外部程序存储器选通信号。在通过外部程序存储器取指令期间,两个PSEN在每个机器周期内都有效。但是,访问外部数据存储器时,这两次有效的PSEN信号不会出现[4]。(6)EA/VPP(31引脚):对于外部访问,EA必须保持低电平(接地),CPU才能访问外部程序存储器。应该注意的是,如果编程加密位LB1,EA状态将在复位期间内部锁存.如果EA为高电平(连接VCC),则CPU执行内部程序存储器指令。当编程FLASH存储器时,该引脚增加了+12V编程以允许电源VPP。当然,这必须是该器件使用12V编程电压VPP[4].(7)XTAL1(19引脚):反向振荡放大器的输入及内部时钟工作电路的输入[4].(8)XTAL2(18引脚):来自反向振荡器的输出[4].(9)P0口:P0口是一个8位漏极开路的双向I/O口.作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻[4].(10)P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流[4].此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入和时器/计数器2的触发输入,具体如表3—2所示。。表3-2P1.0和P1.1引脚复用功能引脚号功能特性P1.0T2(定时器、计数器2外部计数输入),时钟输出P1.1T2EX(定时器、计数器2捕获、重装出发和方向控制)(11)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2。端口写“1"时,内部上拉电阻把端口拉高,可以作为输入口使用.作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流[4]。(12)P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口也作为STC89C52第二功能使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号[4]。P3口其他一些复用功能如表3-3。表3-3P3口引脚复用功能引脚号复用功能P3。0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3。3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3。6(外部数据存储器写选通)P3。7(外部数据存储器读选通)3.3.2温度传感器选用温度传感器采用DS18B20芯片,DS18B20芯片具有成本低、体积小、封装形式多样的诸多优点,封装后可以在空间较小的工作场合发挥很好的作用,适用于各种系统测温。而且精准度高达0。0626℃,具有出色的抗干扰能力,采用3线制与单片机相连,使用非常方便。其测温范围较大,为-55℃到125℃,可用于锅炉测温、农业温棚测温、智能仪器内部测温等对温度精确度要求非常严格的场合。3.3.3时钟芯片选用时钟电路采用DS1302芯片,DS1302具有高性能、低能耗、接口简单、使用方便且成本较低的诸多优点,且可以采用备用电源,在系统掉电的情况下为时钟芯片供电,防止数据的丢失。它不仅可以计时普通的秒、分、时、天、周、月、年,而且具有闰年补偿等功能,并且其工作能耗非常低,备用的纽扣电池有一年多的有效期。因为在单片机系统中,有较多的功能、应用、设置需要耗费单片机的硬件资源,所以在单片机系统中使用时钟芯片DS1302能很好降低主控芯片的资源占用。3。3.4显示器选用显示界面在用户和系统进行交互过程中起到非常重要的作用,是系统和用户之间进行信息交流的主要窗口,因而显示器的选择对系统和用户体验来说都十分重要。它可以显示当前系统状态,将系统的内部信息以人类可以直观理解的形式表现出来,并且用户可以通过按键操作设定系统中的各项参数,实现用户和系统的交流.本设计中显示器采用LCD1602,是一款适用于显示字母、数字、符号的显示器.其优点是显字清晰,价格低,且其字符发生存储器存储有160个不同的点阵字符图形,且其字符和代码都一一对应,能够同时显示32个字符,是一种性价比非常高的点阵型液晶模块,在使用时按照代码编写程序并按一定的时序驱动就可以实现功能[4]。4智能鱼缸电路设计4。1各模块电路设计4.1.1USB接口电路单片机系统的工作电压环境为5V左右,USB接口模块也就是系统的电源接口,主要作用是为系统提供稳定的工作电压。其电路图如图4。1所示.其中,J1是电源总开关,C2、C13、C14为电解电容,C1、C12、C15为无极性电容,这些电容的主要功能是稳定净化输入电源,保证外围电路的稳定运行.图4。1USB接口电路图4.1.2复位电路复位电路的作用是将电路恢复到初始状态,和计算器的归零键相似。目前单片机系统复位方式主要有两种:手动按钮复位和上电复位,其电路图如图4.2所示,由简单的电容和电阻组合而成,接到单片机的第9个引脚。图4.2复位电路电路图4.1。3DS18B20温度传感器电路DS18B20温度传感器的主要作用是检测鱼缸的具体温度数值,并将数字信号的温度变化值转化为电信号传送给单片机识别,与单片机的P10引脚相连。其电路图如图4.3所示。图4。3DS18B20电路图4.1.4DS1302时钟模块电路DS1302模块是控制鱼缸换水、投食、充氧的相对时钟,其对时间处理的同时还可以为系统提供其他扩展的功能,比如闹钟提醒,事件定时,备忘等。时钟芯片与单片机的P11、P12、P13接口相连。其电路图如图4.4所示,其中,Y2为晶振,BT1为备用电池,当主系统断电后,备用电池继续供电给时钟模块,保证其正常运行,防止出现数据的丢失。图4.4DS1302电路图4.1.5驱动电机电路用步进电机模拟投食,其电路图如图4。5所示.图4.5驱动电机电路4。1。6存储芯片电路存储电路用于存储一些设置的数据,其电路图4.6所示.图4.6存储芯片电路4。1。7按键模块电路按键模块为系统提供四个设置按键,依次接到单片机的P34、P35、P36、P37接口,通过按键可以调整系统设置,如温度上下限、充氧时间、投食时间、水循环时间。其电路图如图4.7所示.图4。7按键模块电路4.1.8LCD1602显示模块电路LCD1602显示模块为系统的显示窗口,用于显示系统的一些参数,如温度、时间等。其电路图如图4.8所示,其中,R1为滑动变阻器,用于调节液晶对比度。图4。8显示模块电路4.1。9继电器电路由于单片机的工作电压一般在5V左右,但是系统所要用到的加热器、氧泵、水泵工作电压要求较高,无法由单片机模块供电正常工作,所以这个时候需要一个利用单片机系统小电流来控制加热器、氧泵、水泵大电流的开关,也就是继电器.继电器是最重要的控制元件之一,简单来说就是一个无源开关,可以实现自动隔离,因而被广泛应用在工业的多种大功率仪器控制中。本设计中,继电器模块一共三个,依次用于控制加热,水循环,充氧.其中控制加热继电器电路图如图4。9所示,其他两个继电器电路图与之完全相同。图4.9继电器电路4.2系统总体电路图完成各个模块的电路接机后,将各个模块之间按照一定的引脚进行连线,得到系统的原理图,如图4。10所示。图4.10系统原理图在完成系统的原理图后,将各个模块电路图导入PCB图中,然后根据电路走向调整布局、完成连线、优化布线、最后开始制作.系统的PCB图如图4。11所示.图4.11系统PCB图在打印PCB电路图,得到电路板并镀锡、打孔、焊接元器件得到完整的实体电路板之后,也标志着智能鱼缸控制系统的硬件部分完成了.4.3系统软件设计模块化程序设计是现在最常见的软件设计方式之一,就是自上而下逐步将软件部分按照系统的功能要求划分为几个相互独立的小模块,然后对各个小模块单独进行编程设计。但各个模块之间必须根据系统的需求互相关联,相辅相成完成系统的功能要求,因为单个小的模块相对功能更单一、结构更清晰,所以这样很大程度上减轻了软件设计的工作量,使得设计思路更加清晰,更加便捷、更加快速.且模块化程序设计的各个模块程序可以应用到其他系统中,如常见的时钟模块、温度控制模块等。并且其程序更方便修改和扩展,方便后期的完善,所以受到大部分开发者的喜爱.在本设计中,利用模块化程序设计将系统的软件部分共分为8个小模块,分别是:测温(18B20)、存储(24c02)、显示(1602)、延迟(delay)、时间控制(ds1302)、按键(key)、主控程序(main)和设置(set).如图4.12所示.图4.12程序模块图在完成系统的程序设计后,利用开发工具运行、调试、查错,确定没有错误后将源程序烤写到先前完成的硬件设备中,总体的系统设计到此也基本完成了。5系统功能测试5.1系统实物图将各个硬件部分组装后得到最终实物图,具体如图5。1所示。图5。1系统实物图其中,1是USB电源接口,为系统提供5V的电源。2是按钮控制开关,是系统的主开关。3是LCD1602显示器,用于显示相关数据。4是DS1302时钟芯片.5是24C02存储芯片。6是四个控制按键,用于设置系统参数。7是DS18B20温度传感器,与用于采集实时温度值。8、9、10依次是控制加热、充氧、水循环的三个继电器.11为用于模拟投食的步进电机.12为步进电机电源输入接口。5。2功能测试5。2。1自动温控理论上,为了创造鱼类适宜生存的环境,系统温度的上下限应该设为22℃到28℃,但为了我们的演示方便,我们通过按键将系统的温度上下限调整为29℃到31℃,因为当时室温为28.6℃,低于下限温度29℃,所以继电器1亮灯,模拟接通加热器。具体如图5.2所示.图5.2温控演示图1我们在演示中用手握住温度传感器来模拟加热器工作水温上升,温度上升超过上限值31℃时,继电器1灯灭,表示模拟加热器断电,加热结束,如图5。3所示。加热结束后温度逐渐降低,直至温度再次低于下限温度值时,继电器再次通电,启动加热,以维持鱼缸温度在一定范围内波动。图5.3温控演示图25.2.2自动投食根据系统的需求,投食频率大致为24小时一次,通过定时开启投食器来实现。但为了方便演示,我们通过按键将FeedTime设置为系统时间的下一分钟,当系统时间达到设定时间,步进电机转动,用于模拟投食。具体如图5。4所示.图5.4投食演示图5.2.3自动充氧自动充氧与投食相似,我们可以设置固定的时间,为了演示方便,我们也可以设置在系统时间的下一分钟,当系统时间达到设定时间后,继电器2亮灯开启,进行模拟充氧。具体如图5。5所示。5.2。4自动水循环水循环同样利用定时来实现,水循环只需要隔一定时间循环一次即可,为了演示方便,我们设定水循环周期为2分钟30秒,因此系统每隔2分30秒将启动继电器2,模拟启动氧泵进行充氧。具体如图5.6所示.这就是系统所有的功能演示。通过演示可以看出,设计的系统符合我们的功能要求,可以实现自动温控、自动投食、自动充氧、自动水循环四个核心功能,可以为鱼类提供适宜的生存环境,是一个合格的智能鱼缸系统。图5。5充氧演示图图5.6水循环演示图6总结本课题设计的智能鱼缸系统以现代市场需求现状为背景,利用单片机、嵌入式、传感器、C语言编程等技术设计出可以实现自动控制温度、自动水循环、自动充氧和自动喂食的智能鱼缸系统,以满足市场的需求.该系统具有便于操作、性能稳定、成本较低、便于大量生产等优点,可作为装饰品广泛应用于家庭、办公室、商场等的场所。在设计智能鱼缸系统的过程中,不仅用到了专业所学的单片机、嵌入式、C语言编程等技术,而且用到了诸多专业以外的知识,如传感器技术、继电器等。硬件部分在综合考虑其稳定性、便利性、成本的情况下选择了满足设计要求的元器件.软件部分使用了模块化程序设计,各个模块之间互相独立工作,同时统一受主控单片机控制,各个模块互相协调统一,使得系统更加简洁、稳定、可靠。但众所周知,鱼缸是一个小的生态系统,其包含了大量的元素,如温度、PH、光照、溶氧量、营养成分含量,杂质含量等等。这些元素构成了一个相当复杂、多变的系统,这个系统也就是鱼类适宜的生存环境。而以我目前所学,无法综合考虑诸多因素,并实现精确的智能调控,因而该设计还存在诸多需要改进的地方,希望诸位老师能提出宝贵的意见,以不断完善智能鱼缸系统.在此次毕业设计过程中,我不仅仅将大学四年所学的理论知识运用到生活中,而且通过自学掌握了一些以前没有接触过的知识,比如传感器技术.在设计过程中,我遇到了许多问题,如电路图的绘制,硬件的组装,以及编程等,在自学和请教老师解决问题的过程中,我加深了对专业知识的理解,同时操作能力、综合实力得到了很大的提升,但由于目前我的专业水平有限,所以设计中还存在较多的漏洞,各方面都有待完善和改进,希望各位老师能给我宝贵的建议,以让设计系统功能更加完善。参考文献[1]李开春.小小水族箱装着大世界[N].宠物世界,1998:10—20[2]农桂泽。单片机发展历程与单片机技术之研究[J].电子技术与软件工程,2016(14):251.[3]毛谦敏.单片机原理及应用系统设计[M].北京:国防工业出版社,2005。8[4]胡汉才.单片机原理及接口技术(第2版)[M].北京:北京清华大学出版社,2004。2[5]杨彦伟,苏卫红,张灏璠.

基于STC889C51的智能鱼缸控制系统[J]。

电子技术与软件工程。

2015(22)[6]彭国平,邓洪波,梁振权.水族箱自动控制装置的设计[J]。广东自动化与信息工程.1999(4):44—46[7]王珍娟,宋正刚。鱼缸智能控制器的设计[J].

甘肃科技.

2012(09)

[8]张继辉.用单片机制作水族箱加氧泵自控开关[J].电子世界.2000(10):28—29[9]支元,王登科.基于嵌入式系统智能鱼缸的设计与实现[J].电脑知识与技术,2015,11(29):155-156[10]朱欣.水族箱养殖热带观赏鱼常识[J]。科学养鱼,1999(1):39[11]Hu,

Jia,Song,

Hocheol,Karanfil,

Tanju.Comparative

analysis

of

halonitromethane

and

trihalomethane

formation

and

speciation

in

drinking

water:The

effects

of

disinfectants,

pH,

bromide,

and

nitrite。

Environmental

Sciences

2010.

[12]Darryl

B.

Jones,Aysenur

Saglam,Hocheol

Song,Tanju

Karanfil.The

impact

of

bromide/iodide

concentration

and

ratio

on

iodinated

trihalomethane

formation

and

speciation[J].

Water

Research

2011

(1)

致谢首先,我要感谢代老师给了我一个自主选题的机会,让我的毕业设计内容更加贴近生活、充满趣味,这使我更好的将所有专业理论知识综合应用到生活中,从中感受到大学四年所学专业知识的实用性.在选题阶段,老师就我的设计内容提出了诸多实用性的建议,并且为我做好了具体的设计内容要求和参考的进度安排,这使得我后续设计更有目的性和规划,促使我按照进度完成设计内容。在设计阶段,老师对我们严格要求,并不辞辛劳坚持每周给我们指导并解决遇到的一切问题,保证了我们能按进度完成设计任务。代老师希望我们能将大学四年所学的专业知识应用到毕业设计当中,同时充分发挥自学能力,通多自学专业以外的知识和技术,发挥年轻人的创造性,在毕业设计中展示出更多属于自己的亮点.在论文撰写阶段,老师对论文的格式和内容都严格把关,从总体结构到标点符号,老师帮我们全面细致的检查了论文存在的问题并提出了修改意见,代老师这种严谨细致的学者风范和平易近人的待人之道都值得我们学习。让我们在毕业设计的同时学到了为人处世之道,让毕业设计对我们的影响更加深刻。最后,我要感谢在我大学四年遇到的每一位老师、每一位同学。在大学四年,我在诸多老师身上看到了可贵的精神。曹敦老师的温柔与认真,李骥老师的创新与热情,黄红兵老师的博学与亲切,代老师的细致与严谨,这些都深深地影响着我,这将一直指引我前行。衷心感谢所有老师孜孜不倦的教诲,也衷心祝愿我们长沙理工大学的一切都会越来越好!附录源程序代码#include"reg52。h"#include"delay.h"#include”typedef.h”#include"1602.h"#include”key.h"#include”set.h"#include"18b20。h"#include"24c02。h”#include"ds1302。h"ucharPageNum=0;//0显示温湿度1显示温度和报警数值2显示湿度和报警数值floatTemp_Data=0;ucharAlarmTemp[]={32,20};//高低温度unsignedcharFeedTime[3]={0};//喂食时间unsignedcharO2Time[3]={0};ﻩ//充氧气时间unsignedcharLoopTime[3]={0}; //水循环时间sbitRELAY1=P2^2;//加水继电器sbitRELAY2=P2^1;//加热继电器sbitRELAY3=P2^0;//放水继电器sbitENA=P3^2;sbitENB=P3^3;voidTimerInit(void);voidGetTemp(void);voidPageInit(void);voidPageDisplay(void);voidDataLoad(void);//数据加载voidTempInit(void);//voidHeatControl(void);//加热自动控制voidTimer1_Init(void); ﻩ//50毫秒@11。0592MHzvoidIncO2Control(void);voidFeedControl(void);voidLoopControl(void);unsignedcharFeedSecond=0;unsignedcharO2Second=0;unsignedintLoopSecond=0;unsignedcharCountTime[3]={0};//水循环时间计时voidmain(void){Delay_1ms(100);LCD_Init();TimerInit();PageInit();DataLoad();TempInit();Timer1_Init();while(1){ﻩGetTemp();ﻩDS1302_Read();ﻩFeedControl(); HeatControl(); IncO2Control();PageDisplay();ﻩLoopControl(); Delay_1ms(50);}ﻩ}voidTimer0_Serve(void) interrupt1{ﻩTH0=(65535-20000)/256; //20MS定时TL0=(65535—20000)%256;LCD_Refresh();//LCD刷新KEY_Scan();}voidTimer1_Serve(void)ﻩinterrupt3//50ms定时{ﻩﻩstaticunsignedcharT50MS=0;ﻩTL1=0x00;ﻩﻩ//设置定时初值ﻩTH1=0x4C;ﻩ //设置定时初值ﻩT50MS++;ﻩif(T50MS>=20)ﻩ{ﻩT50MS=0;ﻩCountTime[2]++;ﻩif(CountTime[2]>=60)ﻩ{ﻩCountTime[2]=0;ﻩ CountTime[1]++; ﻩif(CountTime[1]>=60)ﻩﻩ{ﻩﻩCountTime[1]=0;ﻩ CountTime[0]++; if(CountTime[0]>23)ﻩ CountTime[0]=0;ﻩﻩ}ﻩ} ﻩ if(FeedSecond>0)ﻩ FeedSecond-—; if(O2Second〉0) O2Second—-;ﻩ if(LoopSecond〉0) {ﻩ LoopSecond—-;ﻩ }ﻩ}}voidHeatControl(void)//加热控制{/*--—---—-————-低于下限开始加热--———---———-—-—------*/ if(Temp_Data<AlarmTemp[1]) { RELAY1=0; }/*—---———--—————-高于上限停止加热—---—-—--——-—-----—-—*/if(Temp_Data〉AlarmTemp[0])ﻩ{ﻩRELAY1=1; }}voidTimerInit(void){ﻩTMOD&=0xF0; TMOD|=0X01;//T1工作在定时模式,T0工作在8位自动重载计数 TL0=(65535-20000)%256; //T0工作在定时模式50ms定时ﻩTH0=(65535-20000)ﻩ/256;ﻩET0=1; TR0=1; EA=1;ﻩ}voidPageDisplay(void){/*——--—--------——--—--—-—--—-——--——--—----——--———----—-—*/if(KeyVal==’E’){KeyVal=0;ﻩPageNum++; if(PageNum〉4)ﻩ{ﻩPageNum=0;ﻩ}ﻩPageInit();}/*--—-—-——---——--—--—--—----—-----——---—--——-----—--—*/switch(PageNum){/*--——-—--—--———-———--—————-—--—----———-------—-------*/case0: //显示和设置实时时间{ﻩﻩLCD_DisplayDate(0,Date);ﻩ LCD_DisplayTime(16,Time);ﻩ if(KeyVal==’S’) ﻩ{ﻩ KeyVal=0; ﻩSetRTC(); ﻩ }}break;/*--—--————--—-—--—-—-------———--—-—-—----—----—------*/case1: //显示实时温度和上下限值ﻩ{TempDisplay(5,Temp_Data);DisplayU8(18,AlarmTemp[0]); //DisplayU8(26,AlarmTemp[1]); ﻩ//if(KeyVal=='S’){KeyVal=0;SetTempHigLow(AlarmTemp);WrToROM(AlarmTemp,5,2);//温度存储地址0} }break;/*—---—————-—-—--—--——--—------—————--—-—---—-—---——*/ﻩcase2: ﻩ{ﻩﻩLCD_DisplayTime(16,FeedTime);ﻩﻩif(KeyVal=='S')ﻩﻩ{ﻩﻩKeyVal=0; ﻩSetClockTime(FeedTime); WrToROM(FeedTime,20,3); ﻩ}ﻩ }break;/*—-----—-—-————---——---———--—-----—----—-—---—*/case3: { LCD_DisplayTime(16,O2Time); if(KeyVal=='S')ﻩ {ﻩﻩKeyVal=0;ﻩ SetClockTime(O2Time);ﻩﻩWrToROM(O2Time,25,3);ﻩ } }break;/*-—--—---—----——--———--————-———-——-—-—-—----——-—--*/case4: {ﻩ LCD_DisplayTime(16,LoopTime);ﻩ if(KeyVal==’S’)ﻩﻩ{ﻩ KeyVal=0;ﻩﻩSetClockTime(LoopTime); ﻩWrToROM(LoopTime,30,3);ﻩﻩ}}break;ﻩdefault:{PageNum=0;PageInit();}break;}/*--------—--—-------—-----——-——-—---——--——--—--——---—*/}voidIncO2Control(void){ﻩif(1==CompareClock(O2Time,Time))ﻩ{ O2Second=60;ﻩ} if(O2Second>0) RELAY2=0; else RELAY2=1;}voidFeedControl(void){ﻩif(1==CompareClock(FeedTime,Time)) { FeedSecond=10; } if(FeedSecond〉0) {ﻩENA=0;ﻩENB=1;ﻩ}ﻩelseﻩ{ ENA=1;ﻩENB=1; ﻩ}}voidLoopControl(void){ if(1==CompareClock(LoopTime,CountTime))ﻩ{ﻩCountTime[0]=CountTime[1]=CountTime[2]=0;ﻩLoopSecond=60; } if(LoopSecond>0)ﻩ{ RELAY3=0; }ﻩelse {ﻩRELAY3=1;ﻩ}}voidTimer1_Init(void) ﻩ//50毫秒@11.0592MHz{ TMOD&=0x0F; //设置定时器模式ﻩTMOD|=0x10; //设置定时器模式ﻩTL1=0x00;ﻩﻩ//设置定时初值ﻩTH1=0x4C; ﻩ//设置定时初值ﻩTF1=0; //清除TF1标志ﻩTR1=1; ﻩ//定时器1开始计时ﻩET1=1;ﻩEA=1;}voidGetTemp(void){staticunsignedcharTempCheck=0;TempCheck++;if(TempCheck>=10){TempCheck=0;EA=0;ﻩTemp_Data=Temperature();EA=1;}}voidPageInit(void){LCD_ScreenClear();Delay_1ms(100);switch(PageNum){/*----—-——---———--—--—---—----—--—--——-————*/case0:ﻩ//显示实时时间 {ﻩ}break;/*-—-—--———----——-----—--—-—--——-—----*/case1:ﻩ//显示水温和上下限值ﻩ{LCD_DisplayString(0,"Temp:"); LCD_DisplayString(16,”H:");ﻩﻩLCD_DisplayString(24,”L:"); }break;/*-----——----——-—----—--———---------—-————-—-—-*/case2://显示和设定喂食时间ﻩ{ﻩ LCD_DisplayString(0,"FeedTime"); ﻩ}break;/*—--—--—-——-——-—-—------—---———-—*/case3://显示和设定充氧气时间ﻩ{ﻩﻩLCD_DisplayString(0,"O2Time");ﻩ}break;/*---—-—-——--—-—-—--——----—-——----—-——--—*/case4://显示和设定水循环时间ﻩ{ﻩLCD_DisplayString(0,"LoopTime”); }break;/*---—----——---—-—-——-—-—-——----—--———---—*/default:PageNum=0;break;}}voidDataLoad(void)//数据加载{RdFromROM(AlarmTemp,5,2);//温度存储地址0if((AlarmTemp[0]>100)||(AlarmTemp[1]>100)||(AlarmTemp[1]>=AlarmTemp[0])){AlarmTemp[0]=60;AlarmTemp[1]=30;Delay_1ms(50);WrToROM(AlarmTemp,5,2);} Delay_1ms(50); RdFromROM(FeedTime,20,3); Delay_1ms(50);ﻩRdFromROM(O2Time,25,3);ﻩDelay_1ms(50); RdFromROM(LoopTime,30,3);}voidTempInit(void)//{while(1){EA=0; Temp_Data=Temperature();EA=1;Delay_1ms(100);if((Temp_Data〉0)&&(Temp_Data!=85)){break;}}}山东科技大学第三届学生电子设计大赛技术报告基于Arduino单片机的智能家居系统学院:电子通信与物理学院班级:硕研2015级参赛者:张荣飞曹其栋侯焕存摘要本文中我们基于Arduino单片机设计了一个模拟智能家居系统。该系统以ArduinoUNOR3单片机为核心,外接光照检测、温湿度传感器、LED、风扇和无线通信等模块。整个系统分为检测端和控制端两大部分,检测端由光敏电阻、温湿度传感器、无线通信模块和单片机组成。控制端由无线接收、液晶显示、电灯控制和风扇控制四大模块组成,包含单片机、无线通信模块、LCD显示屏、风扇和LED等。检测端和控制端之间借助无线通信模块进行无线通信,控制端内部的无线接收和液晶显示两个模块之间则采用串口通信。该系统能够实现对室内温度、湿度和光照强度等参数的实时检测,并借助LCD显示温湿度值,还可以根据检测端探测到的光照强度和温度值以及预先设定的参数对室内的电灯和风扇进行智能控制。关键词:智能家居;Arduino单片机;自动控制;无线通信;液晶显示目录TOC\o"1-3"\h\z\uHYPERLINK\l”_Toc451277449”§1绪论ﻩPAGEREF_Toc451277449\h11.1智能家居简介 PAGEREF_Toc451277450\h1HYPERLINK\l"_Toc451277451”1.2智能家居的研究意义 PAGEREF_Toc451277451\h2§2系统总体设计方案 PAGEREF_Toc451277452\h3HYPERLINK\l"_Toc451277453”2。1系统框图 PAGEREF_Toc451277453\h32。2系统工作原理简介ﻩPAGEREF_Toc451277454\h3§3系统硬件设计 PAGEREF_Toc451277455\h4HYPERLINK\l”_Toc451277456"3.1单片机的选择 PAGEREF_Toc451277456\h4HYPERLINK3.1。1ArduinoUNO简介ﻩPAGEREF_Toc451277457\h43。1。2Arduino单片机特色 PAGEREF_Toc451277458\h53.1。3Arduino单片机引脚简介 PAGEREF_Toc451277459\h53.1.4Arduino单片机编程软件 PAGEREF_Toc451277460\h63.2温湿度检测模块设计ﻩPAGEREF_Toc451277461\h63.2.1DHT11概述 PAGEREF_Toc451277462\h63.2.2DHT11引脚说明 PAGEREF_Toc451277463\h7HYPERLINK3.2。3电源引脚ﻩPAGEREF_Toc451277464\h8HYPERLINK\l”_Toc451277465"3.2.4串行接口(单线双向) PAGEREF_Toc451277465\h8HYPERLINK\l"_Toc451277466”3.3光照检测模块设计 PAGEREF_Toc451277466\h8HYPERLINK\l"_Toc451277467"3。4无线通信模块设计ﻩPAGEREF_Toc451277467\h9HYPERLINK\l"_Toc451277468"3。5液晶显示模块设计 PAGEREF_Toc451277468\h93.5.1液晶显示模块的选择 PAGEREF_Toc451277469\h93。5.2液晶显示电路设计 PAGEREF_Toc451277470\h10HYPERLINK\l”_Toc451277471"3.6其他模块设计 PAGEREF_Toc451277471\h11HYPERLINK\l"_Toc451277472"3。6。1电灯模块设计ﻩPAGEREF_Toc451277472\h11HYPERLINK\l”_Toc451277473"3。6。2风扇模块设计ﻩPAGEREF_Toc451277473\h12HYPERLINK3。7系统硬件实物图 PAGEREF_Toc451277474\h12§4软件系统设计ﻩPAGEREF_Toc451277475\h134.1检测端程序设计ﻩPAGEREF_Toc451277476\h134。2控制端程序设计 PAGEREF_Toc451277477\h13HYPERLINK\l”_Toc451277478”§5总结ﻩPAGEREF_Toc451277478\h15参考文献ﻩPAGEREF_Toc451277479\h15附录:源程序 77480\h16§1绪论1。1智能家居简介智能家居很早就出现在人们的定义当中,但很长时间以来都没有真正意义上的智能家居成型,到了1984年美国联合科技公司(UnitedTechnologiesBuildingSystem)将智能信息融入建筑设备中,在整合的基础上应用到了美国康乃迪克州哈特佛市的城市地标性建筑中时,出现了世界上的首栋智能化建筑,也正是从那时开始,智能化家居正式融入到现代生活中。智能家居控制的发展关键在于设计理念以及经营者的心态,市场目标客户真正需要什么东西,如果只注重签单,不设身处地的为客户着想,不兼顾智能解决未来的发展,提供片面的智能家居解决方案,而不考虑客户的适用性,是不可取的,是急功近利的表现,这不仅降低了智能家居的应用效果,还不利于整个智能家居行业的发展.智能家居控制系统的市场不是一般普通的商品买卖,而是一项系统性工程,它涉及到很多技术,涉及到人们生活的方方面面,智能家居控制系统的终极目标是一种理想,更是一种理念,要想智能家居控制系统有很好的发展,研发机构必须本着长远发展的心态,本着简化、实用、性价比高、适合市场的理念,虔诚研究人们的生活、习惯、精神文化等需要,并把它看最高目标,运用各种技术手段实现它.在国内,智能家居不是单纯意义上的智能产品,也不能被狭义的理解为小区智能化,而是基于小区的多层次家居智能化解决方案。它综合利用主控平台、无线连接及通信、设备管理、整体布局布线等手段,将住户智能化管理、交互共享及消费服务、小区安防监控等常见家居因素协调配合并最终整合为整体,在原有小区智能化的大面上延伸到小区内部室内家居的具体环节,构建出高效、舒适、安全、便捷的个性化住宅空间。近几年,很多研发机构和厂商已经意识到家庭安全的重要性,把智能家居作为一个重要的方向和项目来研究,并纷纷投入大量人力财力,使智能家居真正的走向市场和产业化生产。智能家居是一个具有交互能力的平台,并且通过平台能够把各种不同的系统、协议、信息和内容控制在相对独立的模块单元中进行传输、交换。1。2智能家居的研究意义随着人们生活水平的不断提高,生活节奏的加快,人们不断的对居住环境提出更高的要求,越来越注重家庭生活中每个成员的舒适、安全和便利,因此从市场需求的角度来说,智能家居必然是前景广阔。因此设计一个符合国家国情和规范的集远程控制和本地控制为一体的智能家居控制系统是非常具有现实意义的,且势在必行。作为智能家居的核心系统的智能家居的控制系统,它的设计功能的完善必将推动住宅智能化的发展.而系统功能的集成化、用户使用的傻瓜化以及市场的平民化将是智能家居控制器的发展趋势,系统也将逐步迈向绿色化。最终,我想全人类的梦想是智能家居控制系统将囊括所有的家事杂物,让我们真正的享受舒适温馨的家庭生活.虽然智能家居经过十几年的蓬勃发展,很多功能已趋于完善和成熟,智能化家居系统的应用也越来越广泛,然而生活中的智能家居所展现出的智能化,与业主所理想的智能化还存在较大差距。而这也推动了智能化技术在家居领域的纵深发展,并为各类智能化家居新产品的设计和研发增加了动力,同时新产品的出现,也大大丰富了智能家居系统的厚度.因此,将智能家居作为这次研究的主要内容具有很大的现实指导意义。本文的目的就是设计一个简捷有效智能家居控制系统,从温度、湿度、光照强度的采集,到LCD实时显示,并根据采集的信号不同采取相应的应对机制,智能控制家中的电灯、风扇等电器设备,从而实现基本的智能家居功能.§2系统总体设计方案2。1系统框图智能家居控制系统对整个家庭内部环境进行监测和及时应对的系统,核心部分是单片机,通过与其他各监测模块和执行模块的连接,实现对室内环境的整体改变和各元件的控制。首先,主控元件对接收到的数据(如光线强暗,温度高低)通过LCD显示模块进行实时显示,使室内情况一目了然.然后根据各信号采集模块传送给单片机的数据,做出应对执行,实现家居系统的智能控制.系统总体框图如下:图2。1系统总体框图2。2系统工作原理简介本系统工作可以分为四个部分:第一部分是传感器数据采集,将温度传感器、湿度传感器以及光敏电阻分别连接到单片机①上,单片机①会将传感器采集到的实时数据进行处理;第二部分是数据传输,有两个无线模块,一个连接到单片机①上作为发射端,一个连接到单片机②上作为接收端,单片机①将处理过的数据通过发射端发送出去,单片机②通过接收端将数据接收进来,再次进行处理;第三部分是控制功能,单片机②将接收到的数据与设定的阈值进行比较,当达到阈值条件时,可以启动风扇或者电灯,另外,温度和光敏设定了几个不同的阈值,当达到某一阈值会有相应的风扇转速或者电灯亮度;第四部分,温湿度显示,单片机②将通过无线方式接收到的数据采用串口通信的方式传给单片机③,单片机③是专门用来控制LCD1602液晶显示屏的,得到数据后单片机③将数据传到液晶屏进行显示。§3系统硬件设计3。1单片机的选择首先将所需器件罗列,根据与单片机相连的各器件,确定整个系统所需与单片机连接的管脚数,通过查资料,选定Arduino单片机作为该系统的微控制器,因为它带有模拟I/O口,在外接各类传感器方面比普通的51系列单片机更为方便.Arduino单片机的模拟I/O口可以很方便地将光敏电阻和温湿度传感器等模块采集到的模拟量经A/D转换后送给单片机进行处理,而对数字信号的识别和处理正是Arduino的优势所在。3.1。1ArduinoUNO简介ArduinoUNO是ArduinoUSB接口系列的最新版本,作为Arduino平台的参考标准模板.UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSPheader和一个复位按钮。UNO已经发布到第三版,与前两版相比有以下新的特点:在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。这样改进了复位电路设计,USB接口芯片由ATmega16U2替代了ATmega8U2。图2。2为改进后的ArduinoUNO。图2.2ArduinoUNOR33.1.2Arduino单片机特色1、开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改.2、使用低价格的微处理控制器(ATMEGA8或ATmega128).可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。3、Arduino支持ISP在线烧,可以将新的“bootloader”固件烧入ATmega8或ATmega128芯片.有了bootloader之后,可以通过串口或者USBtoRs232线更新固件.4、可依据官方提供的Eagle格式PCB和SCH电路图,简化Arduino模组,完成独立运作的微处理控制.可简单地与传感器,各式各样的电子元件连接(如:红外线、超声波、热敏电阻、光敏电阻、伺服马达等)。5、支持多种互动程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。6、应用方面,利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。3。1.3Arduino单片机引脚简介Arduino单片机的数字I/O被分成两个部分,其中每个部分都包含有6个可用的I/O管脚,即管脚2到管脚7和管脚8到管脚13。在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。Arduino从数字I/O管脚上只能读出高电平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino能够读取的高/低电平.解决的办法是通过上/下拉电阻,按照电路的不同通常又可以分为正逻辑(PositiveLogic)和负逻辑(InvertedLogic)两种。Arduino的优势在于对数字信号的识别和处理,但我们所生活的真实世界并不是数字(digital)化的,简单到只要用0和1就能够表示所有的现象。例如温度这一我们已经司空见惯的概念,它只能在一个范围之内连续变化,而不可能发生像从0到1这样的瞬时跳变,类似这样的物理量被人们称为是模拟(analog)的。Arduino是无法理解这些模拟量的,它们必须在经过模数转换后变成数字量后,才能被Arduino进一步处理.3.1.4Arduino单片机编程软件Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些寄存器参数设置等都函数化了,不用我们去了解他的底层,让不太了解AVR单片机(微控制器)的朋友也能轻松上手。图2。3Arduino编程界面Arduino语言是以setup()开头,loop()作为主体的一个程序构架。官方网站是这样描述setup()的:用来初始化变量,管脚模式,调用库函数等等,此函数只运行一次.loop()函数是一个循环函数,函数内的语句周而复始的循环执行,功能类似c语言中的“main();".3.2温湿度检测模块设计智能家居的一个主要控制对象就是住户室内温湿度,适宜的温湿度为主人提供良好的家居环境,这样一来,温湿度检测与控制模块就变得尤为重要.考虑到硬件电路的复杂性,本设计中选择DHT11数字温湿度传感器来检测室内的温度和湿度,这样可以用一个传感器检测两个指标,使硬件电路得以简化。3。2。1DHT11概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性.传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接.因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数.单线制串行接口,使系统集成变得简易快捷.超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。图3.1DHT11实物图3.2。2DHT11引脚说明引脚号引脚名称类型引脚说明1VCC电源正电源输入,3V—5。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论