基于ARM的温湿度监测系统

2014-03-26 07:32吕洪武王宏志
长春工业大学学报 2014年2期
关键词:温湿度嵌入式湿度

袁 立, 吕洪武, 王宏志

(长春工业大学计算机科学与工程学院,吉林长春 130012)

0 引 言

随着我国科研实力快速稳定的发展,在实验室管理中对实验室环境提出了更高的要求。实验室环境直接影响到实验能否顺利进行。因此,实验室环境的实时监测对科学技术的发展有着重要的意义。

实验室环境监测中温度和湿度是重要参数[1]。传统的实验室环境监测系统中采用的PC机控制监控系统具有精准、稳定等优势,但是也存在着成本过高、系统庞大等诸多问题[2]。

文中的主要研究目标是从监测实验室温度和湿度出发,针对高等院校中实验室环境,通过采用嵌入式开发技术和室内环境检测技术,在测量环境温度和湿度的前提下,研究设计一种成本低、实用性高、易便携的温湿度监测系统。

1 系统方案设计

实验室温湿度监测系统由ARM芯片对温湿度传感器控制,通过传感器实现对温湿度数据的采集,并对采集的数据进行处理与显示。ARM芯片具有高性能、低功耗的特点,可以应用在嵌入式Web服务器设计等诸多领域[3]。当温湿度数据超出或低于设定温湿度值时,由ARM驱动报警装置实现报警功能。该实验室温湿度监测系统原理结构如图1所示。

图1 系统原理结构

2 系统功能设计与实现

2.1 系统硬件电路设计

系统主控芯片选用三星公司的基于ARM7TDMI内核的S3C44B0微处理器[4],该芯片内部有8 KB Cache。ARM7TDMI体系结构的特点是集成了Thumb代码压缩器,片内有ICE断点调试硬件和1个32位的硬件乘法器,S3C44B0内置系统存储控制器,LCD控制器等,还有2个通用DMA控制器(ZDMA),2个外围DMA控制器(BDMA),1个支持多主设备的I2C控制器,1个IIS总线控制器,5个PWM定时器和1个内部定时器,看门狗定时器Watch Dog,71个通用可编程的I/O口和8个外部中断源,具有8通道输入的10位ADC和具有日历功能的实时时钟RTC。

温湿度传感器则选用DHT11[5]温湿度传感器,该传感器是一款温湿度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个MCU相连接。通过与微处理器简单的电路连接就能够实时采集本地湿度和温度。DHT11与MCU之间采用一个I/O端口完成输入、输出双向传输通信。传感器内部40 bit的湿度和温度数据一次性传给主机,校验数据采用校验和的方式,能有效保证数据传输的准确性。DHT11功耗很低,5 V电源电压下,工作平均最大电流0.5 m A。DHT11的技术参数如下:工作电压范围:3.3~5.5 V;工作电流:平均0.5 m A;输出:单总线数字信号;测量范围:湿度20%RH~90%RH,温度0~50℃;精度:湿度±5%RH,温度±2℃;分辨率:湿度1%RH,温度1℃。

传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间分开处理。DHT11的数据格式十分简单,和MCU的一次通信最长为3 ms左右。

ARM芯片S3C44B0的PG2引脚和DHT11传感器的DATA引脚相连,DHT11采用3.3 V供电,如图2所示。

图2 ARM芯片与DHT11连线图

S3C44B0的PG2引脚是一个复用多功能引脚,可以设置成输出引脚、外部中断引脚等。PG2引脚还有一个可以设置成使能或禁止的上拉电阻。

系统通过预先设定的温、湿度阈值作为主要判断依据,当实验室环境中监测到的温、湿度数据超过或低于设定的阈值范围时,屏幕就会显示当前温、湿度数值,并且发出警告,由蜂鸣器发出报警。系统使用模块化任务设计,主要任务包括温湿度监测、ARM I/O控制、数据显示、阈值设定等。

2.2 系统软件设计

嵌入式系统使用μC/OS-II[6]操作系统,该系统是一个实时操作系统内核[7],包含了任务调度、文件管理、任务管理、时间管理、内存管理以及任务间通信和同步等基本功能。μC/OS-II的目标是实现一个基于优先级调度的抢占式实时内核,并在这个内核之上提供最基本的系统服务,例如信号量、邮箱、消息队列、内存管理、中断管理等。μC/OS-II获得广泛使用不仅仅是因为它的源代码开放,还有一个重要原因,就是它的可移植性。μC/OS-II的大部分代码是用C语言写成的,只有与处理器硬件相关的一部分代码用汇编语言编写。可以说,μC/OS-II在最初设计时就考虑到了系统的可移植性,这一点和同样源代码开放的Linux很不一样,后者在开始的时候只是用于x86体系结构,然后才将与硬件相关的代码单独提取出来。

目前μC/OS-II支持ARM,Power PC,MIPS,68K/Cold Fire和x86等多种体系结构。

文中软件程序开发选用CodeWarrior for ADS v1.2[8],该软件支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真,支持汇编、C和C++源程序。CodeWarrior for ADS v1.2集成开发环境主要提供了下面一些功能:

1)按照工程项目的方式来组织源代码文件、库文件以及其它文件。

2)设置各种生成选项,以生成不同配置的映像文件。

3)一个源代码编译器。它保存了代码中定义的各种符号,使用户可以在源代码中方便地跳转。

4)在文本文件中进行字符串的搜索和替换。

5)文本文件比较功能。

6)用户还可以根据自己的爱好设置集成环境的特色界面。

ARM芯片与DHT11通信过程如图3所示。

图3 ARM芯片与DHT11通信过程

主机信号由ARM芯片的PG2引脚发出。

在CodeWarrior for ADS v1.2软件开发环境下,结合系统的功能可将程序分为:主程序、温湿度监测任务、报警功能任务、系统数据显示任务等。通过μC/OS-II操作系统对任务的调度,实现了温湿度的监测和报警。系统主程序流程如图4所示。

图4 系统主程序流程

ARM启动传感器DHT11后,DHT11发送响应信号,把总线拉高80μs,准备发送数据,每一位数据都以50μs低电平时隙开始,高电平的长短决定了数据位是0还是1。

温湿度监测任务的程序流程如图5所示。

图5 温度检测流程

主要完成DHT11的启动,定时器2的设置,温湿度数据的读取等功能。定时器2中断服务程序流程如图6所示。

主要完成中断引脚设置,定时器5的初始化及启动等功能。

EINT2中断服务程序流程如图7所示。

图6 Time2中断服务程序流程

图7 EINT2中断服务程序流程

其作用是保存在发生中断时TCNTO5寄存器的当前值。

处理传感器数据的算法是:根据高电平之前出现的上升沿时刻TCNTO5寄存器的值(设为T1),以及高电平之后出现的下降沿时刻TCNTO5寄存器的值(设为T2),来计算高电平的时间,其中T1和T2的值可从全局数组Timer5data[84]中得到。若(T1-T2)<28,则此高电平传输的位为0;若68<(T1-T2)<75,则此高电平传输的位为1。

2.3 系统调试与实现

将搭建好的硬件平台通过串行接口连接到PC机上,使用CodeWarrior for ADS集成开发环境,配以JTAG仿真器,将映像文件加载到嵌入式控制模块中,进行系统调试和测试实验等工作。

结合设计实物,对系统的测量精确度进行了校验。校验方式主要通过测量多组温湿度数据与标准温湿度状况相对比,监测结果见表1。

表1 测量分析数据

由表1结果可以看出,温度监测精度误差小于等于1.7℃,湿度精度误差小于等于3.0%RH,满足系统的应用设计要求,并且能够达到实验室对温度和湿度的监测要求。

此外,分别作了温湿度报警功能的测试。设定温度阈值为4~10℃时,在环境温度超出温度设定阈值后,蜂鸣器报警。设定湿度阈值为40%RH~50%RH,在环境湿度超出湿度设定阈值后,蜂鸣器报警。

最后,使用Tektronix的TDS2002型示波器验证软件驱动程序的正确与否,某次从显示器读到的数据为湿度36.0%RH,温度15.0℃,则对应的数据为:0010 0100,0000 0000,0000 1111, 0000 0000,0011 0011,如图8所示。

图8 系统运行时示波器显示波形

由以上数据就可得到湿度和温度的值,计算方法:湿度=湿度整数×湿度小数=36.0%RH;温度=温度整数×温度小数=15.0℃;校验=湿度整数+湿度小数+温度整数+温度小数=51.0(湿度+温度)(校验正确)。

串行接口实验数据如图9所示。

图9 串行接口实验数据图

3 结 语

以高校实验室环境温湿度为研究背景,利用嵌入式开发、室内环境监测等技术,通过合理地构建ARM嵌入式开发平台,对实时环境温度和湿度进行监测和预警。实验结果表明,系统设计满足易便携、稳定性好、成本低等要求,具有一定的实际应用价值。

[1] 戴善溪,张效民.基于ZigBee技术的数字式温湿度监测网络设计[J].国外电子测量技术,2010,33(2):47-49.

[2] 周云辉,王娇,钱云飞.基于嵌入式的环境温湿度监测系统设计[J].电子测量技术,2012,35(9):80-82.

[3] 宫丽男,吕洪武,王宏志.基于ARM9的嵌入式Web服务器的设计[J].长春工业大学学报:自然科学版,2009,30(5):323-326.

[4] 王海民,王宏志.STM32以太网控制系统[J].长春工业大学学报:自然科学版,2014,35(1):60-65.

[5] 广州奥松电子有限公司.数字温湿度传感器DHT11[EB/OL](2013-04-30)[2013-12-15].http://www.aosong.com.

[6] Jean J Labrosse.嵌入式实时操作系统μC﹨OS-Ⅱ[M].邵贝贝,译.北京:北京航空航天大学出版社,2003.

[7] 熊茂华,杨震伦.ARM9嵌入式系统设计与开发应用[M].北京:清华大学出版社,2007.

[8] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.

猜你喜欢
温湿度嵌入式湿度
路基上CRTSⅡ型板式无砟轨道湿度场分析
基于AT89C51的数字型蚕用温湿度计的设计
基于DSP的多路温湿度监测系统
TS系列红外传感器在嵌入式控制系统中的应用
基于湿度控制的室内空气净化器高压电源设计
基于温湿度控制的天气预测装置
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
蒸发冷却温湿度独立控制空调系统的应用
跟踪导练(二)(2)