您的当前位置:首页基于Arduino的温湿度系统设计.doc

基于Arduino的温湿度系统设计.doc

2022-05-10 来源:飒榕旅游知识分享网
摘 要

Arduino是比较常用于智能控制的芯片,在智能仪器、工业检测和控制、机电一体等方面应用广泛。使用Arduino可以实现温湿度全程的监测与控制,而且Arduino控制器的使用还具有易于学习掌握,性价比高等优点。

基于Arduino的温湿度控制系统采用一个含有已校准数字信号输出的DHT11传感器来收集环境中的温湿度数据。经过Arduino进行数据处理,再将处理的结果通过LCD显示器进行显示。当环境中的参数达到预先设定的临界值时,报警系统中的无源蜂鸣器就会自动鸣响报警。

采用Arduino设计的温湿度控制系统,可以精确的反应环境的温度以及湿度的变化情况。完成升温、降温等一列智能控制行为。在一定的温度波动范围内保持恒温状态。将这样智能系统应用到现代温室种植当中,可以为农作物的生长提供较为适宜的生长环境。对于一些特殊的农业生产诸如大棚种植和花卉种植等,必须使用温湿度装置对其进行监控使其保持恒定环境。本系统可以及时、精确的反映和控制环境中的温湿度的变化。

关键词: Arduino;DHT11;传感器;液晶显示器;温湿度;

ABSTRACT

Arduino is relatively commonly used in the control chip, smart instrumentation, industrial inspection control; mechatronics achieved impressive results has been widely applied.also a lot of its strength as the temperature and humidity control system. Able to achieve automatic control of temperature and humidity throughout Arduino, the Arduino is easy to learn and master the high cost-effective.

This paper designs a temperature and humidity control system based on Arduino,,the system uses a containing composite sensor DHT11 digital temperature and humidity calibration of digital signal output to temperature and humidity data acquisition in the environment. . After Arduino treatment, and the treatment results through the LCD display display. When the parameters in the environment reaches the critical value, the alarm will sound the alarmsystem.

Use a Arduino-type micro-controller design temperature and humidity control system for, instant accurate reaction greenhouse temperature and moderate changes. Complete, such as the temperature was cooled to a specific temperature,raised to a specific temperature. Maintain constant temperature and other control in the volatility temperature range, humidity control is also true. The application of this system to the greenhouse which is no doubt that provides a more suitable environment for vegetation growth. For greenhouse cultivation and flower garden, flower cultivation, you must install certain environmental temperature and humidity device monitor. This system can be timely, accurate reflection of the indoor temperature and humidity changes, able to meet the requirements of the temperature and humidity control. Keywords: Arduino; DHT11; Sensor; LCD; Temperature and Humidity;

目 录

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

1.1 课题背景 ......................................... 1 1.2 研究目的及意义 ................................... 1 1.2.1 生活环境与温湿度的关系 ...................... 1 1.2.2 温湿度检测的意义 ............................ 2 1.3 国内外发展历程和状况 ............................. 3

第二章 Arduino理论基础 ............................. 5

2.1 单片机-Arduino的核心器件 ......................... 5 2.1.1 单片机的概念 ................................ 5 2.1.2 单片机的作用 ................................ 5 2.1.3 Arduino的定义 ............................... 6 2.1.4 Arduino的优势 ............................... 6 2.2 Arduino开发工具介绍 .............................. 7 2.3 Arduino语言...................................... 8 2.4 本章总结 ......................................... 9

第三章 系统整体设计 ................................ 10

3.1 方案论证 ........................................ 10 3.1.1 系统主要功能 ............................... 10 3.1.2 系统的工作原理简介 ......................... 10 3.1.3 总体设计简介 ............................... 11

3.2 系统硬件设计 .................................... 12 3.2.1 主控模块 ................................... 12 3.2.2 数据采集模块 ............................... 14 3.2.3 数据显示模块 ............................... 16 3.2.4 报警模块 ................................... 18 3.2.5 原理总图及器件清单 ......................... 19 3.3 系统软件设计 .................................... 19 3.3.1 总体程序流程图 ............................. 20 3.3.2 液晶显示模块程序 ........................... 20 3.3.3 传感器模块程序 ............................. 23 3.4 本章小结 ........................................ 24

第四章 调试过程和注意问题 .......................... 25

4.1 程序下载说明 .................................... 25 4.2 硬件问题及解决 ……………………………………………27 4.3 软件问题及解决 .................................. 27

第五章 总结与展望 .............................. 29

5.1 全文总结 ........................................ 29 5.2 未来展望 ........................................ 29

致 谢 .............................................. 31 参考文献 ............................................ 32 附录一 .............................................. 34 附录二 .............................................. 35

江西理工大学2014届本科生毕业设计(论文)

第一章 绪 论

1.1 课题背景

农业科学技术与信息科学互相融合、渗透是现代农业生产的显著特点。各种高新技术不断应用于农业的生产,农业信息化的总趋势就是:计算机技术,信息存储和数据处理技术以及各类软件,网络通信,人工智能与智能控制系统等综合应用于现代智能机械化的农业生产[1]。

很长一段时间,对温室环境的监测一般采用人工方式,这种传统的数据收集的方法浪费人力财力,准确性不是很高,而且容易受其它外部因素影响,很难达到期望的目的。特别是在现代化的蔬菜温室的生产和管理过程中,环境的温度和湿度变化对植物的健康成长有重要影响。如果白天和夜里的温湿度变化很大,则会对植物的正常生长产生重要影响[2]。国内外温室种植业的实践生产经验表明,提高温室环境的管理水平和自动化控制水平可以有效发挥温室作物生产的高效性,其中对作物生长环境的温湿度的数据采集是温室环境监测的重要组成部分。因此,为了提高农作物产量,我们需要对植物生长环境中的温湿度因素进行必不可少的监测与控制,使其保持在有利于作物生长的合理范围内波动,以提高农作物的产量和质量。随着通信网络技术,传感器数据采集技术及计算机控制技术等现代信息技术的迅猛发展,目前设施农业的一个研究热点就是数据自动采集及智能控制系统的开发[3]。因此,设计一套能够实时对植物生长环境因素有效监测和控制的智能系统对于提高农作物产量具有十分重要的意义。

1.2 研究目的及意义

湿温度是工业领域内比较重要的两个监测目标。无论是我们的日常生活环境,还是生产领域都需要对温湿度参数进行控制和监测。对温湿度的测量与控制水平直接影响到人类的所有活动。

1.2.1 生活环境与温湿度的关系

随着人类社会对生活环境的质量要求不断提高,特别是温度和湿度的变化所带来的不同负面影响,比如温度变化都直接影响到我们这个社会,而湿度的波动也一样会影响着我们的生活以及其他物种的生存条件。近代随着工业革命而带来的二氧化碳的排放导致全球气候变暖,因此对我们的生活带来了一系列的巨大影响。随着全球气候的变暖,导致南北极的冰山融化,进而导致海平面的上升。因此导致全球有上亿的人口收到海平面上升所带来的威胁,类如海水倒灌,岛屿消失等。温度的上升也影响着全球的气候变化。最近几十年厄尔尼诺现象频繁发生,导致无数人的生活受到影响。温度的变化同时也会影响到环境湿度的变化,因为

1

江西理工大学2014届本科生毕业设计(论文)

当温度较高时会加剧地面水汽的蒸发,使湿度上升,例如在南美地区温度较高同时也使湿度较高。但是当温度达到很高时也会是空气急剧干燥,例如在北非地区。

在国家安全、环境保护、生产制造、气象预测、科学研究等部门,经常需要对环境温度和湿度数据进行控制和监测。随着科技的不断进步,为了保持一起的精确,现在越来越多的紧密仪器需要在恒定环境下工作,对环境中的温湿度要求越来越高。在食材成品加工、生物制药工程等关于国计民生的工业制造领域对于精确监测温度和湿度变化更是有重大的意义。为了生产出合格的产品,有时我们必须精确的控制和监测环境中的温度和湿度的变化。

1.2.2 温湿度检测的意义

无论是在现代化工业生产、现代农业生产,还是在仓库保管、气象卫星等领域,对温度和湿度的测量都是随处都可以看到的。有效合理的调解与控制湿温度参数,不但可以减小资源浪费还更有利保障行业生产的正常发展。

在工业生产领域,各种高科技自动化精密设备都需要在特定的环境下工作。电器设备是工业生产领域最常见的也是使用频率最高的设备。电器设计人员在设计电器设备时的必须要考虑到的问题之一就是考虑温度和湿度的波动变化。电器工程师为了设计出合格的设备,在设计的时候必须要考虑设备使用过程中散热通风的问题,使产品能适应特定工作环境中温度和湿度的波动。在众多的工业材料中选取性能优秀的材料并且对设备表面进行特别封装可以大大有效提升设备的运行年限。大型的电器设备如果长期处于大电流、高电压和满负荷运行的状态,将导致造成聚集大量热量而不能及时降低温度,因为电流的热效应造成的危害直接影响设备的绝缘安全保护器件,对设备的正常工作和员工的人身安全产生严重的安全隐患,所以对用电机器的温度和湿度变化进行及时精确的测量与控制是十分必要的[4]。

温湿度对动植的生长都有很大的影响,当温度达到了动植物生长所能承受的最高值或最低值时,这些植物和动物就会慢慢的从地球上消失,或者适应环境而演变成其他的一些物种。所以对特定环境下的温湿度我们必须能准确有效的测量。同时我们也要记录他们的的变化情况和变化规律,只有这样这样我们才有可能对我们当前所生活的环境的变化有个更为直观感性的了解与认识。

老式的温度计的原理是利用水银遇热膨胀和遇冷收缩来实现的,尽管物美价廉,但是它的精度很低,而且需要很仔细才能读清测量值。干湿球显示测量法是老式的湿度计普遍采用方法,但它不仅构造复杂而且测量精的确度也不是很高

[5]

。但是采用Arduino对温湿度进行测量控制,不但控制简单,操作方便和应用

灵活等一系列的优点,而且可以大幅度提升温湿度控制的技术指标。用LCD液晶显示屏来显示温湿度的数值,看起来更加直观。

2

江西理工大学2014届本科生毕业设计(论文)

1.3 国内外发展历程和状况

目前国外先进大型室内环境监控系统大多是多种因素综合控制系统。这些先进控制系统提供了可以人机交互的操作界面,不仅可以方便操作人员对环境参数进行设定和对参数进行显示,而且还可用计算机对各种环境因子进行的远程监视与控制,涉及到的环境因子如二氧化碳浓度、温湿度变化、光照强度等,包含了农作物在各个生长阶段的生命信息甚至包括开花时间的控制等[6]。

在美国,摩托罗拉集团在80年代初就已经研制出了一套专门用于灌溉的中央计算机控制系统,很快这套系统赢得了美国大部分地区的广泛的认可和应用

[7]

。GeenAir集团开发的GHCl00型温室环境控制系统在满足低成本通风控制要

求的同时也可对温室进行全方位控制[8],用户不仅可以通过显示器来进行实时监控和现场设置,还可进行远程数据记录、监测、控制。

荷兰具有世界领先的温控技术水平,在全球市场上,其智能温室成套设施备受各国青睐。追溯到上世纪70年代荷兰就开发出了计算机控制系统CECS,并且集成了一系列的计算机软、硬件,实现了温室内施肥、供水以及环境的自动控制等[9]。荷兰Priva公司是著名的温室系统设备研发及生产的公司[10],他们所研制的温室控制系统不但能够协调控制各种环境因子而且也能对温室过程控制、浇水施肥作业进行智能控制。

以色列的温室农业技术的发展也非常迅速,它的温室计算机环境控制系统采用比较先进的温室控制结构和空气温湿度调控技术等,并配备了天窗、幕帘及遮阳网等,可依据光线强度的不同自动调节环境因子。此外,该系统在室内还设置了现代化的滴灌和微喷灌智能控制系统,可以方便快捷地通过现场控制器与监控室内的中央计算机之间的通信对室内进行远程遥控灌溉和施肥,使水肥的利用率达80%到90%[11]。

在英国,温室农业大部分都采用远程计算机来控制二氧化碳、温湿度、营养液供给等[12],英国自主研发的远程计算机遥控技术可以监测并遥控50km以外温室内的温湿度等环境状况的变化。

在日本,其温室监控技术水平发展也很高,比如四国电力集团发明的“Open PLANET”远程双向监测控制系统[13],该系统包括检控专用LAN、服务器、数据的收集、分散控制等,也可对温室的群进行管理。此外,ESE公司研发的控制系统可以对温室内的环境因子如温度、二氧化碳浓度等可进行全面的检测和控制

[14]

但是,我国在温室控制检测技术方面的研究相对较晚。在80年代初期,外

国高科技温室技术的蓬勃发张也促使我国的农业科技工作人员逐渐对温度、C02浓度、湿度等单一的环境因子方面展开了丰富的研究[15]。

国内外在信息的传输方式上还是有不小的差距的。对于一般数据的传输(例

3

江西理工大学2014届本科生毕业设计(论文)

如温度、烟火警报等)我国现在主要还是在运用走线布线的方式,先进一点的采用功率较大的无线芯片进行星型网络数据的传输,尽管这样节省了对于信号线的布线,但其能量消耗比较大,而且还需要对电源线进行布线[16]。然而,基于低功耗无线自组网的Zigbee传输模式在美国早已走进了千家万户,为人们的生活生产提供便利。

总的来说,我国在温室控制方面的研究和开发与运用主要集中在环境的控制算法、控制系统结构等方面获得数据,但是和国外相比,国内温室自动控制系统在可靠性、经济性、可扩展性、功能等方面还需进一步的改善。

鉴于Arduino控制器拥有较为稳定的可靠性、可扩展性,而且在功能和经济性方面远远优于其他控制器,所以本文将采用DHT11数字复合温湿度传感器采集温湿度数据,以Arduino为控制器来控制数据的处理,来设计一个高性价比的基于Arduino的温湿度控制系统。所以,本次毕业设计以DHT11传感器为例,介绍基于Arduino的数字温湿度系统的的设计。

4

江西理工大学2014届本科生毕业设计(论文)

第二章 Arduino理论基础

本章作为Arduino的理论概述部分,将介绍与Arduino相关的知识原理为后续章节提供基本理论基础。本章文首先将讲述什么是Arduino,关于Arduino的一些基础知识及关于Arduino编写语言C语言的基础知识和开发工具。

2.1 单片机-Arduino的核心器件

要理解Arduino就先要明白单片机的作用,Arduino控制板是一块基于AVR命令集的电子开发平台。Arduino的主要元器件是一块微型处理器,它是基于Atmega328P-PU芯片的开源开发平台[17]。

2.1.1 单片机的概念

计算机一般包括包括以下几个部份:CPU、ROM、RAM、输入/输出设备I/O[18]。在个人计算机上这些部份被分割成若干块不同的芯片,安装在一个被叫做主板的印刷线路板上。但在单片机平台中,各个部件会被全部一起做到一块集成芯片中,所以就被命名为单片机[19],而且有一些单片机中除了上述组成部份外,还集成了其它部份如模/数转换和数/模转换等。

2.1.2 单片机的作用

其实在我们的实际工作中要根据不同的场合和应用来选择合适的处理器,选择应用处理器的关键是看是否支持设备运行,是否有很高的性价比等。单片机经常用在工业生产的控制智能家居设备中。但是有些场合使用单片机就会使简单的问题复杂化,因为在开发单片机资源的时候需要了解寄存器,指针等资源,对于一般的初学者很难掌握这些资源的使用方法。因此为了找到一个便宜又好用的控制器,2005年Massimo Banzi和David Cuartielles设计一个基于Atmega328P-PU芯片的开源控制平台,被命名为Arduino[20]。

图2-1 Atmega328P-PU单片机

5

江西理工大学2014届本科生毕业设计(论文)

Arduino可以使用 Arduino 语言与Processing、Macromedia Flash、Max/MSP和SuperCollider等软件,结合其他常用电子元件,例如传感器或LED发光灯、电动马达或其他电子器件,设计出许多具有艺术创意性的互动作品[21]。图2-1就是一个Atmega328P-PU单片机。

2.1.3 Arduino的定义

Arduino是一套能够感应和控制现实物理世界的工具。 它由一个基于单片机并且代码开源的硬件平台,和一套Arduino IDE开发环境组成[15]。

Arduino可以用来开发交互式智能产品,例如它可以读取大量的开关和传感器数据,同时可以控制不同种类的电子元器件等其他各种物理设备。基于Arduino的控制系统既可以独自进行,也可以在运行的同时又和计算机中正在运行的其他程序进行数据通讯。Arduino的编程环境是基于处理多媒体的,编程语言就像在类似的物理平台上连线。

2.1.4 Arduino的优势

很多的单片机和单片机平台的设计都采用交互式系统。例如:Parallax Basic Stamp,Phidgets,MIT’s Handyboard等提[22]。对于这些工具,工程师都不需要去关心那些单片机编程的复杂细节,提供给编写人员的是一套很容易上手的工具包。同样Arduino也很大程度的简化了内部芯片的工作顺序,但Arduino和其它开发平台相比在一些方面更具有优越的特点:

跨平台——Arduino编程环境可以完美兼容Macintosh OSX,Windows和Linux等应用系统。但很多其它的单片机系统都只能在Windows环境下运行。

便宜——Arduino控制板价格低廉,既可亲自组装,也可以购买完整的成品。 软件开源且可扩展——Arduino软件是开源的,专业的程序员可以对其进行扩展。可以通过C++库对Arduino编程语言进行扩展[23]。

简易的编程环境——Arduino编程环境和Processing 编程环境很相似,所以我们很容易就可以学会如何熟练使用Arduino开发环境。

硬件开源并可扩展——Arduino开发板是基于Atmel 公司的ATMEGA8 和ATMEGA168/328 单片机,基于Creative Commons 许可协议[24],所以我们能够根据需求设计模块,可以对其扩展或改进。

Arduino是基于AVR开发平台的,并且对AVR库进行了二次编译封装,把所有端口都进行了打包,基本不需要寄存器、地址指针等资源。但是Arduino是二次编译封装,所以编写的代码没有直接使用AVR代码编写精练,代码的执行效率与代码容量都没有直接AVR编写的好。

6

江西理工大学2014届本科生毕业设计(论文)

2.2 Arduino开发工具介绍

一、Arduino开发工具的作用

Arduino开发工具(是一个用来编写Arduino程序的软件,将程序编写好检测无误后,通过该软件下载到Arduino开发板中进行烧录。

二、获取和安装Arduino开发工具方式 1.下载Arduino 开发工具

下载地址 :http://Arduino.cc/en/Main/Software 如图2-1所示,在页面上找到以下内容:

图2-1 Arduino IDE下载界面

我们既可以下载windows installer 版本,也可以下载windows(ZIP file)版版本,windows(ZIP file)版本的可以在直接解压后就使用。 2、Arduino开发工具功能介绍

安装成功后双击Arduino.exe即可打开Arduino,界面如下图2-2所示:

图2-2 Arduino IDE开发界面

7

江西理工大学2014届本科生毕业设计(论文)

各按钮功能如下:

Verify(校验) :在下载代码之前,对编好的代码进行检验。

Stop(停止):可以停止进行的编译操作。 New(新建):可新建一个程序文件。

Open(打开):打开一个已经编写好后缀名为.pde的程序文件。 Save(保存):保存当前的程序文件。

Upload(上传) :在Arduino编程环境里编辑的程序,还不能让Arduino

运行出希望的结果,还需要将编写的代码下载到到Arduino控制板中。

Serial Monitor(串口监视窗):可观测开发环境中所使用的串口收发的

数据变化情况。

2.3 Arduino语言

Arduino语言也就是基础的C语言,Arduino语言只不过把AVR单片机相关的一些参数设置都函数化,不需要我们去了解他的底层设计,是他的编写与设计更加简单方便[25]。

常量:

LOW | HIGH 表示数字接口的电平高低,LOW 代表低电平(0),HIGH 代表高电平(1)。

OUTPUT | INPUT 表示数字IO口的方向,OUTPUT 表示输出,INPUT 表示输入(高阻态)。

true | false true 表示真(1),false表示假(0)。 程序结构:

声明变量及接口名称:

void setup() 放在在程序运行起始位置,具有初始化变量,定义管脚模式,调用库函数等一系列功能。

void loop() 放在在setup()函数之后,即初始化之后,loop() 让程序循环地被执行。

数字 I/O :

pinMode(pin, mode) 定义数字IO端口输入输出模式的函数,pin指向为0~13引脚, mode表示输出方向INPUT或OUTPUT。

digitalWrite(pin, value) 定义数字IO端口输出电平的函数,pin指向为0~13引脚,value表示为电平的高低HIGH或LOW。

int digitalRead(pin, value) 定义数字IO接口输入电平函数,pin指向为0~13引脚,value表示为电平的高HIGH或LOW。

8

江西理工大学2014届本科生毕业设计(论文)

模拟 I/O :

int analogRead(pin) 定义模拟IO口读函数,pin指向为0~5引脚。 analogWrite(pin, value) - PWM 数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin指向3, 5, 6, 9, 10, 11引脚,value表示为0~255。

2.4 本章总结

通过本章介绍,我们初步了解了什么是Arduino,以及Arduino在现代社会的电子设计中的优势。了解了Arduino集成环境的使用及其功能的介绍,使我们对于Arduino控制板有了进一步了解,为我们接下来的设计提供了基础知识。下一章我们将进入系统的具体设计。

9

江西理工大学2014届本科生毕业设计(论文)

第三章 系统整体设计

本章主要介绍的是关于Arduino温湿度控制系统的主要控制模块的设计与分析。本系统软件设计以功能需求为根本目标,利用简单易懂的C语言,采取模块化编程,对包括主控模块、数据处理模块、数据显示模块、报警模块等四个模块进行了详细的设计,结构清晰,通俗易懂。为实现预期目标的系统功能,将分析整个控制系统的硬件物理设计和软件设计等。

3.1 方案论证

本节通过对基于Arduino的温湿度控制系统的整体方案论证让我们对于设计还系统有一个整体的设计与方法,为后面的具体设计设下铺垫。

3.1.1 系统主要功能

该系统希望实现的目标功能是:

(1) 温湿度数据的实时检测和显示。温湿度传感器DHT11检测到的数值经过LCD1602液晶显示屏实时地进行显示,并且以固定周期检测刷新显示一次。

(2) 对历史环境数据进行记录,以便以后任何时间都可以分析处理数据,预测环境变化情况。

(3) 当温湿度超出设定阈值时能自动报警。蜂鸣器发出声音报警。

3.1.2 系统的工作原理简介

一般来说,本次系统设计主要涉及包括温度和湿度的测量、显示以及实现方便控制。硬件方面有四个模块,即Arduino主控模块、传感器模块、LCD1602液晶显示模块以及报警模。

主要使用DHT11数字温湿度传感器来进行数据采集工作。当前环境下的温度和湿度数据通过DHT11传感器来检测出,将所测环境数据传送到Arduino主控模块中进行数据分析和处理等工作,并分别存入不同数组中以便显示的时候取用。为了获取稳定的数据,本系统每间固定周期采集一次数据送Arduino控制板中。

温湿度检测值通过LCD1602液晶显示模块显示。上边一行英文字母及标题,下边一行显示湿度和温度值。

蜂鸣器报警模块实现了检测值超过阈值的时鸣响报警功能。本系统采用的是无源源蜂鸣器,因此只有湿度超出范围蜂鸣器时才进行报警提示。当温度数据出现异常状况时,系统会提醒工作人员需及时调整,及时启动升温器、降温设备以及喷雾器等设备来有效的调节室内环境温湿度。

10

江西理工大学2014届本科生毕业设计(论文)

呼吸灯模块可以通过观察LED闪烁频率的快慢来估测环境中湿度的大小及变化,更能直观的反映出空气中湿度的大小,当LED灯闪烁频率较快时,说明此时环境湿度较大,可以连接到加湿器控制加湿器的功率等。

3.1.3 总体设计简介 1、总体设计框图

在保证实现其基本功能的基础上,根据系统功能的具体要求,原则之一要尽可能降低系统软硬件成本。设计的总体方案围绕上述思想,初步确定系统的方案如图3-1所示。

IO34561602液晶显示模块Arduino unoDHT11传感器模块IO2 IO8呼吸灯模块 IO7蜂鸣器报警模块

图3-1系统总体方案

从图中可以看出,系统由Arduino uno主控模块、DHT11数据采集模块、LCD1602液晶显示模块、报警模块,呼吸灯模块等组成。为了简化系统,提高控制精度,外围设备采用并行控制模式。该设计以Arduino uno为控制核心,实现温湿度采集及显示的基本功能。

2 、总体设计工作进程

只要弄清两个部分模块的工作原理,既可以很好的完成本次系统设计。一个是DHT11数据采集模块,另一个是LCD1602液晶显示模块。DHT11传感器比较陌生,以前没有接触过,液晶相对而言我们比较了解。因此只要先攻克了液晶显示模块,然后再掌握数据采集部分就可以掌握整个系统的工作原理。整个流程如下图3-2所示:

11

江西理工大学2014届本科生毕业设计(论文)

分析题目并查找资料编写代码进行液晶的实物调试传感器的实物调试完成系统修改及完善系统整体调试假装报警器模块和呼吸灯模块 图3-2 整体设计流程图

3.2 系统硬件设计

本节主要介绍基于Arduino的温湿度控制系统的主控模块的设计。Arduino温湿度控制系统包括Arduino主控板,LCD1602液晶显示模块,温湿度数据采集模块,报警模块等组成。本章将主要介绍系统的硬件设计及功能介绍。

3.2.1 主控模块

Arduino UNO是作为Arduino平台的参考标准模板,是Arduino USB接口系列的最新版本。UNO的核心控制器件是ATmega328处理芯片,数字输入/输出口共计有14路:6路PWM输出端口,6路模拟输入端口,一路ICSP header,一个16MHz晶体振荡器,一个电源插口,一个USB接口和一个复位按钮[26]。Arduino Uno有三个版本,最新版本与老版相比有以下新的特点:

在AREF处新添加了两个引脚:SCL和SDA,支持I2C接口;增加IOREF和一个预留管脚,控制板能同时兼容5V和3.3V的供应电压。 USB接口芯片由ATmega16U2替代了ATmega8U2[27] 。如图3-3为改进后的Arduino UNO。

图3-3 Arduino UNO控制板

12

江西理工大学2014届本科生毕业设计(论文)

1 、Arduino uno基本概要

 处理器 ATmega328  工作电压 5V

 输入电压(推荐) 7-12V  输入电压(范围) 6-20V

 数字IO脚直流电流 40 mA

 3.3V脚直流电流 50 mA  数字IO脚 共计14路

 模拟输入脚 6路

 Flash Memory 32 KB  SRAM 2 KB  EEPROM 1 KB  工作时钟频率 16 MHz

2 、数据通信接口及引脚配置说明

 串口:ATmega328处理芯片内置的UART可以通过数字接口0和1与外部硬件完成串口数据通信[28]。

 TWI接口

 SPI 接口

图3-4 Arduino原理图

13

江西理工大学2014届本科生毕业设计(论文)

Arduino控制板上基本端口如图3-4所示 Digital I/O:数字输入/输出0—13。 Analog I/O:模拟输入/输出0-5。 支持ICSP下载,同时支持RX/TX。

输入电压:5-12V外部电源供电或USB接口供电。 输出电压:支持3.3V级5V 电源输出。 处理器:使用Atmel Atmega168 328微处理器。

AREF: 参考电压的模拟输入。采用analogReference()指令调用。 VIN端口:外部电源输入引脚。 ICSP:是一种线上即时烧录引脚。

3.2.2 数据采集模块 1、DHT11产品概述

DHT11温湿度传感器是含有已校准数字信号输出的一款温湿度复合传感器。为保证传感器具有卓越的长期稳定性和极高的可靠性,它采用了温湿度传感技术和专门制作的数字集成模块数据采集技术[29]。

图3-5 DHT11传感器实物图

DHT11温湿度传感器均在严格的校验实验室中经过精确的湿度检验校准。校准系数结果采用程序数据的形式存放在OTP中,DHT11内部在检测信号的处理过程中要调用这些校准系数[30]。体积小和功耗低等优点使信号数据传输距离可超过20多米,使它成为各种应用场合的最佳选则甚至环境最为复杂的应用场合。

(1)引脚介绍:

 Pin1:(VDD),电源引脚,供电电压为3~5.5V。  Pin2:(DATA),单总线,串行数据通信。  Pin3:(NC),空脚,请悬浮。

14

江西理工大学2014届本科生毕业设计(论文)

 Pin4:(VDD),电源负极,接地端。

(2)接口说明 :

当连接线长度在20米内的时候要使用5000欧的上拉电阻,当距离超过这个距离时则需要根据实际的工作情况来选用适合的电阻器件。

图3-6 DHT11典型应用电路

(3)数据帧的描述:

DATA 通信接口用于 DHT11传感器与控制器之间采用单总线数据格式进行同步和通信,一次通信周期约4毫秒,数据分为两部分:整数和小数,当前小数部分用于扩展,现读出为零.实现顺序如下:

一次完整的数据传输为40位,高位先出。

数据格式8位湿度整数+8位湿度小数+8位温度整数+8位温度小数 如果数据没有发送错误,则所得到的校验和数据等于所得结果的最后8位数,即8位的温度小数部分。

(4)电气特性:VDD=5V,T = 25摄氏度,

表3-1 DHT11的电气特性

参数 供电电压 供电电流 采样周期

条件 DC 测量 平均 待机 秒

Min 3 0.5 0.2 100 1

typ 5 1.8 0.8 120 3

max 5.5 2.5 1 150 5

单位 V mA mA uA 次

注:采样周期间隔不得低于1秒钟。

2、DHT11传感器模块电路设计

DHT11温度与湿度传感器连接Arduino控制板相对而言还是比较简单的。Arduino控制板的数字I/O接口2的作用是发收串行数据的,即数据口。数字I/O接口2连接传感器的Pin2。由于测量电路长度一般小于20米,所以需要额外增加一个5000欧的上拉电阻,所以在电源与DHT11的第二个脚之间接一个5000欧电阻[31]。而DHT11的电源端口第一个脚和第四个脚分别接Arduino控制板的

15

江西理工大学2014届本科生毕业设计(论文)

电源接口和接地接口。DHT11的第三脚不接任何原件,悬浮放置。DHT11温湿度传感器的原理图如下图3-11所示:

图3-11 DHT11电路原理图

3.2.3 数据显示模块 1、LCD1602液晶显示屏

LCD1602液晶是一种可以同时显示32个字符(16列2行)的工业字符型液晶。LCD显示模块在电子表、摄像机、手机及很多日常电子产品中都可以监到,主要作用是显示图形、数字和专用符号等[32]。在基于微型处理器的电子设备中,LCD1602很多常用的输出方式例如作为显示器、发光器等使用。

(一)引脚说明

图3-12 LCD1602引脚功能图

VSS:电源地。

+5:电源正极,一般用+5V的电压。

16

江西理工大学2014届本科生毕业设计(论文)

VCVOM:液晶显示对比度调节端,电压范围在0-5V之间。 RS:单片机写入指令或数据接口。 R/W:读写控制接口。

E:LCD模块使能信号控制接口。

DB0-DB7:8位数据总线,同时有三态双向的特点。 BLA+: LED背光正极端。 BLA-: LED背光接地端。 (二)显示地址

LCD1602字符液晶显示分上行16字符下行16字符,不同位置字符的显示地址如下表所示:

显示字符 第一行地址 第二行地址 显示字符 第一行地址 第二行地址

1 00H 40H 8 07H 47H 2 01H 41H 9 08H 48H 3 02H 42H 10 09H 49H 4 03H 43H 11 0AH 4AH 5 04H 44H 12 BH 4BH 6 05H 45H 7 06H 46H ··· ··· ··· 2、1602液晶显示原理

LCD液晶的显示是利用液晶的物理特性原理, 通过电压的变化对其显示区域的对比度进行控制,接通电源就可以正常显示,他不仅可以显示图形而且也可显示不同的符号等。

图3-13 1602显示模块原理图

液晶显示器适用于大规模集成电路直接驱动、具有厚度薄、易于实现全彩色

17

江西理工大学2014届本科生毕业设计(论文)

显示等众多优点,目前已经被广泛应用在工业领域例如数字摄像机、便携式电脑、移动通信工具等[33]。

为了方便调节液晶的显示亮度使液晶显示在最佳的状态,在第三个引脚Vo脚加上一个10000欧的滑动变阻器,通过调节滑动变阻器的电阻阻值不断改变Vo脚的电压值[34]。

3.2.4 报警模块

(一) 蜂鸣器介绍

1. 蜂鸣器是一种采用直流电压供电的一体化结构的电子讯响设备,被广泛应用于各种常用电子器件中作发声元件。

2. 蜂鸣器主要有两个类型:电磁式和压电式。 3. 蜂鸣器在电路中用字母“HA”或“H”表示。 (二) 蜂鸣器的结构原理

1.压电式蜂鸣器原件主要包括多谐振荡器、阻抗匹配原件及音箱、外壳等。有些压电式蜂鸣器外壳上还装有发光二极管[35]。

多谐振荡器由主要集成电路组成。当开启后,多谐振荡器就会起振,产生1.5~2.5kHZ的音频波动信号,阻抗匹配器驱动压电蜂鸣片振动进而发出声音。

铌镁酸铅压电陶瓷材料是压电蜂鸣片的主要材料。另外分别在陶瓷片的正反面镀上银电极,然后经过老化和极化处理后,再同不锈钢片粘接在一起[36]。

2.磁式蜂鸣器组件主要包括磁铁、电磁线圈、振荡器、振动膜片及外壳等

[37]

常见的一种小型蜂鸣器因其比较小巧、结构牢靠,而被大量应用在一些需要

(三)有源蜂鸣器和无源蜂鸣器

发声鸣响的电器设备、电子制作设计等电路中。常用蜂鸣器被分为无源蜂鸣器和有源蜂鸣器。有源蜂鸣器接通电源就可连续发出声音;而无源蜂鸣器则必须接在音频输出电路中才能发出声音。

图3-14 蜂鸣器原理图

18

江西理工大学2014届本科生毕业设计(论文)

本系统在设计时候采用的是无源蜂鸣器,只要给蜂鸣器一定的电流值,蜂鸣器就可以按照给定的一定的频率发声,但是Arduino控制器引脚的电流相对较小,不足以驱动蜂鸣器工作,因此采用了一个NPN的三极管来驱动。

3.2.5 原理总图及器件清单

经过以上分析,将传感器、无源蜂鸣器和LCD1602等与Arduino相连接,便构成了本系统的电路原理图,如图3-15所示。

图3-15 系统总电路图

原件列表清单如下表: 原件 Arduino uno扩展版 LCD1602显示屏 DHT11传感器 无源蜂鸣器 LED 电阻 导线 面包板 扩展版 数据线 数量 1(块) 1(块) 1(个) 1(个) 1(个) 2(个) 若干 2(块) 1(块) 1(条)

3.3 系统软件设计

19

江西理工大学2014届本科生毕业设计(论文)

本系统软件设计以功能需求为根本目标,利用简单易懂的C语言,采取模块化编程,结构清晰,通俗易懂。

3.3.1 总体程序流程图

在对我们所选专题的研究方向有了大致的总体认识后,我们就需要先设计一个整体的程序工作流程图,将整个大系统系统划分为多个不同功能的小模块,然后再逐个对各个功能小模块所需要实现的功能进行分析,最后再把各个功能模块的程序合有效的连接一个整体的程序。程序流程如图3-16所示。

开始初始化N 延时温湿度监测并传回数据到Arduino1602显示数据定时监测判定温湿度是否超过阀值Y报警装置启动

图 3-16 主程序流程图

3.3.2 液晶显示模块程序

LCD1602显示器是一个慢显示元件,在运行任何一条命令以前要保证显示模块的忙标志表示不忙为低电平,如果不是那么这条命令不可用,如果想显示字符或图像则必须先输入字符会图像的地址[38]。LCD1602显示模块可直接与Arduino控制板接口相连,不需要再加任何额外的驱动程序。软件流程图如图3-17所示及调试结果如图3-18所示:

开始液晶1602初始化延时一次发送指令和数据控制液晶显示字符 图3-17 1602液晶显示模块程序流程图

20

江西理工大学2014届本科生毕业设计(论文)

图3-18 液晶调试结果显示

显示程序如下:

int DI = 12; int RW = 11;

int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};/ int Enable = 2;

void LcdCommandWrite(int value) { int i = 0;

for (i=DB[0]; i <= DI; i++) {

digitalWrite(i,value & 01); value >>= 1; }

digitalWrite(Enable,LOW); delayMicroseconds(1); digitalWrite(Enable,HIGH); delayMicroseconds(1); digitalWrite(Enable,LOW); delayMicroseconds(1); }

void LcdDataWrite(int value) {

21

江西理工大学2014届本科生毕业设计(论文)

int i = 0;

digitalWrite(DI, HIGH); digitalWrite(RW, LOW); for (i=DB[0]; i <= DB[7]; i++) { digitalWrite(i,value & 01); value >>= 1; }

digitalWrite(Enable,LOW); delayMicroseconds(1); digitalWrite(Enable,HIGH); delayMicroseconds(1); digitalWrite(Enable,LOW); delayMicroseconds(1); }

void setup (void) { int i = 0;

for (i=Enable; i <= DI; i++) {

pinMode(i,OUTPUT); }

delay(100);

LcdCommandWrite(0x38); delay(64);

LcdCommandWrite(0x38); delay(50);

LcdCommandWrite(0x38); delay(20);

LcdCommandWrite(0x06); delay(20); LcdCommandWrite(0x0E); delay(20); LcdCommandWrite(0x01);

22

江西理工大学2014届本科生毕业设计(论文)

delay(100); LcdCommandWrite(0x80); delay(20); }

3.3.3 传感器模块程序

伴随着科学与工程技术的逐步发展,DH11传感器渐渐已进入人们的日常生活中,经常使用的许许多多的电子电器设备都对温湿度等环境参数有特别严格要求[39]。因此,温湿度传感器被不断推广使用在不同的场合。

最新的数字传感器标准接口已经不需要外置的模数转换模块了。调试结果如图3-19所示。程序如下:

double dewPoint(double celsius, double humidity) {

double A0= 373.15/(273.15 + celsius); double SUM = -7.90298 * (A0-1); SUM += 5.02808 * log10(A0);

SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ; SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ; SUM += log10(1013.246);

double VP = pow(10, SUM-3) * humidity; double T = log(VP/0.61078); // temp var return (241.88 * T) / (17.558-T);

}

void setup() {

Serial.begin(9600);

Serial.println(\"DHT11 TEST PROGRAM \"); Serial.print(\"LIBRARY VERSION: \"); Serial.println(DHT11LIB_VERSION); Serial.println(); }

void loop() {

23

江西理工大学2014届本科生毕业设计(论文)

Serial.println(\"\\n\"); byte i;

int chk = DHT11.read(DHT11PIN); Serial.println(\"Read sensor:OK \"); Serial.print(\"humidity: \");

Serial.print((float)DHT11.humidity, 2); Serial.println(\" % \"); Serial.print(\"Temperature : \");

Serial.print((float)DHT11.temperature, 2); Serial.println(\" oC \"); }

图 3-19 DHT11传感器模块实物调试结果

3.4 本章小结

本章通过对系统的方案论证,各模块的分析与设计,系统硬件设计,系统软件设计等,完成了预期的整体目标功能设计,该系统包含了主控系统模块,显示模块,数据采集模块,报警模块等。通过对各模块的学习与应用,让我加深了对于电子控制系统设计的认识及运用能力,通过该章的学习运用让我对于完成本课题设计充满信心。

24

江西理工大学2014届本科生毕业设计(论文)

第四章 调试过程和注意问题

本章主要是介绍关于程序下载调试的分析及软硬件问题处理,总结在课题设计过程中所遇到的硬件问题和软件问题,分析原因并给出解决方案。为以后学习总结经验,让我们更熟悉更方便的运用Arduino。

4.1 程序下载说明

点击编译按钮编译程序结果如图4-1所示:

图4-1 程序编译

当显示下图4-2时表示编译无误

图4-2 编译结果

25

江西理工大学2014届本科生毕业设计(论文)

点击下载按钮下载程序到Arduino扩展板上如下图4-3所示:

图4-3 程序下载

点击serial monitor按钮,在com3窗口中可以观察到数据采集信息,如下图4-4所示:

图4-4 COM3窗口结果

26

江西理工大学2014届本科生毕业设计(论文)

4.2 硬件问题及解决

在调试过程中,由于初次使用面包板,对于面包板的一些特征不是很了解,导致连线经常出现错误,以至于系统无法正常工作。

在选取蜂鸣器的时候,开始选用的是有源蜂鸣器,但是在调试的时候发现蜂鸣器是一直在发出声音,而且是连续的,并没有达到自己预期的效果,所以在最后自己又换取了无源蜂鸣器,时期达到预警的效果,并发出固定频率的声音。

本系统由于要使用LCD1602显示器,所以需要大量连线,以至于在初期经常出现连线错误的情况,最糟糕的时候几乎将整个系统烧坏,到后期自己摸索出一些经验,尽量减少了显示器的外联接口,将整个系统的地线连接到面包板的一条线路上,然后将各个元器件固定在面包板上,然后再讲Arduino与面包板连接在一起,这样可以更方便的区分线路走向。

4.3 软件问题及解决

在使用Arduino软件过程中遇到的最大的问题就是学习如何使用库文件。 在刚开始调试程序时软件弹出下面窗口图4-5所示:

图4-5 测试错误

这种情况就是Arduino中不含有dht11的库文件,所以我们不能直接调用Dht11的函数。由于要使用DHT11传感器,但是对于DHT11传感器采集到的模拟信号转换成数字信号是一项非常复杂的过程,查阅的大量资料也没有找到关于其转换公式,最后在一篇论文中发现关于各种复杂的元器件或传感器都有自己的库文件,安装库文件以后我们就可以直接使用其函数,通过网络查询,在网络上

27

江西理工大学2014届本科生毕业设计(论文)

找到了关于DHT11的库文件接LCD1602的库文件,当安装好各种库文件以后又遇到一个大的问题,由于库文件并没有提供文件使用方法,应为每一个库文件中又有不同的函数,但是我并不知道其中函数的使用方法,最后为了解决这个问题又不得不在网上搜索关于这两个库文件的使用方法,通过大量的查阅资料,对比其他文献中对于其使用方法,终于彻底的掌握了这两个库文件的使用方法并成功的运用的本系统中。

有时候因为程序要反复调试下载,有时会提醒com3接口被占用,不能下载程序,这是只有拔掉下载线,重新启动Arduino,再次下载程序解决问题。

28

江西理工大学2014届本科生毕业设计(论文)

第五章 总结与展望

5.1 全文总结

经过近十几周的连续奋战,从拿到课题题目,到后来查找资料,理论知识学习,实验编程调试等,这一切都使我的理论知识和动手实践能力都有了质的飞跃。了解了Arduino uno的硬件结构和软件编程方法,对Arduino uno的工作方式有了很大的认知。同时,对一些外围硬件设备比如温湿度传感器、液晶显示屏、有源无源蜂鸣器等有了很多新的认识和理解。

在硬件电路设计中选用了Arduino uno作为系统的核心控制部件。温湿度检测采用了DHT11温湿度传感器。通过翻阅和查找大量的专业资料,最终确定了智能化的总体设计方案。由LCD1602液晶显示屏为核心的显示电路可以直观的显示数据测量结果。报警电路的设计同时采用了蜂鸣器和LED显示的方式。为了实现系统的智能化,系统软件设计了数据显示电路子程序,报警电路程序,数据采集电路程序。

但因为自己的专业知识的局限性,在课题设计过程中难免也存在很多不尽人意的地方。比如温湿度的控制精度还是很低,这个跟温湿度传感器的选择有很大的关系。另外就是硬件的布局设计不够美观,给人有很凌乱的感觉,以后有机会应该自己做印刷板然后再制作电路板是个元器件集成到一块板子上就比较完美了。

温湿度控制已经成为了21世纪热门研究话题之一。无论是从生产还是生活,温湿度都与我们人类都是息息相关的。而智能化的温湿度控制系统的发展方向已成为一种必然趋势。我们思维方式不可能一直原地不动,不能再坚守旧时代利用大量人力资源来控制温度和湿度的变化。这样不但浪费大量的人力财力资源,而且控制系统功能也比较单一化,适用场合也有很大的局限性。而使用自动的智能控制的方式,既节省了人力财力,更加体现出了与时俱进的辩证思想,世界在进步,而这种进步就该体现在生活中的各个细节方面。

5.2 未来展望

环境控制技术是一个多学科交叉、多技术综合的新兴研究课题。在我国,对环境的智能控制技术的研究尚处于初级研究阶段,对其研究的课题也较少。

本文虽然完成了设计的初衷,但是在设计过程中及使用后发现还是有一些需要改进的地方。比如数据在采集更新会出现数据延迟,这个问题需要进一步的研究与分析。

因为时间仓促,本系统并没有实现无线传输数据的功能,只能采用有线连接

29

江西理工大学2014届本科生毕业设计(论文)

显示数据,所以限制了其应用的方便性。由于Arduino控制板本身简单易用, 又具有丰富的周边资源和完全开源的特点, 因此用其作为控制核心的。

温湿度控系统设计, 可完成所监测的环境温湿度的实时控制, 并具有良好的功能扩展性,所以我们可以在Arduino控制板上再增加一片蓝牙控制模块,来进行无线传输和接收数据,使系统更人性化。

现在仅仅是完成了数据显示的功能,将来可以将数据存入数据库,以备以后需要查询时能够查询的到。而且还可以采用上位机技术在连接到个人计算机上做出一个模拟的仪表盘,更能方便的读取数据并观察数据的变化过程。

智能控制理论在不断发展,总是有新的好的控制方法提出,把新的方法应用于实际,理论与实际相结合,一方面可以取得经济效益,另一方面可以在实际中验证理论的正确性,并且提出它的改进方向。

30

江西理工大学2014届本科生毕业设计(论文)

致 谢

经过近十几周的努力,在易老师的精心指导及其他同学的帮助下,我已经顺利地完成了设计任务。当完成毕业设计全部任务,使我既巩固和强化了大学期间学过的专业基础知识和技能,又学到了许多最新和最前沿的新知识。通过理论研究和实践相结合的设计方法,使得在大学期间学习到的各方面专业知识得到了融会贯通,巩固了各科知识的连接性。在体会实际工作困难的同时,也深深的体会到实践与理论的差距。 更重要的是让我重新认识到了自学的重要性,以及学以致用的道理。我通过多种渠道包括在学校图书馆和网络资源等查阅了大量的专业资料和课题发展状况,通过上网解决了很多自己认为比较棘手和难以解决的问题。通过此次毕业设计,让我真正的掌握了设计一个课题的方法、步骤等,提高了从提出问题到找出解决问题的方法的综合运用能力。在整个课题的设计的过程中,相关老师给与了我大力帮助,特别是得到易称福导师无微不至的指导和帮助。学院各位知道老师的那种治学严谨的作风给我留下了难以磨灭的深刻印象,让我永远不会忘记他们对于我的教育。在此,对全体帮助过我的老师和同学表示衷心的感谢与祝福!对易称福老师致以最崇高的敬意!

由于本人专业知识的局限性,加之论文撰写时间比较仓促,设计过程中疏漏和错误及瑕疵之处是难以避免,希望各位老师给予谅解。同时也希望老师加以批评和指正,使我在以后的学习和工作中取得更大的成绩。

31

江西理工大学2014届本科生毕业设计(论文)

参考文献

[1] 关晓丽. 基于PIC的温室自动控制系统[J]. 黑龙江科技学院学报, 2008: 39-40. [2] 毕玉革. 我国现代温室环境控制硬件系统的应用现状及发展[J]. 农机化研究, 2009: 5-6. [3] Prakash KumarPradeep Kumar《International Journal of Computer Science and Mobile

Computing》, 2013 .

[4] 刘潇潇. 国内外设施环境监控技术研究现状[N]. 中国花卉报,2009-08:4. [5] 陈遵银.基于温湿度传感器的仓库自动测试系统[J].元器件与应用, 第四期. [6] DS18B20 Programmable Resolution 1-Wire digital Thermometer Data Sheet.2008:90-92. [7] 张智.基于单片机的日光温室控制系统的设计.微计算机信息,2006:7-8.

[8] 邓祥征, 战金艳等.精确农业分布式数据采集与空间决策分析系统的设计[J],农业工程

学报.2005:7-8.

[9] Bennett SN;McNeil MM;Bland LA;Arduino MJ Villarino ME Perrotta DM Burwen DR

Welbel SF Pegues DA Stroud L《New England Journal of Medicine》,1995 .

[10] 周俊, 苗玉彬等.基于GSM的数字农业远程监控系统研究与应用[J], 农业工程学

报.2005,21(6).

[11] 崔世安.农业结构调整与农业工程技术.农业工程学报,2000,16(1).

[12] Programming Interactivity: Unlock the Power of Arduino, Processing, and

OpenFrameworks Noble, Joshua O'Reilly Media, Inc, USA 2009.

[13] 杨启耀.温室环境智能控制技术的研究[D]. 硕士学位论文.安徽农业大学.2002. [14] 于海业等.发达国家温室设施自动化研究的现状[J].农业工程学报.1997. 13(增刊). [15] Angel Rivas-CasadoRafael Martinez-Tom asAntonio Fernandez-Caballero 《Expert systems》,

EI SCI 2011 .

[16] 王中训, 王恒.基于MSP430单片机的多路无线温度检测系统现代电子技术.2011. [17] 毛罕平, 王多辉等.智能温室综合环境因子控制技术效果及合理的环境参数研究[J].农

业工程学报, 1998(3).

[18] 吕昂.温室群全数字式温度和湿度综合控制系统[J].农业机械学报,2002. [19] 王一鸣.温室计算机分布式自动控制系统的开发[J].农业工程学报,2002.

[20] 李俊.基于111temet温室环境控制系统研究设计[J].农机化研究, 2003(4):267-268. [21] 白小梅, 石燕萍.微型机一单片机两级温度控制系统[J].现代电子技术, 2006. [22] Professional Android 2 Application Development Rato Meier , Wrox; 1 edition (March

1, 2010).

[23] 李全利.单片机原理及接口技术[M].高等教育出版社, 2009:158-165.. [24] Michael McRoberts .Arduino 从基础到实践., 电子工业出版社 2013:57-60.

[25] Ed Burnette. Hello, Android: Introducing Google's Mobile Development Platform .Pragmatic

Bookshelf; 3 edition (July 20, 2010).

32

江西理工大学2014届本科生毕业设计(论文)

[26] 卢聪勇. Arduino一试就上手. 科技出版社. 2013:50-65. [27] 传感器应用技巧141例[美], 科学出版社. 2006:209-214. [28] Joe Smiley Micros . An Arduino Workshop Pardue. 2010.

[29] 董铮.基于Arduino控制板的温室大棚测温系统设计[J].安徽农业科学报.2012, 40(8). [30] Casey Fry, Ben O'Reilly Media, Inc, Getting Started with Processing: A Quick, Hands-on

Introduction Reas, USA 2010

[31] 张玉华. 基于Arduino控制板的光引导小车设计.自动化仪表.2011. [32] 程晨. Arduino开发实战指南[美], 机械工业出版社.2012:78-85. [33] Dale. Arduino 技术内幕 . 北京邮电出版社.2013. [34] C程序设计教程[美] 清华大学出版社. 2010:135-138.

[35] 于欣龙,郭浩斌, 爱上Arduino Massimo Banzi.人民邮电出版社. 2011:256-260. [36] Simon Monk. .基于Arduino的趣味电子制作. .科学出版社. 2011. [37] 蔡睿妍. Arduino的原理及应用[J].电子设计工程.2012:98-101.

[38] Massimo O'Reilly Media, Getting Started with Arduino Banzi, Inc, USA 2008.

[39] Simon TAB Books Inc. Arduino Projects for the Evil Genius Monk, 2010.

33

江西理工大学2014届本科生毕业设计(论文)

附录一

面包板图

实物图:

34

江西理工大学2014届本科生毕业设计(论文)

附录二

#include #include

#define DHT11PIN 2 //数字IO接口2 LiquidCrystal lcd(12, 11,6, 5, 4, 3); //设置接口 dht11 DHT11;

float temperature = 0; //设置temperature为浮点变量 int Buzzer=7; //设置控制蜂鸣器的数字IO脚 int Led=8; void setup() {

pinMode(Buzzer,OUTPUT);

pinMode(Led,OUTPUT); //设置数字IO脚模式,OUTPUT为输出 Serial.begin(9600);

Serial.println(\"DHT11 TEST PROGRAM \"); Serial.print(\"LIBRARY VERSION: \"); Serial.println(DHT11LIB_VERSION); Serial.println();

lcd.begin(16, 2); //初始化LCD

lcd.print(\"DHT11 Thermometer\"); //使屏幕显示文字DHT Thermometer delay(500); //延时1000毫秒 } void loop() { //LCD

Lcd.clear(); //清屏

lcd.print(\"DHT11 Thermometer\"); //使屏幕显示文字LM35 Thermometer lcd.setCursor(0, 1) ;

lcd.print((float)DHT11.humidity, 2); //显示温度整数位 lcd.print(\"% \"); //显示小数点

lcd.print( (float)DHT11.temperature, 2); //显示温度小数点后一位 lcd.print(\"oC\"); //显示o符号

Serial.println(\"\\n\");

35

江西理工大学2014届本科生毕业设计(论文)

byte i;

int chk = DHT11.read(DHT11PIN); Serial.println(\"Read sensor:OK \"); Serial.print(\"humidity: \");

Serial.print((float)DHT11.humidity, 2); Serial.println(\" % \"); Serial.print(\"Temperature : \");

Serial.print((float)DHT11.temperature, 2); Serial.println(\" oC \");

//湿度大于75%

if(DHT11.humidity<75 ///湿度大于75% {

digitalWrite(Led,LOW); } else {

digitalWrite(Led,HIGH); delay( DHT11.humidity*0.2); digitalWrite(Led,LOW); delay( DHT11.humidity*0.1); }

/ //温度大于24度 if(DHT11.temperature>24) {

for(i=0;i<80;i++) //辒出一个频率的声音 {

digitalWrite(Buzzer,HIGH); //发声音 delay(15); //延时1毫秒 digitalWrite(Buzzer,LOW); //不发声音 delay(1); //延时毫秒 } }

delay(1000); }

36

因篇幅问题不能全部显示,请点此查看更多更全内容