搜档网
当前位置:搜档网 › 基于Arduino的温湿度系统设计

基于Arduino的温湿度系统设计

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

摘要

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)

第一章绪论

1.1 课题背景

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

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

1.2 研究目的及意义

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

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

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

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

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

1.2.2 温湿度检测的意义

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

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

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

老式的温度计的原理是利用水银遇热膨胀和遇冷收缩来实现的,尽管物美价廉,但是它的精度很低,而且需要很仔细才能读清测量值。干湿球显示测量法是老式的湿度计普遍采用方法,但它不仅构造复杂而且测量精的确度也不是很高[5]。但是采用Arduino对温湿度进行测量控制,不但控制简单,操作方便和应用灵活等一系列的优点,而且可以大幅度提升温湿度控制的技术指标。用LCD液晶显示屏来显示温湿度的数值,看起来更加直观。

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]。

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

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

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

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

第二章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单片机

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 Handyboa rd等提[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编写的好。

2.2 Arduino开发工具介绍

一、Arduino开发工具的作用

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

二、获取和安装Arduino开发工具方式

1.下载Arduino 开发工具

下载地址:https://www.sodocs.net/doc/2a16108791.html,/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开发界面

各按钮功能如下:

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。

模拟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控制板有了进一步了解,为我们接下来的设计提供了基础知识。下一章我们将进入系统的具体设计。

第三章系统整体设计

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

3.1 方案论证

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

3.1.1 系统主要功能

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

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

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

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

3.1.2 系统的工作原理简介

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

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

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

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

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

3.1.3 总体设计简介

1、总体设计框图

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

IO2 IO8 IO7DHT11传感器

模块1602液晶显示模块

呼吸灯模块

蜂鸣器报警

模块

图3-1系统总体方案

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

2 、总体设计工作进程

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

分析题目并查找资料

编写代码

进行液晶的实

物调试

传感器的实物

调试

假装报警器模

块和呼吸灯模

系统整体调试

系统修改及完

完成

图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控制板

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原理图

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),空脚,请悬浮。

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的电气特性

参数条件Min typ max 单位

供电电压DC 3 5 5.5 V

供电电流测量0.5 1.8 2.5 mA 平均0.2 0.8 1 mA 待机100 120 150 uA

采样周期秒 1 3 5 次

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

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

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

电源接口和接地接口。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的电压。

相关主题