远程智能浇花灌溉系统

提交时间:2021-01-07 02:09:22

正文字符数:8347

正文字数:6935

19.13%

  • 红色代表重复
  • 灰色代表不参与检测
  • 黑色代表原创

广东创新科技职业学院

毕业设计(论文)

题 目 远程智能浇花灌溉系统

系 名 信息工程学院

专业 物联网应用技术

班级 18物联网1班

姓名 陈卓希

学号 1801220108

指导老师 聂影影

系主任 冯天亮

2021年 4 月 25 日


摘 要

由于互联网技术的高速发展,智能家居的推广已经势不可挡。伴随人们生活水平的提高,人民越来越注重环境质量。养殖花卉成了首要选择,在家中阳台种植

花卉已经成为追求高雅的生活方式。同时花卉可以通过光合作用吸收二氧化碳释放氧气同时还可以净化空气,而且花卉还可以吸收有毒物质例如刚装修的房屋里的笨、甲醛等。

本文针对出差在外浇灌不便的问题,设计了一套远程智能浇花灌溉系统,,利用互联网技术和智能手机等实现了远程浇灌的目的。首先,本文阐述了远程智能浇花灌溉系统的研究现状,并据此提出了系统整体的设计方案, 设计了一种远程的智能浇花灌溉系统,该浇花系统以Arduino UNO为核心控制系统,其次,根据设计思路将整个系统的硬件部分分为五大模块,即LCD1602液晶显示屏、DHT11温湿度传感器、土壤湿度传感器、继电器、BT-04蓝牙模块、蜂鸣器、光敏传感器、led灯。软件部分为Arduino UNO和手机蓝牙显示部分。Arduino UNO收集到的温度、湿度、光照强度等信息处理后显示在LCD1602液晶显示屏上。通过LCD1602液晶显示屏显示,能够更加直接的显示当时的数据。然后通过蓝牙模块将数据传输到手机上。用户看到显示的数据对花卉的成长环境不利时,可以在手机上手动发送信息指令,使得花卉拥有最适宜的成长环境。通过温度传感器和湿度传感器检测盆栽土壤的温度和湿度,当温湿度传感器检测到土壤湿度高于恒定值时,土壤湿度过高通过蜂鸣器进行报警,利用led灯进行光照,减少土壤的湿度,检测到土壤湿度到恒定值时,停止光照;检测到土壤温度过高时,运用蜂鸣器进行报警,并开启水泵给土壤加水,使得土壤的温度降下来,温度传感器检测到温度下降到一定的值,就停止水泵加水。光敏传感器,当检测到白天光照不能维持花卉光合作用的最佳状态时进行自动打开灯光进行补光。夜晚时,自动补光功能开启,随时给花卉提供最多的光合作用。运用蓝牙模块和手机进行连接,使得爱花人士能够远程的,随时随地监控和操控花卉。

关键词: Arduino;Arduino客户端;温湿度传感器;蜂鸣器;继电器;LED灯;蓝牙模块;自动浇花。


Abstract

Due to the rapid development of Internet technology, the promotion of smart home has become unstoppable. With the improvement of people's living standard, people pay more and more attention to environmental quality. Breeding flowers has become the primary choice, growing flowers on the balcony of the home has become the pursuit of elegance lifestyle. At the same time, flowers can absorb carbon dioxide through photodecoration to release oxygen at the same time can also purify the air, and flowers can also absorb toxic substances such as newly renovated houses, formaldehyde and so on. In this paper, a set of remote intelligent watering irrigation system is designed for the inconvenience of traveling outside watering, and the purpose of remote watering is realized by using Internet technology and smartphones. Firstly, this paper expounds the research status of the remote intelligent flowering irrigation system, and puts forward the overall design scheme of the system, designs a remote intelligent flowering irrigation system, which takes Arduino UNO as the core control system, and secondly, divides the hardware part of the whole system into five modules according to the design idea, namely LCD1602 LCD display, DHT11 temperature and humidity sensor, soil moisture sensor, relay, BT-04 Bluetooth module, buzzer, light sensor, Led lights. The software section is the Arduino UNO and the Bluetooth display portion of the phone. Information collected by Arduino UNO on temperature, humidity, light intensity, etc. is processed and displayed on the LCD1602 LCD display. The LCD 1602 LCD display allows for a more direct display of the data at that time. The data is then transferred to the phone via the Bluetooth module. When the user sees that the displayed data is not conducive to the growth environment of flowers, they can manually send information instructions on their mobile phones, so that flowers have the most suitable environment for growth. The temperature and humidity sensor detect the temperature and humidity of the potted soil through the temperature sensor, when the temperature and humidity sensor detects that the soil moisture is higher than the constant value, the soil humidity is too high through the buzzer alarm, the use of led lights for lighting, reduce the soil moisture, detect the soil moisture to a constant value, stop the light; Just stop the pump from watering. A photosensitive sensor that automatically turns on the light to make up the light when it detects that daytime lighting does not maintain the optimal state of floral photosynthresitation. At night, the automatic lighting function is turned on, ready to provide flowers with the most photonics. The use of Bluetooth module and mobile phone connection, so that flower lovers can remotely, anytime, anywhere monitoring and control of flowers.

Keywords: Arduino; Arduino client; Temperature and humidity sensor; buzzer; relay; LED light; Bluetooth module; automatic flowering.


目录

第一章绪论...........................................................1

1.1研究背景及意义...........................................................1

1.2设计的任务及要求...........................................................1

第二章方案论证与选择...........................................................4

第三章系统的硬件设计...........................................................7

3.1总体设计...........................................................7

3.2主控模块硬件设计...........................................................7

第四章系统的软件设计...........................................................14

4.1程序设计方法...........................................................14

4.2单片机开发系统...........................................................14

第五章安装与调试...........................................................17

5.1调试过程...........................................................17

5.2调试过程中遇到的问题及其解决方法...........................................................18

5.2.1硬件系统的可靠性设计...........................................................18

5.2.2软件系统的可靠性设计...........................................................19

结论...........................................................21

附录一:系统电路原理图...........................................................22

附录二:实物图...........................................................23

附录三:程序代码...........................................................24

参考文献...........................................................47

致谢...........................................................48


第一章 绪论


1.1研究背景及意义


很多居民为了装饰自己的家,让生活变得更加的多彩,他们喜欢在阳台上培养一些花卉,净化屋子里的空气。但人们的生活节奏越来越快,事情越来越多。有些人忘记给花卉浇水。有些人忙于出差,不能及时帮花卉浇水。花卉是很需要水分的浇灌,需要经常浇水。一旦人们忘记浇水,花卉就会干枯。有调查显示,花卉生长的问题75%是由于花卉灌溉问题引起的。一些昂贵的花卉,更容易因为浇水问题而成长不好,更严重的还会干枯甚至凋亡。一些生长条件严格的花卉,更加需要适度的温度和湿度环境。人为的过度浇水很容易导致花卉的根部腐烂或者滋生细菌。或者摆放在阳台,太阳的高温汲取土壤中的水分,使得土壤缺失了水分,破坏了花卉的正常生长。


虽然国内外都有卖远程智能浇花灌溉的装备,但技术的不成熟,运用的范围不广泛,使得很少人去开发这方面,导致它昂贵的价格,高额的价格让人望而却步。现在市面上的远程智能浇花灌溉装置系统,大部分都是只能按指定的时间给花卉浇水,很难适时、适量的给花卉浇水。也很难知道花卉的温度适不适宜。还有的系统知道花卉缺少水分进行报警,但却不能及时的为花卉浇水。这功能只是能起到表面上的提醒作用,而没有从根源上解决问题。所以我们设计的远程智能浇花灌溉系统,通过传感器得知土壤的温度、湿度、光照强弱并发送到Arduino UNO上,由Arduino UNO判断花卉是否缺水并传送到水泵,达到适量浇水。判断土壤的温度是否充足,温度充足过头开启水泵进行降温,温度不足就开启LED灯进行补光。判断花卉光照是否充足,光照不足就打开LED灯进行补光,当夜晚检测到光照不强烈时,进行补光。我们设计的这套远程智能浇花灌溉系统比传统市面上的浇花系统更加简单,能实现多功能和更加完整。


1.2设计任务及要求


任务:1.Arduino UNO收集到的温度、湿度、光照强度等数据信息处理后显示在LCD1602液晶显示屏上。通过LCD1602液晶显示屏显示,能够更加直接的显示当时的数据。


2.根据温度传感器和湿度传感器检测盆栽土壤的温度和湿度的数据时,当温湿度传感器检测到土壤湿度高于恒定值时,土壤湿度过高通过蜂鸣器进行报警,利用LED灯进行光照,减少土壤的湿度,检测到土壤湿度到恒定值时,停止光照。


3.当温湿度传感器检测到土壤湿度较低时,开启水泵给土壤加水,给土壤补充水分,使得土壤变潮湿,当温度传感器检测到土壤的湿度到适量的值,就停止给水泵加水。


4.运用蓝牙模块和手机进行连接,蓝牙模块将数据传输到手机上。用户看到显示的数据对花卉的成长环境不利时,可以在手机上手动发送信息指令,使得花卉拥有最适宜的成长环境。使得爱花人士能够远程的,随时随地监控和操控花卉。


第二章 方案论证与选择


2.1系统整体方案


图1


我们选择用Arduino UNO这块单片机来做我们的主脑,它是这个远程浇花灌溉系统的核心人物。它有接收数据信息和发送数据信息的作用。拥有一个优秀的主脑,就差不多等于拥有一个优秀的系统。一个优秀的主脑,它不仅有判断数据信息对错的能力,还有正确的眼光、明确的目标和指示。LCD1602液晶显示屏是我们的外表,它把我们想要显示的数据信息都显示出来,就如同我们日常生活中,别人看到我们的外表、体态等方面,给别人的第一感觉和印象,让别人对你有初步的印象和了解。Arduino UNO收集到的温度、湿度、光照强度等信息处理后显示在LCD1602液晶显示屏上。通过LCD1602液晶显示屏显示,能够更加直接的显示当时的数据。然后通过蓝牙模块将数据传输到手机上。用户可以方便快捷、简洁的看到显示的数据,当看到各种因素对花卉的成长环境不利时,可以在手机上手动发送信息指令,使得花卉拥有最适宜的成长环境。通过温度传感器和湿度传感器检测盆栽土壤的温度和湿度,当温湿度传感器检测到土壤湿度高于恒定值时,土壤湿度过高通过蜂鸣器进行报警,利用led灯进行光照,减少土壤的湿度,检测到土壤湿度到恒定值时,停止光照;检测到土壤温度过高时,运用蜂鸣器进行报警,并开启水泵给土壤加水,使得土壤的温度降下来,温度传感器检测到温度下降到一定的值,就停止水泵加水。光敏传感器,当检测到白天光照不能维持花卉光合作用的最佳状态时进行自动打开灯光进行补光。夜晚时,自动补光功能开启,随时给花卉提供最多的光合作用。运用蓝牙模块和手机进行连接,使得爱花人士能够远程的,随时随地监控和操控花卉。


2.2硬件部分方案论证与选择


Arduino UNO


选择Arduino UNO是因为1.它相较于其它的单片机控制器,它可以在三大知名的平台上操作系统上运行,而其他大多数单片机控制器只能在Windows上开发。2.对于我们刚入行的小白来说,它较为容易的掌握,也可以进行图形化编程,它的使用方式具有灵活性。Arduino UNO语言是基于很简单的语言来开发,它有一个好处的就是不需要太多的基础,简单学习后,你也可以用它来进行简单的开发。它很适合初学者入门嵌入式开发。相对来说,比较容易上手。3.Arduino UNO大部分核心库文件都是开源的,开源的意思就是这些硬件的全部资料都对外公开,这些资料任何人都可以用,不用担心版权问题。包括电路图、元件列表、软件、固件、器件列表以及印刷版图,举一个例子,我们以Arduino UNO为基础,制作我们自己的兼容板,开发更自由,在协议允许的范围内,我们可以任意修改代码,创造属于你自己的代码,当你代码运行通过后,你也能从小白向王者靠近。4.我们的硬件部分Arduino UNO可以和面包板、扩展板可以配套使用,与面包板直接连接,就可以减去焊接的步骤,可以更加容易的实现我们的电路设计。 5. Arduino UNO现在最流行的开源硬件,也是一个很棒的硬件开发平台,它简单的开发方式优点让更多的人加以关注创意与实现,也可以更快的完成自己的项目,一来不仅可以节约了学习的时间和金钱,还可以减少了开发的时间。6.Arduino UNO它有较多的供电方式,有三种:第一种是直流电源插孔,它是用电源插孔。电源插孔通常连接到一个适配器。开发板的供电范围是5-20V。第二种是VIN引脚,这个引脚用于使用外部电源为Arduino Uno开发板供电。电压应控制在5-20V;请勿尝试通过5V或3.3V引脚为其供电,否则会损坏电路板上的电路调节器。第三种是USB电缆,当连接到计算机时,会提供500mA5V的电压。


LCD1602液晶显示器


LCD1602液晶显示器模块与数码管模块相比较,LCD1602液晶显示器在市场上流行使用多年,技术成熟,在耗能低的应用系统中广泛的应用,它的外形显得更为专业。价格方面普遍较低,。它的功耗相较于其它的数码管而言更少,它的体积相较于其它的数码管而言更小,超薄轻巧。它呈现出来的内容较为丰富、使用方便等诸多优点,使这些手机APP的开启界面变得越来越简洁形象,目前已广泛应用于电子表、计算器、便携式电脑等许多方面。LCD1602液晶显示器模块是目前系统中使用最为广泛的液晶屏之一。它能够同时显示32个字符。


有源蜂鸣器:


有源蜂鸣器是一种能将音频信号转化为声音信号的发音器件,它的主要功能是提示或报警,根据你所需要的功能不同,有源蜂鸣器能够设计出用途不同的声音,有源蜂鸣器能发出蜂鸣声、警报声等各种不同的声音。就如同我们的身体器官一样,当某一部分器官出现了问题,我们的身体就会有不同的反应。例如我们的心脏出现了问题,我们的心脏感到疼痛,我们的大脑就会传送我们心脏疼痛的反应给我们知道。有源蜂鸣器报警的功能在远程智能浇花灌溉系统中就起到了一个关键的作用,它能够提醒用户,花卉的湿度和温度出现了异常。我们要及时的改善这些异常的情况。我们采用的是有源蜂鸣器,有源蜂鸣器的优点是:程序操作和控制比较方便。有源蜂鸣器比无源蜂鸣器多了个震荡电路,所以有源的比无源的贵。它的外形和无源蜂鸣器的相比,没有用黑胶封闭的是有源蜂鸣器。它能够持续发出声音,且电阻在几百欧以上。有源蜂鸣器会在标签上直接注明,给它们接上额定电源,就可连续发声。


DHT11温湿度传感器


DHT11温湿度传感器是一个有数字校准信号输出的温湿度复合传感器。它用的是采集数字模块技术和温湿度传感技术,用来保证产品的可靠性与稳定性。它的性价比高,质量好,反应快,抗干扰能力强等优点DHT11温湿度传感器袖珍般的体积、很少的功能损耗,采用的是单线制串行接口,使得操作更加的简易快捷。


2.3 软件部分方案论证与选择


OCROBOT


OCROBOT的控制板除了单片机核心之外还包含了众多的外围电路,使用者直接通过USB接上电脑就可以把程序下载进入控制板。


BT-04蓝牙模块


该模块最重要的特性是省电,低速的运行和待机功耗可以让一粒纽扣电池连续工作很多年。此模块主要用于短距离的发送和接收数据。


Arduino客户端


在Arduino客户端下载一个软件,并利用BT-04蓝牙模块,就可以与Arduino客户端软件连接,可以方便快捷的显示数据,省时间省力。


第三章 系统的硬件设计


3.1总体设计


我们运用Arduino UNO与DHT11温湿度传感器lcd1602液晶显示器、蜂鸣器、水泵和LED灯组成的一个小系统,用Arduino UNO来控制其它模块的运行。DHT11温湿度传感器将收取到的信息提供给Arduino UNO,当Arduino UNO接收到温度、湿度、光照条件对花卉成长不利的数据信息时,根据我们调好的数据,Arduino UNO就会启动蜂鸣器、水泵和LED灯。调节各个模块的数据,最后各个条件都能达到花卉最好的生长环境。


3.2 主控模块硬件设计


Arduino UNO


该单片机有14个数字引脚和6个模拟数字引脚。14个引脚是引脚0至引脚13,其中有6个PWM:3,5,6,9,10,11。这6个引脚可以用作PWM(脉冲宽度调制)引脚,使用这些引脚可以依次控制电压和亮度,每个引脚可以接收最高40 mA的电流。但推荐的电流是20毫安。所有引脚提供的最大电流为200mA;引脚0和引脚1用于接收和传输串行数据。模拟引脚:到引脚A5:主要功能是从模拟传感器读取。在电源插孔的正极与VIN引脚之间连接有一个二极管,额定电流为1安培。使用的电源决定了可用于电路的功率。例如,当使用USB为电路供电时,电流最大限制在500mA。当通过电源插座或VIN为电路供电时,可用的最大电流取决于Arduino开发板上的5V和3.3V稳压器。


引脚介绍:


1.5V和3.3V:它们提供稳压的5V和3.3v,向外部组件供电;


2.GND:简称就是地线,它用于闭合电路回路,并在整个电路中提供一个公共逻辑参考电平。Arduino UNO里面有5个互连的GND引脚。确保所有的GND相互连接并且有共同点。


3.RESET:该引脚可以对开发板进行复位;接在数字引脚,可以通过数字引脚置低电平复位。


4.IOREF:该引脚是输入输出参考,提供了微控制器工作的参考电压。


5.TX和RX引脚: 标有TX(发送)和RX(接收)的两个引脚用于串口通讯。其中标有TX和RX的LED灯连接相应引脚,在串口通讯时会以不同速度闪烁。


LCD1602液晶显示器


LCD1602液晶显示器表示每行显示16个字符,一共可以显示两行。LCD1602液晶显示器通常被叫字符型液晶显示器,只能显示ASCII码字符,12232表示液晶显示画面由122列、32 行组成,共有122*32 个点来显示各种图形LCD1602液晶显示器的操作相对来说比较简单,实现数据、指令和初始化这三个控制的函数,我们就可以较为容易的控制LCD1602液晶显示器,我们在执行指令前要确认模块是是否是低电平,如果是低电平表示它没有在工作,不是不忙,但如果是高电平,我们继续输入的话,这个指令就会失败。我们在显示字符时先输入字符地址,这样就不会让这个指令失效。


硬件参数


1. LCD1602液晶显示器容量:32个字符


2.芯片工作电压:4.5—5.5V


3. LCD1602液晶显示器工作电流:2mA


4. LCD1602液晶显示器工作电压:5V


初始化函数


a.设置写操作:RW设为低电平;


b.屏幕设置模式:写指令38H;


c.打开LCD1602液晶显示器显示,关闭LCD1602液晶显示器光标:写指令0CH;


d.设置LCD1602液晶显示器显示移动的位置:写指令06H;


e.设置LCD1602液晶显示器字符显示的位置:写字符显示开始和结束位置。


引脚介绍:


第1脚:VSS接地电源。


第2脚:VDD接5V正电源。


3脚:VL为液晶显示器对比度调整端,接正电源时最弱,接地时最高。


第4脚:RS为寄存器选择,高电平选数据寄存器,低电平选指令寄存器。


第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。


第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。


第7~14脚:D0~D7为双向数据线。


第15脚:背光源的正极。


第16脚:背光源的负极。


指令编程(1为高电平、0为低电平)


指令1:清除显示的数据。


指令2:光标复位,光标返回到地址00H。


指令3:光标移动方向,高电平右移,低电平左移。高电平表示有效,低电平则无效。


指令4:显示开关控制。C:控制光标的开关,高电平有光标,低电平没有光标。代码B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。


指令5:S:高电平时移动显示的文字,C:低电平时移动光标。


指令6:功能设置命令


指令7:字符发生器地址设置。


指令8:DDRAM地址设置。


指令9:读忙信号和光标地址 BF:忙标志位,此时是高电平,不能接收命令或者数据,如果为低电平,就表示不忙,可以接收命令或者数据。


指令10:写数据。


指令11:读数据。


有源蜂鸣器


有源蜂鸣器是利用定时器来定时的,通过定时翻转电平产生的波形,它就可以让蜂鸣器运行。有源电磁式蜂鸣器用直流电压输入相应电压(可以由小调到大),频率大概2.7KHZ ,它可以直接响。有源蜂鸣器内部带震荡源,所以只要一通电就会响。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。还有要注意的就是:继电器的驱动电压,不能超过限制电压,不然会烧掉继电器;


引脚介绍:


VCC外接3.3V-5V电压


GND:接地


IO口:接收低电平和高电平的输入


BT-04蓝牙模块:


引脚介绍:


VCC: 与电源的正极连接(3.3-5V)


GND:与电源的负极相连接,相等于接地


RXD:接收端,BT-04蓝牙模块接收其它模块发来的数据,一般来说,与其他设


备的发送端TXD相连接


TXD:发送端,BT-04蓝牙模块发送数据给手机APP;一般来说,它与其他设备的


发送端RXD相连接


STATE:开始状态端


EN:使能端,当要进入到AT模式时,接3.3V


第四章 系统的软件设计


4.1程序设计方法


BT-04蓝牙模块:


首先按住BT-04蓝牙模块上的复位键然后再上电,看见BT-04蓝牙模块上的LED灯以2s间隔闪烁,就表示进入了AT模式,我们这个系统设置电脑串口助手的波特率设置为9600。能够搜索别的蓝牙模块并主动建立连接,从机则不能主动建立连接,只能等别人连接自己。


Arduino客户端:


利用Arduino客户端已有的APP,用BT-04蓝牙模块与APP相连接。我们发送AT+RESET之后,当BT-04蓝牙模块以每秒0.5的间隔闪烁时,这就表示Arduino客户端APP和BT-04蓝牙模块自动连接。我们可以打开手机蓝牙搜索到该蓝牙,然后输入我们之前的配对码进行连接。想要实现的数据发送相对应设定的值。


4.2单片机开发系统


OCROBOT


编辑窗口中有两个函数,一个是setup,这个函数将在程序运行一开始就调用,通常是进行一些管脚的初值设置;而loop就是程序运行的主函数,系统会不断循环调用loop,我们将软件逻辑写在loop函数中就可以了。


常用函数:


pinMode(pin, mode):设置数字管脚的输入或者输出,pin可以取0-13,对应14个数字管脚。


digitalWrite(pin, val):设置数字管脚输出电平,val取值为HIGHLOW之一


digitalRead(pin):读取数字输入管脚的电平,函数返回值为HIGHLOW之一,通常根据返回值为高或者低从而进行不同的处理。


analogRead(pin):读取模拟输入管脚的值,pin取值为A0 – A5;返回0-1023之间的值


analogWrite(pin, val):设置数字管脚中的PWM管脚的输出值,val取值为0-255


Serial.begin(speed):初始化串口,设置串口速率


Serial.print()Serial.println():输出函数


delay(val):延时函数,单位为ms


第五章 安装与调试


5.1调试过程及效果


DHT11温湿度传感器将收集到的温度、湿度数据信息发送到Arduino UNO,Arduino UNO将这些数据信息显示到lcd1602液晶显示器,然后Arduino UNO来判断这些数据信息是否达到花卉最适合的生存环境。通过DHT11温度传感器和湿度传感器检测盆栽土壤的温度和湿度,当温湿度传感器检测到土壤湿度高于恒定值时,土壤湿度过高,Arduino UNO就会开启蜂鸣器进行报警,利用led灯进行光照,减少土壤的湿度,检测到土壤湿度到恒定值时,停止光照;检测到土壤温度过高时,运用蜂鸣器进行报警,并开启水泵给土壤加水,使得土壤的温度降下来,温度传感器检测到温度下降到一定的值,就停止水泵加水。一环扣一环,哲让系统的连接性紧密起来。


5. 2调试过程中遇到的问题及其解决方法


问题:


1.DHT11温湿度传感器不是很准确。


2.收集的信息不是很准确


解决方法:


1.用一个较为封闭的盒子装着。


2.考虑到花卉的树叶会遮挡住太阳,导致结果有些许的偏差。忽略不计。


结 论


Arduino UNO是这整个系统的核心,每块模板都要互相连接才能组成一个完整的系统。每个模块都是围绕着Arduino UNO去执行,缺一不可,每个模块即要有各自的特点又要有共同的特点。DHT11温湿度传感器将收集到的数据信息发送到Arduino UNO,Arduino UNO将这些数据信息显示到lcd1602液晶显示器,然后Arduino UNO来判断这些数据信息是否达到花卉最适合的生存环境。通过DHT11温度传感器和湿度传感器检测盆栽土壤的温度和湿度,当温湿度传感器检测到土壤湿度高于恒定值时,土壤湿度过高,Arduino UNO就会开启蜂鸣器进行报警,利用led灯进行光照,减少土壤的湿度,检测到土壤湿度到恒定值时,停止光照;检测到土壤温度过高时,运用蜂鸣器进行报警,并开启水泵给土壤加水,使得土壤的温度降下来,温度传感器检测到温度下降到一定的值,就停止给水泵加水。lcd1602液晶显示器稳定的显示环境温度、湿度和光照值。


通过这次的毕业设计,让我更加深入的认识到了单片机智能控制系统的结构和原理,也让我在实际中接触到了检测系统的设计。让我受益匪浅。


附 录

附录一:系统电路原理

附录二: 实物图

附录三:源程序

int relay_pin=8;继电器

int soil_sign = A0; 土壤湿度信号口

int soil_val = 900; 土壤湿度临界值

int tem_val=26;温度临界值

int hum_val=90;湿度临界值

#include dht11.h温湿度库

#define DHT11PIN 9定义温湿度信号脚

dht11 DHT11;定义温湿度对象

#include LiquidCrystal.h显示屏库

LiquidCrystal lcd(7,6,5,4,3,2); 定义脚位

int model=0;自动模式是0,手动模式是1,3是水泵常开,4是水泵常关

int led=10;led

int buzz=11;蜂鸣器

int ldr=A1;光敏传感器

void setup()

{

Serial.begin(9600); 设置通讯的频率

pinMode(relay_pin,OUTPUT);定义继电器输出

pinMode(soil_sign, INPUT); 定义土壤湿度输入

pinMode(led,OUTPUT);led输出状态

pinMode(buzz,OUTPUT); 蜂鸣器输出状态

lcd.begin(16,2); 设置LCD显示的数目。16 X 2:16格2行。

lcd.print("Watering System");

}

void loop()

{

int chk = DHT11.read(DHT11PIN);获取实时温湿度信息

int tem=(int)DHT11.temperature;温度

int hum=(int)DHT11.humidity;湿度

int sensorValue = analogRead(soil_sign); 读取土壤湿度模拟信号值

if (analogRead(ldr)500){如果外界环境光线暗

digitalWrite(led,HIGH); 开灯

}else{

digitalWrite(led,LOW); 关灯

}

if ((temtem_val)||(humhum_val)){温度或者湿度大于设定值,蜂鸣器报警

digitalWrite(buzz,HIGH);

delay(500);

digitalWrite(buzz,LOW);

}

lcd.clear();

lcd.setCursor(0,0); 将闪烁的光标设置到column 0, line 1

(注释:从0开始数起,line 0是显示第一行,line 1是第二行。)

lcd.print("Soil:"); 开机后屏幕现实以秒几时的时间

lcd.print(map(sensorValue,0,1023,100,0)); 映射土壤湿度模拟信号值为百分比

lcd.print("%");

lcd.print(" Temp:");

lcd.print(tem);

lcd.print("C");

lcd.setCursor(0,1);

lcd.print("Humi:");

lcd.print(hum);

lcd.print("%");

if (model==0){0是自动状态

lcd.setCursor(10,1);

lcd.print("AU");

}else{1是手动状态

lcd.setCursor(10,1);

lcd.print("MU");

}

lcd.setCursor(12,1);

lcd.print(soil_val);

Serial.print("S:");

Serial.println(map(sensorValue,0,1023,0,100));

Serial.print("T:");

Serial.println(tem);

Serial.print("H:");

Serial.println(hum);

if(Serial.available()0){ 判断串口是否有数据,以过滤无效的数据

char ch = Serial.read(); 读取串口数据,赋值给变量ch

if (ch=='1'){ 发送1,手动控制模式

model=1;

}else if (ch=='2') { 发送2自动控制模式

model=0;

}else if (ch=='3') { 发送3,如果手动模式下,开水泵

model=3;

}else if (ch=='4') {发送4,如果手动模式下,关水泵

model=4;

}else if (ch=='5') {增加自动浇水阈值

soil_val=soil_val+10;

if (soil_val1023){ 不能超过上限

soil_val=1023;

}

}else if (ch=='6') {减少自动浇水的阈值

soil_val=soil_val-10;

if (soil_val0){ 不能低于下限

soil_val=0;

}

}

}

if((analogRead(soil_sign) soil_val)&&(model==0)) {自动模式下,且湿度模拟信号值大于设定的模拟信号值判断范围

digitalWrite(relay_pin,LOW);开启水泵

//delay(3000);

// digitalWrite(relay_pin,HIGH);//关闭水泵

}else if (model==3){

digitalWrite(relay_pin,LOW);常开水泵

}else if (model==4){

digitalWrite(relay_pin,HIGH);关闭水泵

}else{

digitalWrite(relay_pin,HIGH);关闭水泵

}

delay(500);

}

【1】 刺客老师Apple.初识Arduino——以UNO为例.

【2】 匡宇国.智能传感器DHT11及其在便携式温湿度检测仪中的应用[J].浙江工贸职.

【3】 丁礼磊.基于Wifi的远程浇花系统设计.安康学院电子与信息工程学院,2019年03期.

【4】 刘岑松,罗小巧,洪习欢.基于物联网的远程智能浇花系统,华中师范大学物理科学学院.

【5】 马靖善,秦玉平.C语言程序设计[M].北京:清华大学出版

社,2005,75-98.

【6】 朱士东,高洪卓,杨燕芬,杨立新,李艾盈,顾洪军.基于物联网的智能浇花系统的设计,吉林农业大学2017年.



参考文献


致 谢


衷心的感谢老师的辛苦指导,从我的毕业设计论文选题的拟定到任务书和开题报告的多次修改,不断完善的过程中。才有了这份较为完整的毕业论文。一眨眼,大学三年就这样匆匆过去了,很庆幸,在这三年里,我遇到了知识渊博、心胸宽广的老师和乐观积极向上的同学们,他们在学习和生活上,都给予了我很多的帮助和照顾,还教会了我很多东西,也很支持我,让我变得逐渐的自信起来。让我懂得怎么样有正确的待人处事的态度,公平正派的做人做事风格,老师们是我学习的榜样。


在这里,我要感谢我的家人,没有他们的支持和鼓励,我可能也不会那么顺利的毕业,他们就像是寒冷冰夜里的一把暖火,温暖我冰冷的心。他们的养育之恩,我无以回报,我最大的心愿就是他们能平平安安的陪伴在我的身边。


因本人的水平还不够成熟,存在许多的不足或需要完善的地方,恳请各位老师批评指正。


  • 综合
  • 图书
  • 期刊
  • 报纸
  • 网络
  • 自建文档