《基于单片机的智能浇花系统设计与实现》11000字(论文)_第1页
《基于单片机的智能浇花系统设计与实现》11000字(论文)_第2页
《基于单片机的智能浇花系统设计与实现》11000字(论文)_第3页
《基于单片机的智能浇花系统设计与实现》11000字(论文)_第4页
《基于单片机的智能浇花系统设计与实现》11000字(论文)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第1章概述1.1设计背景随着绿色地球,绿色经济等概念的提出,越来越多的人更加注重家庭绿色植物的布置,这是使家庭园艺市场异常火爆的原因之一。然而,快节奏的生活也凸显出来了很多问题,比如说很多人愿意养花,但是养不好花。越来越多的年轻人面临着巨大的压力,面临着买房买车的困境,没有固定的时间来照顾自己的盆栽,这就会使盆栽长势不好或者成活率不高。除此之外,我们的盆栽植物是绿色植物,除了它自身的可以观赏和怡情的作用以外,还具有他作为绿色植物的作用,可以吸收空气中的部分二氧化碳。研究表明,很多农村或者生活环境中绿色植物更高的地方空气都更加清新,有害气体指数更低。因此,加入种植花草队伍的人也越来越多。给花盆及时的浇水,以及浇水的周期和浇水量都是影响盆栽成长的主要因素。但是,很多人由于自己的各种原因会没时间照顾自己的盆栽,比如:出差,加班,外出旅游等。花卉的生长问题主要出现在各种浇水情况下。如果因为我们自己的照顾不周导致了盆栽长势不利,那么就违背了我们养盆栽的初心,也没有发挥出他们自身优势。因此,我想设计一款,能够解放人们双手,随时随地通过手机就能看到自己花草具体情况,并且通过对花盆湿度的检测,能够在自己设置的阈值下,自动实现浇水。也避免了因主人没时间而忽视自己的花草。造成花草死掉的后果。1.2设计目的及意义1.2.1设计目的近年来,电子行业发展极为迅速,以此为基础的智能家居行业也迅猛发展,智能冰箱,智能家电系统等为生活带来了方便和趣味。从前可能很多的技术和核心材料都要依靠外国才能完成,但是现在的中国在各个方面都处于国际前端,所以在这样一个人口大国,智能化国内市场已经是一个成熟而稳定的大市场,为我国的人民带来美好生活的同时也解决了很多人才的就业问题,挖掘出来了很多新型人才。在我国能够实现自动浇花的设备有很多,但是实现的功能和使用的原理却有很多不同,根本目的都是一样的,是为了让人们种植的盆栽植物能够正常生长。盆栽现在已经非常的普遍了,却因为人们自己的各种原因而植物的长势受到影响。智能浇花系统便可以解决到这类人群的这些问题。于此同时,如果智能浇花系统能够走向家庭,也是人们进入智能化时代的一大进步。1.2.1设计意义在中国古代,很多的文人高官就十分的喜爱种植花花草草,更有很多诗人的诗词来源于种植的花草,这可以得出从古到今有很多的人喜欢养盆栽来陶冶自己的情操,此外这也是一种休闲娱乐的方式,但是由于现代人生活压力大,越来越没有时间和经力去照顾花草盆栽。这也成为了很多盆栽死亡的主要原因。为了解决按时浇花并且可以及时观察花草的具体情况的,很多的年轻人会选择在手机的备忘录上记录时间,但是这类方法一方面没有及时的提醒作用,也存在很多其他的缺陷。市场上虽然也有很多的浇花系统,但都是捆绑销售,价格高昂,对于普通的家庭或者正在为买车买房奋斗的年轻人来说,没有办法承受。智能浇花系统能够解决这一些列的问题,该系统主要通过一个电容式的温湿度传感器,接收花盆土壤的湿度,通过AD转换器将数据转换成模拟信号再输入单片机最终显示在与单片连接的LCD电子屏幕上,通过自己对盆栽植物的了解提前在单片机上设置阈值,如果监测到湿度不够时就会自动抽水,到达指定湿度时会制动停止。除此,为了方便主人及时准确的了解盆栽植物,还将传感器的湿度传到手机蓝牙工具上,通过蓝牙接收湿度信息,在蓝牙助手上还可以设置阈值,解放养花者的时间。在样子一个简单的操作,一方面能够保障花草的正常生长,另一方面能够解放养花者的时间,享受更好的养花过程。1.3设计原理智能浇花系统的设计主要以单片机为主,利用湿度传感器获取相应的湿度信息以后通过AD转换器进行数据转换,再进行一系列的数据对比完成自动浇水。也将所检测的相关信息通过HC-05蓝牙模块进行实时传输,在手机方便能查看到相应的数据,也能实现修改湿度阈值等功能。智能浇花系统以现在流行的智能家居为基础进行的设计,设计模型以单片机为核心,用湿度传感器检测实时湿度,再通过对单片机的编程,获取传感器检测到的湿度数据,根据设置的湿度阈值进行对比,以达到超出阈值自动抽水;手机端可以通过蓝牙串口助手发送相关指令完成查询湿度信息以及调整传感器的阈值,及时浇水。

第2章智能浇花系统可行性与需求分析2.1可行性分析2.1.1技术可行性分析由于智能家电的快速崛起,很多专业人才加入,所以很多相关技术都相当成熟,在市面上有很多的测量湿度的传感器,有的不仅能检测湿度还能自动的转换数据;单片机则是在开发阶段一个成熟的简单控制系统,单片机上有很多通用接口,这些接口可以连接不同的硬件设备完成单片机对他们的控制功能,所以只对单片机进行编程,调整好接口即可完成相对应的功能,比如连接LCD那么可以在单片机上编程就可显示在LCD屏幕上。同时还可以连接蓝牙模块,可以使蓝牙设备和蓝牙连接后就可进行数据传输。正是因为现在技术的成功,资源的共享以及相关硬件设备的完善,以单片机为主要的智能浇花系统是完全可设计执行的。2.1.2经济可行性分析智能浇花系统选择的是家庭中最平凡的花盆作为服务的对象,大多数的智能家居产品面临的是冰箱洗衣机等大型家电,所测试的成本比较高昂,同时人们在选择时也会由于金钱的高昂而犹豫再三。而我们的智能浇花系统面临的是最经济便宜的花盆,所以对于消费者来说,接受程度能够更大一些。同时我们使用的材料也是最简单的,简单的单片机系统,最简单的蓝牙模块,此类硬件设施在研究方面能够节省资金,同时也更具可行性。2.2需求分析2.2.1系统需求分析经过谨慎的问卷调查表格的设置,对100位行人进行了街头问卷调查,问题主要集中在一下几点:1在学习或者工作之余是否会养绿植;2一个人住是否会觉得照料绿植是一项麻烦的事情;3如果出差是否担心绿植枯死;4如果市场出现一款可以手机控制的智能浇花器,是否会购买;5关于浇花器的价格你能接收多少元区间。经过各种调查之后,我们的出来一系列数据,并且得出一下结论:1绝大多数的人在学习和工作之余愿意养绿植;2如果自己一个人住,平时比较忙,有约一半的人会觉得养绿植很麻烦;3有超过一半的人会在自己出差的时候担心自己所养的绿植;4有四分之三的人愿意购买这类智能浇花系统;5绝大多数人能够接收100元以内的浇花器,极少数对价格没有要求。根据研究表示,智能浇花系统是一款满足市场的系统,具有开发的价值。2.2.2功能需求分析很多人喜欢养花养草等,但是由于自己工作或者学习没时间去进行照料,很容易导致自己所养的绿植枯死。养绿植不仅是对我们净化空气非常有利,同时在对我们人体的心灵有很大的作用,在养花草的过程中能够修生养性,能够让自己有个很好的心态,同时对于自己所养护的绿植一定是充满情感的。所以能够对绿植进行自动的浇水和检测湿度,是一个非常适合现在的系统。本系统主要是检测花盆的湿度,以及将数据传输到手机,让消费者能够及时的了解情况,当花盆的湿度指数小于消费者自己根据所养的植物设置的阈值,就会自动的实现抽水。我们消费者可以通过按键手动改写阈值或者通过手机的蓝牙助手输入口令来改写阈值。实现对植物水分的控制。这样子能够更科学更方便对植物的养护。湿度传感器能够直接插入花盆内部,直接接触土壤,水泵能放置在水盆或者水缸里,在外出差的时候,通过对阈值的调整和对水杠里放满水,就能实现自动浇花。同时在消费者自己比较空闲的时候,可以打开手机蓝牙助手随时随地查看花盆湿度情况,并且可以通过自己养花的经验设置一定的阈值。第3章智能浇花系统总体设计3.1系统功能设计根据上述需求分析,系统详细功能如图3-1所示:智能浇花系统智能浇花系统LCD显示模块土壤检测模块蓝牙控制模块系统设置模块湿度检测判断浇水蓝牙查询湿度值显示湿度值蓝牙阈值设置阈值设置图3-1智能浇花功能模块图3.1.1湿度检测功能盆栽成活的关键因素在于环境是否利于成长,湿度检测则是盆栽成活的关键检测因素。将湿度传感器放入土壤中,感受到土壤此时的确切湿度,通过传感器的串口与AD转换器连接,进行转换数据后再传置单片机内部,完成湿度的检测功能。3.1.2判断浇水功能通过湿度传感器对土壤湿度的检测,将检测的湿度通过模数转换后与事先设置好的湿度阈值进行对比,如若检测值小于设置阈值,则表示需要浇水,此时电机便会自动工作,LCD显示NO。如若检测值大于设置阈值,则表示不需要浇水,LCD显示OFF。3.1.3显示湿度值功能当使用湿度传感器时,将感应端放入土壤里面进行检测,再通过接口连接AD转换器,转换采集的模拟信号的数据,再传入单片机内显示再LCD上。3.1.4蓝牙查询湿度值功能通过蓝牙串口助手可以查看到土壤实时湿度,主要是通过单片机的串口与蓝牙模块相连接,再使手机下载蓝牙工具与蓝牙模块匹配后,在远程也能够通过手机接收家中盆栽的土壤具体湿度值。3.1.5蓝牙阈值设置功能通过手机蓝牙串口助手APP与单片机上的蓝牙模块相匹配,连接后即可对植物现在的湿度值以及阈值进行查询并且对所需湿度的阈值进行调控,以达到使植物最适合生长的环境。3.1.6阈值设置功能通过对不同的盆栽植物所需要的土壤湿度有不同值的了解,针对于不同的盆栽,可以通过系统按键进行设置湿度阈值,一共有四个按键,第一个按键表示进入阈值设置模块,第二和第三个模块自由调整湿度值,最后一个按键确认湿度值。以达到最适合植物生长的环境。3.2系统结构设计根据对智能浇花系统的需求分析,以及对数据的一系列流程进行分析后,可将该系统划分为5个模块:信息采集模块:主要是对盆栽的土壤湿度进行采集,能够准确的掌握土壤的信息,进行浇水预判。数据处理模块:主要是在单片机内部进行处理,将经过AD转换器转换成功的数据传入单片机内部进行相应功能的处理。显示模块:处理结束的数据会经过串口进入LCD显示屏显示。蓝牙控制模块:蓝牙模块通过手机串口助手进行连接后,能够在手机端接收湿度信息,同时能够在手机端进行阈值的修改。电机浇水模块:在处理阶段通过采集的数值与设置的阈值进行的比较后,采取自动浇水。具体的结构如下图所示:显示模块显示模块AD转换湿度传感器单片机LCD显示蓝牙控制电机浇水信息采集模块数据处理模块蓝牙控制模块电机浇水模块图3-2智能浇花系统结构图3.3设备选型3.3.1信息采集模块此模块主要功能是实现对湿度信息的采集。把传感器放到花盆的土壤中,等待一会就检测出相应的湿度信息。选择设备标准:设备应简单,体积小巧,检测灵敏,使用时间长,容易清洁,对电源要求低设备选型:电容式土壤湿度传感器,此模块插入土壤中检测湿度信号,再将获取的信号通过接口传递给A/D转换模块进行信号转换。电容式土壤湿度传感器的特点是,不采用电阻式采集信号,而是以两个电容为基础,通过两个电容之间的感应原理来检测土壤湿度,采用PVC外皮耐腐蚀,并且在内部也增加了一个能够稳定电压的芯片使检测的信号更加准确,同时支持工作的电压范围是3.3V到5.5V,输出电压在0-3V范围内;大小为长98mm宽23mm。电容式土壤湿度传感器如图3-3所示:图3-3电容式土壤湿度传感器主要功能:检测土壤的实时湿度。3.3.2数据处理模块此模块是单片机数据处理模块。单片机是系统的核心,进行着数据的总体处理,接收到检测后的数据信息后传递到连接的LCD上进行相关显示。同时,单片机在对数据进行处理后也会将数据传输到蓝牙模块,通过蓝牙匹配后手机也可查询湿度和阈值信息。单片机选型选择设备标准:体积相对小,耗电量低,引脚满足通用,代码能够兼容传统的单片机。设备选型:STC89C52RC型号单片机,体积属于较小的,而且适用很多系统,功耗的使用率也比较低,抗干扰能力强并且稳定性强。这款单片机比8051系列的单片机功能更加完善,具有两种模式分别是:6时钟/机器周期和12时钟/机器周期,可以根据自己的设计需求任意选择,指令或者代码能够和传统8051单片机共使用REF_Ref4749\r\h[1];支持的工作电压在5.5V到3.3V范围内,用户能够使用的空间为8K字节,片上集成的RAM有512字节具有看门狗功能,共有3个16位定时器/计数器REF_Ref5043\r\h[2]。STC89C52RC单片机主芯片如图3-4所示:图3-4STC89C52RC单片机A/D转换器选型选择设备标准:能够正常进行数模转换,体积小,分辨率高。选型:ADC0832,内部具有的AD转换芯片位8位分辨率,而且芯片的分辨率最高可达256级,可满足一般开发情况下的模拟量转换要求REF_Ref12981\r\h[3]。并且芯片的模拟电压输入为0-5V之间是因为芯片内部电源输入与参考电压的复用。芯片转换时间只有32us,具有双数据输出可作为数据验证,为了减少数据错误,转换速度快且稳定性强,独立芯片可使输入,使多设备挂钩和处理器控制更加方便REF_Ref13043\r\h[4]。通过DI数据输入终端,可以方便地实现通道功能的选择。A/D转换模块引脚图如下:图3-5A/D转换模块引脚图3.3.3显示模块此模块是显示模块使用LCD显示器。选择设备标准:能够清晰显示信息。设备选型:LCD1602一共有两行,分为上行和下行,能够满足系统所需要的显示,每行都可以显示16个字母数字。我们用第一行来显示CurrentSoilMoist(当前土壤湿度),第二行Re:(土壤此刻湿度)%;M:(OFF,NO)。LCD1602液晶屏如图3-6所示:图3-6LCD1602液晶屏主要功能:显示实时检测的土壤湿度以及是否需要浇水。3.3.4蓝牙控制模块此模块包括手机蓝牙模块。通过蓝牙模块传输检测到的数据,手机下载蓝牙串口APP输入指令完成接收数据,同时输入相关指令还可更改土壤湿度阈值。选择标准:与手机蓝牙可配对,响应灵敏度高。当单片机与蓝牙模块相链接,不仅可以从单片机上传输数据到蓝牙模块,也可以反向传输信息;当手机蓝牙与蓝牙模块匹配后手机远程可以通过蓝牙进行相应数据的接收以及及时调整土壤湿度阈值。蓝牙模块如图3-7所示:图3-7蓝牙模块主要功能:与手机蓝牙相匹配,通过手机串口助手对土壤湿度阈值的更改。3.3.5电机浇水模块选择标准:使用寿命长,体积小。设备选型:我们选择USB直流小水泵,由于盆栽的体积都相对小,而且水在土壤中要慢慢的渗透,选择一个小型的水泵就能满足要求,并且不占用太多地方。主要是在湿度检测后根据阈值来进行浇水,在湿度小于设置的阈值时进行浇水,当湿度达到阈值后便停止工作。电机浇水模块如图3-8所示:图3-8电机模块主要功能:抽取水池的水给盆栽浇水。第4章智能浇花系统硬件接口电路设计4.1湿度检测电路设计湿度检测使用电容式湿度传感器。内具稳压模块能够稳定检测湿度,外观呈现长条形,更加方便插入土壤。传感器的引脚比较简单只有3个,但每个引脚的作用非常重要,分别是VCC:通常接在电源的正极,适用电压为3.3-5.5V的电源,GND:接在电源负极或者直接接地,AUOT:数据输出,可以连接单片机REF_Ref13278\r\h[5]。此款传感器的主要部件是湿敏电容和转换电路,湿敏电容是两个电容成串联连接组成的,每个电容都由玻璃底衬、下电极、湿敏材料、上电极构成,湿敏材料是一种介电常数随着环境的相对湿度变化而变化的高分子聚合物REF_Ref13363\r\h[6]。当环境湿度发生变化时,湿敏元件的电容量随之发生改变,即当相对湿度增大时,湿敏电容量随之增大,反之减小(电容量通常是48-56pf间)。传感器的感应段将湿敏电容变化量通过转换电路转换成电压量变化,对应与相对湿度0-100%RH的变化,传感器的输出呈现0-1V的线性变化。检测出来的模拟信号与ADC转换器连接,进行数据的转换。电容式湿度传感器与ADC0832接口电路如图所示:图4-1电容式湿度传感器与ADC0832接口电路4.2A/D转换器电路设计1.单片机对ADC0832的控制原理一般情况下ADC0832与单片机有4条接口线并且都是数据线,分别是CS、CLK、DO、DI。但是D0和D1再通信时不能同时有效,并且和单片机的接口之间的连接是双向的,所以电路设计时可以将DO和DI并联在一起当一根数据线使用。当ADC0832在没有工作时数据线CS输入端应为高电平,这时候AD芯片处于不能工作状态,CLK和DO/DI的电平没有固定,无论处于哪个状态都可以REF_Ref13484\r\h[7]。但是当要使用芯片进行A/D转换时,须先将CS使能端置于低电平并且在转换过程中一直保持低电平保直到转换完全结束。这个时候芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用任意一端输入通道功能选择的数据信号例如:D0。起始信号是在第1个时钟脉冲的下沉之前DO端必须是高电平。接着输入2位数据用于选择通道并且必须在第2、3个脉冲下沉之前完成。A/D转换器与单片机和传感器之间的连接如图所示:图4-2ADC0832接口电路4.3LCD1602显示电路设计LCD1602液晶显示器中的液晶是一种本身不能够发光,但是被别的物质处理过后产生一种独特的性质才能发光的,所以才能去显示字符。该液晶模块之所以被称作1602的原因是此模块有两行,并且每一行可以显示16个字符或数字。LCD1602的结构是点阵字符,每个两行显示的LCD都是由32个5x7的点阵字符位组成,每个点阵字符位都可以显示一个字符,一共可显示32个字符REF_Ref13627\r\h[8]。他们之间并不是紧密相挨的,他们之间每两个字符或者每两行之间都有一定的距离,主要的作用是让人们能够清晰的看懂显示的字符,不容易混淆和检查,但是也有一个缺点就是,由于不同字符和不同行之间存在距离,所以不是任何位置都能显示。LCD1602液晶屏一共有16个引脚,每个引脚的功能都不同,如下表4-1所示:表4-1LCD1602引脚功能表编号符号引脚说明1VSS电源地2VCC5V电源正极3V0液晶显示器对比度调整端,接电源正极对比度弱,接电源负极对比度高。4RS寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。5RW读写信号线,高电平时为读操作,低电平时为写操作。6E使能端,高电平时读取信息,负跳变时执行指令。7~14D0~D78位双向数据端15BLA背光源负极或空脚。16BLK背光源正极或空脚。1602液晶模块的接口电路如图所示:图4-3LCD接口电路4.4HC-05蓝牙电路设计蓝牙串口是以蓝牙为载体,串口为最终应用。它是无线串口的一种。它可以替代现有的串口线。它的基本参数为:采用主流蓝牙芯片,采用的协议是蓝牙V2.0协议标准。工作默认电压在3.6到6V之间。波特率有多种,主要是为4800,9600,19200,38400,57600,115200,用户可自己设置,默认波特率为9600。模块尺寸大小为28mmx15mmx2.35mm。(5)配对中电流为30-40ma,配对后无通信电流为2-8ma,有通信电流为8maREF_Ref13892\r\h[9]。休眠电流:无休眠。用于导航系统、抄表系统、现场采集和控制系统。(8)可与蓝牙笔记本电脑、PC+蓝牙适配器、PDA等设备无缝连接蓝牙模块使用的波特率有两种类型:通讯波特率:是指最终应用的波特率,和使用普通串口线一样,单片机、电脑和蓝牙模块的通讯波特率应该完全相同,例如都是4800REF_Ref13944\r\h[10]。调试波特率:是指在使用之前对模块的参数进行设置时的波特率。单片机可以与电脑和手机进行通信传输信息,但本系统采用与手机进行通信。当手机端想接收蓝牙模块传输的信息时,手机端需要下载蓝牙串口助手APP。连接时需要按下蓝牙模块上的启动按键,再打开手机蓝牙进行搜索配对,配对成功后,蓝牙模块上的LED灯先快闪2次,后慢闪1次。此时便在单片机与手机之间的无线串口通道,可实现单片机到手机,手机到单片机的数据传输。蓝牙模块的电路设计如图所示:图4-4蓝牙接口电路4.5阈值设置电路设计在单片机上实现对代码或者系统的内容作转换或者调整最简单的是加入按键,但是由于按键个数和单片机接口的不同,会有很多种不同的设计方法,而且每种都有着不同的优缺点。而在系统中我选择的是最简单的也是最常见的,也就是一个I/O口对应一个按钮开关。系统中我使用P0到P3作为按键的I/O端口,在按键上每个都外接一个上拉电阻,也就是这个上拉电阻在控制着开关的状态,在按键没变化的时候,是高电平,一旦有按键按下,上拉电阻就发挥作用,下拉变成低电平。通过按键可以实现对阈值的调控,首先按下设置键即进入设置模式,然后根据具体数值进行调整,按加号键一次阈值增加百分之一,按减号键一次阈值减少百分之一,最后按下确定键即完成阈值设置。具体接口电路如下:图4-5阈值设置接口电路图4.6系统硬件电路设计STC89C52RC型号单片机具有超强的抗干扰能力,并且耗能相对较小,是最新研究的运行速度快的一代单片机。有5个端口P0,P1,P2,P3,P4。P0口引脚范围是P0.0-P0.7,这里面的八个引脚口最基础的功能是进行数据的输入输出,除此之外还可以把他们当成地址和数据的复用总线使用。P1口引脚范围是P1.0-P1.7,P1最简单的功能是一个双向数据传输的8位带上拉电阻的引脚,还有两个口还有其他的功能,P1.0和P1.1还可以作为定时器/计数器2的外部计数输入和触发输入REF_Ref14045\r\h[11]。P2口引脚范围是P2.0~P2.7,P2口和P1口有类似的功能,都是带上拉电阻的8位双向数据传输口,还有一个功能就是高8位地址总线(A8-A15)。P3口引脚范围是P3.0~P3.7,P3的基础功能和P1,P2相同,同时P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入,P3口除作为一般i/0口外,还有其他一些复用功能,能够满足更多的需求REF_Ref14153\r\h[12]。在系统中,单片机是整个系统的核心,所有的程序代码都是在单片机内运行的,同时也进行着相关数据的处理。一方面单片机与处理数据的AD转换器连接,接收到处理结束的数据,另一方面连接着显示器LCD,按键和蓝牙模块。传感器将采集到的湿度信息通过AUOT口传输到ADC0832转换器里面进行模数处理。处理过的数字信号再通过D0口传输到单片机内部进行处理。最终将接收到的信号通过P0接口显示在LCD1602上,同时也通过TX接口将数字信息传输至蓝牙模块。在蓝牙端需要写进单片机的信息通过RX口再写入单片机内部,同时按键的输入也通过P2口传递进入单片机内部。整个系统的电路设计如下图:图4-6系统硬件电路图第5章智能浇花系统软件设计智能浇花系统分为五个模块,湿度采集模块,A/D转换模块、液晶显示模块、阈值设置模块以及蓝牙控制模块。湿度采集模块主要是如何获取湿度数值程序;A/D转换模块主要是数据进行模拟信号到数字信号过程的程序;液晶显示模块是LCD上显示初始化和湿度的程序;阈值设置模块是按键调整阈值的程序;蓝牙模块的程序即是展示如何将单片机与与蓝牙模块连接。5.1湿度采集模块信息的采集通过传感器进行,首先是将传感器检测端插入土壤,等待相关信号传出到与之连接的数模转换器,转换后再经过串口传输到单片机内部进行后续的处理。采集流程图如下:图5-1湿度采集程序流程体电容式湿度传感器通过湿敏原件原理进行数据的采集,并且将采集到的相应湿度信息通过AUTO数据管口进行数据输出。程序代码(部分代码如下)。voidUsartRX(void){unsignedintlen=0; if(USART_RX_STA&0x8000) {len=USART_RX_STA&0x3fff;//得到此次接收数据的长度 if((USART_RX_BUF[0]=='R')&&(USART_RX_BUF[1]=='E')&&(USART_RX_BUF[2]=='A')&&(USART_RX_BUF[3]=='D')){TX_Humidity(); USART_RX_STA=0; }elseif((USART_RX_BUF[0]=='M')&&(USART_RX_BUF[1]=='O')&&(USART_RX_BUF[2]=='D')&&(USART_RX_BUF[3]=='I')&&(USART_RX_BUF[4]=='F')&&(USART_RX_BUF[5]=='Y')){ LCD1602_Rest(); Display_Flag=1; TX_Humidity1(); USART_RX_STA=0; } else5.2A/D转换模块A/D转换模块一边连接传感器AUTO接口进行数据的接收,另一边连接单片机的D0接口将转换成数字信号的湿度信息传递到单片机进行处理。AD转换模块工作主要通过CS端口和CLK端口的值来确定。通道值读取部分代码如下:ucharADC0832_ADC(charCH){uchari,dat1=0,dat2=0; CS=0;CLK=0;DIO=1;_nop_();_nop_(); CLK=1;_nop_();_nop_(); CLK=0;DIO=1;_nop_();_nop_(); CLK=1;_nop_();_nop_(); if(CH==0){ CLK=0;DIO=0;_nop_();_nop_();CLK=1;DIO=1;_nop_();_nop_();} if(CH==1){ CLK=0;DIO=1;_nop_();_nop_();CLK=1;DIO=0;_nop_();_nop_();} CLK=0;DIO=1;_nop_();_nop_(); for(i=0;i<8;i++) { CLK=1;_nop_();_nop_(); CLK=0;_nop_();_nop_(); dat1=dat1<<1|DIO;} for(i=0;i<8;i++) { dat2=dat2|((uchar)(DIO)<<i); CLK=1;_nop_();_nop_(); CLK=0;_nop_();_nop_();} CS=1; } ……5.3液晶屏显示模块LCD1602液晶显示屏为两行显示液晶屏,每行显示的内容都不同,首先要对显示屏进行初始化,并且初始化显示的内容为CurrentSoilMoist(当前土壤湿度)。液晶屏初始化部分代码如下:voidLCD1602_Init(){ lcdrw=0; lcden=0; Write_Cmd(0x38); Write_Cmd(0x0e); Write_Cmd(0x06); Write_Cmd(0x01); Write_Cmd(0x80); Write_Cmd(0x0c);}LCD1602,第一行显示初始化内容;第二行显示实时湿度,为%形式,同时显示是否需要浇水。显示代码如下:voidLCD1602_SetRAM(unsignedcharx,unsignedchary){ucharaddr; if(y==0) addr=0x00+x; else addr=0x40+x; Write_Cmd(addr|0x80);}voidLCD1602_Show(unsignedcharx,unsignedy,unsignedchar*str){LCD1602_SetRAM(x,y); while(*str!='\0') {Write_Dat(*str++); }}voidLCD1602_num(unsignedcharx,unsignedy,unsignedcharj,unsignedinti){LCD1602_SetRAM(x,y);if(j==1) {Write_Dat(i+'0');}if(j==2) {if((i<10)&&(i>=0)) {Write_Dat(0+'0'); Write_Dat(i+'0'); }elseif((i<100)&&(i>=10)) {Write_Dat(i/10+'0'); Write_Dat(i%10+'0');}}if(j==3) {if((i<10)&&(i>=0)) {Write_Dat(0+'0'); Write_Dat(0+'0'); Write_Dat(i+'0'); }elseif((i<100)&&(i>=10)) {Write_Dat(0+'0'); Write_Dat(i/10+'0'); Write_Dat(i%10+'0'); } elseif((i<1000)&&(i>=100)) {Write_Dat(i/100+'0'); Write_Dat(i%100/10+'0'); Write_Dat(i%10+'0'); } }……5.4阈值设置模块通过传感器的信息采集结合不同盆栽的生长情况,可以手动通过按键输入对盆栽的具体湿度阈值进行设置,保证能够使盆栽正常生长。相关按键输入代码如下:voidKEY_IN(void){if((KEY1==0)&&(KEY1_Flag==0)) {KEY1_num=1; KEY1_Flag=1; }if(KEY1)KEY1_Flag=0; if((KEY2==0)&&(KEY2_Flag==0)) {KEY2_num=1; KEY2_Flag=1; }if(KEY2)KEY2_Flag=0; if((KEY3==0)&&(KEY3_Flag==0)) {KEY3_num=1; KEY3_Flag=1; }if(KEY3)KEY3_Flag=0; if((KEY4==0)&&(KEY4_Flag==0)) {KEY4_num=1; KEY4_Flag=1; }if(KEY4)KEY4_Flag=0;}5.5蓝牙控制模块使用蓝牙模块不仅可以在手机端查询湿度、阈值等信息,还可以修改阈值完成浇水。通过蓝牙之间的互相配对,配对成功后手机端发送相关指令,就可以收到土壤此时的湿度,并且输入修改指令便可修改阈值。蓝牙连接具体实现代码如下所示:voidUART_ISR(void)interrupt4{ uint8Res; if(RI){ TR0=0; RI=0; Res=SBUF; if((USART_RX_STA&0x8000)==0)//接收未完成 { if(USART_RX_STA&0x4000)//接收到了0x0d{ if(Res!=0x0a)USART_RX_STA=0;//接收错误重新开始 elseUSART_RX_STA|=0x8000; //接收完成 } else//还没收到0X0D{ if(Res==0x0d)USART_RX_STA|=0x4000; else{ USART_RX_BUF[USART_RX_STA&0X3FFF]=Res; USART_RX_STA++; if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始 }}}}}第6章调试6.1信息采集及显示模块功能调试信息采集模块首先是将传感器插入土壤中,湿度传感器在接触到湿敏信号以后开始采集信息。再将传感器与AD转换器通过引脚线路连接。将采集到的模拟信号传递给数模转换模块进行处理。将AD转换器通过引脚线路与单片机连接后,即可将数据传送至单片机内部。LCD1602通过与单片机的P0接口连接。即可以显示出相关的湿度信息。同时,蓝牙模块通过TX接口与单片机的连接,也能进行湿度信息的查询,手机端通过下载蓝牙串口助手就可查看盆栽土壤湿度相关信息,还可以更改阈值,即完成智能浇花系统的功能。LCD的显示屏上显示如下:第一行来固定显示CurrentSoilMoist,第二行re:%(土壤此刻湿度);M:(OFF,NO)是否需要浇水。如图所示6-1图6-1LCD参数显示6.2按键调节阈值调试根据不同的盆栽在不同时间下需要的湿度都不同,可以通过按键进行土壤湿度阈值调整,进而来控制对土壤是否浇水。从上往下一共四个按键,每个按键都有不同的功能。第一个按键是设置,按下表示进

温馨提示

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

评论

0/150

提交评论