SHT10传感器在温湿度监控系统中的应用

2012-06-04 01:30钱飞飞
城市建设理论研究 2012年13期
关键词:温湿度监控系统数据采集

钱飞飞

摘要: SHT10温湿度传感器具有体积小、功耗低、响应快、精度高、抗干扰能力强等特点,本文基于SHT10传感器,研究其在无线温湿度监控系统中的应用。文章阐述了数据采集单元设计、数据传输模块、显示模块的硬件设计和软件设计。

关键词:SHT10传感器;监控系统;数据采集;温湿度;

Abstract: The SHT10 humiture sensor is with the features of small size, low power consumption, fast response, high precision, strong anti-interference ability and other characteristics. This paper, based on the SHT10 sensor, studys the its application in the wireless humiture monitoring system. And this paper expounds the data acquisition unite design, data transmission module, hardware design and software design of display module.

Keywords: SHT10 sensors; monitoring system; data collection; humiture;

中图分类号: S951.4+1文献标识码:A文章编号:

0.引言

仓储管理、生产制造、气象观测、科学研究以及日常生活中,需要对温度、湿度进行实时检测。随着新技术和新材料的发展,一系列新型传感器出现了。具有代表性的是瑞士Sensirion公司生产的SHT1x/7x系列单片集成传感器,这类传感器可以同时测量湿度、温度,不仅提高了测量精度,还简化了外围电路。本文选取SHT10,介绍其在无线温湿度监控系统中的典型应用。

1.SHT10温湿度传感器概述

SHT10基于CMOSensTM技术,将温湿度传感器、信号放大调理、14位A/D转换和两线串行接口集成于一芯片内,数字量输出,免调试,免标定,与外围电路采用两线制连接。每个相对传感器都在恒湿箱中精确标定,校准系数以程序形式储存在OTP内存中,在测量过程中对相对湿度自动校正。该传感器具有体积小、功耗低、响应快、精度高、抗干扰能力强等特点,是温湿度监控系统的首选芯片。SHT10温湿度传感器测湿精度为±4.5%RH,最大分辨率为12位,测温精度为±5℃,最大分辨率为14位。

2.系统硬件设计

2.1数据采集单元设计

数据采集单元由温湿度传感器SHT10和微控制器PIC16F873组成。

SHT10通过两线串行接口与微处理器连接,如图1所示。SHT10的供电电压是2.4~5.5V,推荐使用3.3V,电源引脚VDD和GND之间需要加一个100nF的去耦电容。串行时钟输入线SCK用于使PIC16F873与SHT10之间通信同步,微控制器可以以任意低的速度与SHT10通信。串行数据线DATA引脚是三态门结构,用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。在PIC16F873向SHT10发送数据且SCK时钟为高电平时,DATA必须保持稳定。为避免信号冲突,PIC16F873应拉低DATA,当需要拉高DATA信号时,可以通过附加的上拉电阻来实现。

图1 数据采集电路

2.2数据传输模块

系统采用基于nRF24E1的无线传输。nRF24E1是Nordic公司推出的一款无线片上系统(SoC),集成了2.4GHz无线收发芯片nRF2401、增强型8051内核、9路100ksps的10位ADC、UART异步串口、SPI同步通信串口、PWM输出、RC振荡器、看门狗和唤醒定时器等,可以在1.9~3.6V之间的电压下稳定工作。该芯片有125个频点,能够实现点对点、点对多点的无线通信,同时可采用改频和跳频来避免干扰,数据最高传输速率为1Mbps,在比较理想环境中,其室内传输距离可达30~40米,室外传输距离可达100~200米。

图2是无线传输部分的电路图。

图2无线传输电路 图3显示电路

2.3显示模块

显示部分选用LCD1602液晶模块,电路设计如图3所示。

3.系统软件设计

3.1SHT10工作时序

SHT10上电后11ms进入休眠模式,首先应发送一个传输启动时序(如图4所示)唤醒芯片,即在SCK为高时将DATA由高电平拉为低电平,并在下一个SCK为高时将DATA拉高。随后,微控制器可向SHT10发送命令,命令字包括高3位的地址位 (目前只支持000)和低5位的命令位。常用命令有:0x03测温度,0x05测相对湿度,0x07读寄存器,0x06写寄存器,0x1e软件复位。在发送命令时序中,SHT10在第8个SCK时钟周期下降沿后拉低DATA来表示正确接收到命令。SHT10在第9个SCK时钟周期的下降沿之后释放DATA线,DATA恢复至高电平。微控制器发出一组测量命令后需要根据测量数据精确度8/12/14bit分别等待最长20/80/320ms,SHT10通过拉低DATA表示测量结束,同时存储测量结果等待微控制器读取,SHT10自动进入空闲状态。

图4SHT10传输启动时序 图5SHT10连接复位时序

测量数据读取前,微控制器重新启动SCK,SHT10传送两字节的测量数据与一字节的CRC校验数据,传输数据的顺序是从最高位(MSB)到最低位(LSB)。微控制器接收到每个字节后,将数据线拉成低电平,产生应答信号ACK,以CRC校验字节的确认表示通信结束。CRC寄存器通过计算多项式(+1)来判定测量过程是否发生错误,一旦发现错误,微控器就发送软启动命令,重新进行测量。如果不使用CRC-8校验,微控器可以在测量值LSB后保持DATA高电平来终止通信。SHT10在测量和通信完成后会自动返回睡眠模式。

如果微控制器与SHT10通讯中断,可通过连接复位时序复位,即当DATA保持高电平时,触发SCK时钟9次或更多次,如图5所示。这个时序只复位串口,状态寄存器内容仍然保留。

3.2数据采集模块软件设计

这部分软件设计如图6所示。各部分主要是根据SHT10的功能时序对I/O口进行操作,使其完成温湿度的测量,并将测量结果发送至微控制器中进行计算。SHT10测得的是一个8/12/14bit的数据,还需要进行信号转换才能得到用户需要的十进制数据。系统设置为温度精确度为12位,湿度精确度为8位,供电电压为5V,具体的计算过程如下:(1)计算温度,根据公式,其中为测得值,=-40.1,=0.04,系数是小数,考虑到单片机浮点数计算慢,故采用计算出温度值再将其转化为十进制;(2)计算相对湿度,先进行湿度的非线性补偿,其中为测得值,,,,另外由于SHT10是在25℃环境下标定的,考虑到实际温度与参考温度的不同,在进行湿度计算的时候需要温度补偿,,,湿度一般用百分数来表示,故计算过程中涉及的数据较大,采用三字节计算,计算结果再转化为十进制。

图6 数据采集部分流程图图7 CRC校验流程图 图8 液晶驱动模块软件流程图

3.3无线传输部分程序设计

nRF24E1的无线通信功能是通过集成在片内的nRF2401无线收发器来完成的。nRF2401有4种工作模式:收发模式、配置模式、空闲模式、关机模式。其中收发模式又可分为ShockBurstTM模式和Direct两种模式。nRF24E1只支持ShockBurstTM模式,这种模式将所有高速射频协议集成在芯片内部,与微控制器相连部分只是简单的SPI口,接口速率取决于微控制器本身接口的速度。ShockBurstTM模式实现了低速数据输入高速数据输出,从而使系统的平均功耗最小。

nRF24E1数据包格式如表1所示,Per-amble是前导码,是由硬件自动加上去的;ADDR是要发送的32~40位地址码;PAYLOAD是有效数据;CRC是校验位,它可由内置CRC纠检错硬件电路自动加上,可设为0、8或16位。ADDR、PAYLOAD和CRC的总长度最大为256位,因此,设置较短的地址和校验和可以提高传输效率,但会使可靠性降低。

表1 nRF24E1数据包格式

Per-amble ADDR PAYLOAD CRC

Per-amble

发送过程:(1)有数据要发送,设置RADIO_wr.6=1,激活nRF24E1;(2)接收节点的地址和有效数据写入nrf24e1;(3) 设置RADIO_wr.6=0激活nRF24E1以ShockBurstTM模式发送;(4) ShockBurstTM模式:无线系统自动上电;数据包的完整性(加前缀和crc校验码);数据包的高速发送;发送结束进入待机模式。程序流程图如图所示。

接收过程:(1)系统设置为ShockBurstTM接收模式;(2)设置RADIO_wr.6=1,激活nRF24E1;(3)200μs后,nRF24E1监测空中信号;(4)当接收到有效数据包(有效地址和正确CRC校验)时,nRF24E1去掉前导码、地址和CRC位;(5) 设置RADIO_rd.6=1;(6) 设置RADIO_wr.6=0,系统进入待机模式(低功耗模式);(7)MCU以合适的速率通过SPI接口读出数据;(8)当接收完所有数据,设置RADIO_rd.6=0,nRF24E1准备进入ShockBurstTMRX、ShockBurstTMTX或掉电模式。

3.4协议设计

在数据收发过程中,依据ModBus协议保证数据的可靠传输。该协议有2种传输模式,即RTU模式和ASCII模式:ASCII模式即一个信息帧中的每8位的字节作为2个ASCII字符传输;而对于RTU模式,信息帧中的8位数据作为2个4位16进制字符。相对于ASCII模式, RTU模式表达相同的信息需要较少的位数,且在相同通信速率下具有更大的数据流量,故系统选用RTU模式,典型的消息帧如表2所示。最终数据会被从最低位开始转换成二进制编码发送,采用CRC- 16 进行数据有效性检验表2。

RTU协议典型消息帧

起始信号 设备地址 功能代码 数据 CRC校验 结束符

3.5个字符的时间间隔 1个字节 1个字节 N个字节 2个字节 3.5个字符的时间间隔

CRC的计算步骤如下:

(1)装如一个16位寄存器,所有数位均为1,称为CRC寄存器;

(2)该16位寄存器的低位字节与开始8位字节进行异或运算。运算结果放入这个CRC寄存器;

(3)记录下CRC寄存器的最低有效位,称为末位;

(4)把这个16寄存器向右移一位,高位补0;

(5)若末位是1,则A001h与CRC寄存器进行异或运算;

(6)重复(3) (4) (5),直至移出8位;

(7)返回(2)进行下一个字节的处理,直至所有字节都完成运算;

(8)CRC寄存器的内容就是需要使用的CRC码;

(9)CRC放在消息中,最高有效位先发送,最低有效位后发送。

图7给出了接收过程中CRC校验的流程图。

3.5液晶驱动模块软件设计

液晶驱动模块软件设计流程图如图8所示。

4.展望

本文介绍了SHT10在温湿度监控系统中的应用,其中提到了无线单片机nRF24E1,在后续的研究中,考虑组建无线传感器网络,通过基站收集各节点的数据,集中处理后提交给用户。以此实现复杂的指定范围内目标检测与跟踪,具有快速展开、抗毁性强等特点,有着广阔的应用前景。

参考文献:

[1]Datasheet SHT1x (SHT10, SHT11, SHT15) Humidity and Temperature Sensor Datasheet[Z]. Sensirion. 2009.

[2]李学海.PIC单片机原理[M].北京:北京航空航天大学出版社,2004.

[3]李俊,杜尚丰.智能温室控制器的开发[J].微计算机信息,2006, 22(5):65- 66.

[4]李文仲,段朝玉.短距离无线数据通信入门与实战[M]. 北京:北京航空航天大学出版社,2007.

注:文章内所有公式及图表请以PDF形式查看。

猜你喜欢
温湿度监控系统数据采集
蛋鸡育雏育成舍环境控制技术
档案库房温湿度记录统计及调控
无线广播电视安全优质播出的技术分析
县级区域雨量站观测设备监控系统的研究与设计
基于广播模式的数据实时采集与处理系统
通用Web表单数据采集系统的设计与实现
基于开源系统的综合业务数据采集系统的开发研究
基于Zigbee技术的煤矿井下通风机监控系统设计
变电站高压配电智能温湿度控制装置的研发与应用
档案库房温湿度调控思考