基于单片机的温湿度感测系统的实现

发布者:WhisperingWave最新更新时间:2012-03-03 来源: 电子科技 关键字:温湿度传感器  单片机  162字符型  液晶显示 手机看文章 扫描二维码
随时随地手机看文章
    温湿度的测量与控制在工业生产、气象、环保及日常生活的许多领域得到越来越广泛的应用,有很多地方都需要对温度和湿度进行定时或实时监控。人们除对温湿度传感器的普通性能(如精确度、长期漂移特性等)感兴趣外,还把目光聚集到其在不同环境下的耐久性、元件尺寸、数字化、简单和快速的系统综合特性上。SHTll是瑞士Sensirion公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案。

1 系统组成及硬件设计
    温湿度感测系统将单片机与温湿度传感器等技术相结合,以PIC单片机为微控制器,利用数字温湿度传感器SHTll对环境的温度和相对湿度进行检测,通过二线串行接口将数字温湿度信号送至PIC微控制器,最后利用PIC微控制器完成相对湿度的非线性补偿和温度补偿,并将实际温度和相对湿度值送液晶显示器显示,从而实现对环境温湿度的测控。温湿度感测系统主要由温湿度传感器SHTll和PIC单片机以及162字符型液晶显示屏组成。
1.1 数字温湿度传感器SHTll
    温湿度传感器SHTll将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图1所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大,然后进入一个14位的A/D转换器,最后经过二线串行数字接口输出数字信号。SHTll在出厂前,都会在恒湿或恒温环境中进行校准,校准系数存储在校准寄存器中,在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHTll内部还集成了一个加热元件,加热元件接通后可以将SHTll的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHTll温度升高、相对湿度降低,较加热前,测量值会略有差异。

a.JPG


    单片机和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线,硬件接口电路非常简单。需要注意的是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHTll之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有要求,当工作电压高于4.5 V时,SCK频率最高为10 MHz,而当工作电压低于4.5 V时,SCK最高频率为1 MHz。由于所用单片机不具备I2C总线接口,故使用单片机通用I/O口线来虚拟I2C总线,并利用RA0口来虚拟数据线DATA,RA1口线来虚拟时钟线,并在DATA端接入一只10kΩ的上拉电阻,同时,在VDD及GND端接入一只0.1μF的去耦电容。
    硬件连接如图2所示。

b.JPG


1.2 162字符型液晶显示模块
    162字符型液晶显示模块是发展比较成熟的一种液晶显示屏,应用相当广泛。它是一类专用于显示字母、数字、符号等的点阵液晶显示模块,可显示两行,每行可以显示16个字符,162字符型液晶显示模块应用到温湿度感测系统中显示温湿度,直观方便又节约成本。
    该显示屏是一个以若干5x8或5x11点阵块组成的显示字符群。其中,字符群中的每一个字符块为一个字符单位,字符间的点距和行距均为一个点的宽度。它的内部有字符发生器CGROM,可以显示160个5x7和32个5x10点阵字符,具有64个字节的CGRAM,可以自定义8个5x8或4个5x11点阵字符,有80个显示存储器DDRAM的地址。
    162字符型液晶显示模块由16个引脚组成,具体的引脚功能如表1所示。
    控制器接口信号说明:也就是RS、R/W和E信号的配合选择决定控制接口的4种模式,如表2所示。

c.JPG


    162模块与单片机的接口电路如图3所示。
    硬件将162模块的数据总线的低4位接为常态,在软件中设置数据总线长度为4位,4位数据总线时序图如图4所示。

2 系统软件设计
2.1 温湿度读取
    单片机和温湿度传感器通信采用串行二线接口SCK和DATA,该二线串行通信协议和I2C协议是不兼容的。由于采用二线串行接口,对于SHTll的操作按照严格时序,共有5条用户命令,分别是测量温度命令(03H)、测量湿度命令(05H)、读寄存器状态命令(07H)、写寄存器状态命令(06H)和软启动命令(1EH)。
    单片机发出启动命令,随后发出一个后续8位命令码,该命令码包含3个地址位(芯片设定地址为000)和5个命令位,发送完该命令码,将DATA总线设为输入状态等待SHTll的响应,SHTll接收到上述地址和命令码后,在第8个时钟下降沿,将DATA下拉为低电平作为芯片的ACK;在第9个时钟下降沿之后,芯片释放DATA(恢复高电平)总线;释放总线后,开始测量当前湿度,测量结束后,再次将DATA总线拉为低电平;单片机检测到DATA总线被拉低后,得知湿度测量已经结束,给出SCK时钟信号;芯片在第8个时钟下降沿,先输出高字节数据;在第9个时钟下降沿,单片机将DATA总线拉低作为ACK信号,然后释放总线DATA,在随后8个SCK周期下降沿,芯片发出低字节数据;接下来的SCK下降沿,单片机再次将DATA总线拉低作为接收数据的ACK信号;最后8个SCK下降沿芯片发出CRC校验数据,单片机不予应答(NACK)则表示测量结束。CRC寄存器通过计算一个多项式(x8+x5+x4)之和来判定测量过程是否发生错误,一旦发现错误,单片机就发送软启动命令,重新进行测量。如果不使用CRC校验,单片机可以在测量值LSB后保持应答信号ACK高电平,来终止通信。SHTll在测量和通信完成后会自动返回睡眠模式。[page]

    以测量相对湿度,测量值N=0000100100110001为例,整个测量过程时序如图5(a)、(b)、(c)所示。DATA为双向数据口,图5中粗线段表示由SHTll来控制数据线,常态下由单片机控制数据线。

d.JPG


    下面给出与上述硬件电路配套的PIC16的温度传感器读取程序。
    e.JPG          f.JPG
                                  RETURN
2.2 温度和湿度值的计算
2.2.1 湿度线性补偿和温度补偿
    SHTll可通过DATA数据总线直接输出数字量湿度值。该湿度值称为“相对湿度”,需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。由于相对湿度数字输出特性呈一定的非线性,因此为了补偿湿度传感器的非线性,可按下式修正湿度值:
    g.JPG
    式中,RHlineer为经过线性补偿后的湿度值,SORH为相对湿度测量值,C1、C2、C3为线性补偿系数。
    由于温度对湿度的影响十分明显,而实际温度和测试参考温度25℃有所不同,所以对线性补偿后的湿度值进行温度补偿很有必要。补偿公式如下:
    h.JPG
    式中:RHtrue为经过线性补偿和温度补偿后的湿度值,T为测试湿度值时的温度(℃),t1和t2为温度补偿系数。
2.2.2 温度值输出
    由于SHTll是采用PTAT能隙材料制成的温度敏感元件,因而具有很好的线性输出。实际温度值可由下式算得:
    i.JPG
    式中,d1和d2为特定系数,d1的取值与SHTll工作电压有关,d2的取值则与SHTll内部A/D转换器采用的分辨率有关。
2.3 温湿度显示
    计算出温度、湿度值后,在162字符型液晶显示模块上显示出来,屏幕第一行显示温度值:“TEM:……”第二行显示湿度值:“HUM:……”。程序设定每5 min更新一次温湿度。显示流程图如图6所示。

j.JPG



3 结论
    由PIC单片机和温湿度数字传感器SHTll以及162液晶显示模块组成的温湿度感测系统,充分利用了SHTll的特点,又对温湿度测量功能进行了扩充,使其具有显示直观、运行可靠、扩充方便等优点。利用可控的加热制冷设备对该系统性能进行了测试,实际结果表明:测温范围为-40~+100℃,误差不超过0.5℃,湿度测量范围是2~98%RH,误差不超过4%RH(室温25℃时测量),达到了预期性能指标,满足实际应用要求。

关键字:温湿度传感器  单片机  162字符型  液晶显示 引用地址:基于单片机的温湿度感测系统的实现

上一篇:液晶驱动MAX7232BF与单片机的硬件连接相关介绍
下一篇:基于单片机的韦根信号的接收

推荐阅读最新更新时间:2024-03-16 12:54

Ambiq Micro的低功耗MCU助力Misfit的下一代可穿戴产品
Ambiq Micro的ARM Cortex-M4带有基于FPU的微控制器(MCU) ,在Misfit的Shine 2中助力三轴mag、振动和彩色LED 超低功耗集成电路领导厂商Ambiq Miacro公司宣布Misfit, Inc.已经选择Apollo微控制器(MCU)作为Misfit Shine 2健身和睡眠监测仪的 大脑 。 Misfit在上周宣布了下一代Misfit Shine 2提供全新的特性、功能和能力,而无需牺牲其市场领先的六个月电池续航力。Shine 2使用三轴加速计和新增的三轴磁力计,能够更准确地跟踪活动和睡眠,并可使用彩虹色灯来显示运动进度和报告时间,而且可通过具备振动特性的Misfit Move功
[单片机]
iSuppli:全球MCU厂排名
    根据研调机构iSuppli统计资料,2012年MCU全球市场排名中,车用电子大厂瑞萨(Renesas)以4.05亿美元稳坐MCU市场第一名宝座,飞思卡尔(Freescale)则以2.34亿美元位居第二,至于以8位元MCU为主的MicroChip,2012年营收达2.10亿元,名列第三,意法半导体MCU营收则达1.32亿美元,晋升全球第四大MCU厂,而触控厂爱特梅尔(Atmel)则列居第五位,营收达到1.20亿美元。 而英飞凌(Infineon)、恩智浦(NXP)、德州仪器(TI)、东芝(Toshiba)及三星电子(Samsung Electronics)则分别盘据全球MCU厂排行榜中的六到十名。
[手机便携]
基于PIC18F系列单片机的嵌入式系统设计
引言 嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。嵌入式系统是面向应用的,系统的硬件选型和软件开发模式都必须根据具体的应用确定。 永磁无刷直流电动机是电机控制研究领域的热点之一,这与其自身固有的技术优势密切相关:以电子换相取代了有刷直流电动机的机械换相。从根本上革除了普通有刷直流电动机由于电刷换相带来的火花、噪音、高故障率等一系列问题,同时又使系统的性能能够与普通有刷直流电动机相媲美,因此得到了广泛的应用。永磁无刷直流电动机的电子换相离不开电机的转子位置信号,传统的方法是采用霍尔器件或其他位置传感器检测位置信号,这使得系统的维护和制
[嵌入式]
单片机SRAM工艺的FPGA加密应用
在现代电子系统设计中,由于可编程逻辑器件的卓越性能、灵活方便的可升级特性,而得到了广泛的应用。由于大规模高密度可编程逻辑器件多采用SRAM工艺,要求每次上电,对FPGA器件进行重配置,这就使得可以通过监视配置的位数据流,进行克隆设计。因此,在关键、核心设备中,必须采用加密技术保护设计者的知识产权。 1 基于SRAM工艺FPGA的保密性问题 通常,采用SRAM工艺的FPGA芯片的的配置方法主要有三种:由计算机通过下载电缆配置、用专用配置芯片(如Altera公司的EPCX系列芯片)配置、采用存储器加微控制器的方法配置。第一种方法适合调试设计时要用,第二种和第三种在实际产品中使用较多。第二种方法的优点在于外围电路非
[单片机]
<font color='red'>单片机</font>SRAM工艺的FPGA加密应用
8051单片机教程第十二课:逻辑运算类指令
单片机教程第十二课:逻辑运算类指令: 对累加器A的逻辑操作: CLRA;将A中的值清0,单周期单字节指令,与MOVA,#00H效果相同。 CPLA;将A中的值按位取反 RLA;将A中的值逻辑左移 RLCA;将A中的值加上进位位进行逻辑左移 RRA;将A中的值进行逻辑右移 RRCA;将A中的值加上进位位进行逻辑右移 SWAPA;将A中的值高、低4位交换。 例:(A)=73H,则执行CPLA,这样进行: 73H化为二进制为01110011, 逐位取反即为10001100,也就是8CH。 RLA是将(A)中的值的第7位送到第0位,第0位送1位,依次类推。 例:A中的值为68H,执
[单片机]
8位单片机中一个容易被忽视的溢出问题
8位单片机中一个容易被忽视的溢出问题 例: uint16 wTmp ; uint8 x ; x=2; wTmp = (uint16)(x*150); 各位,以上这个乘法有没有问题?wTmp的值是多少? 相信有很多人都会不加思考的说,没问题啊!wTmp=300 。 好,问题来了!告诉你,其实结果是 wTmp=44。 这里不作具体解释,请读者自已思考,下次在遇到类似此情况 的时候千万有小心! 正确写法: x=2; wTmp = (uint16)(x)*150; //wTmp=300
[单片机]
51单片机串口接收和发送数据
第一种方法:在中断中处理 typedef unsigned char UINT8; volatile UINT8 u8Uart_Data; void InitialUART0_Timer1() { SCON = 0x50; //2015-05-04 TMOD = 0x20; TH1 = 0XFD; // 9600BPS 2015-05-04 TL1 = 0XFD; TR1 = 1; // start timer0 ES = 1; // Enable serial interrup
[单片机]
基于8051单片机和SJAl000芯片实现智能传感器网络的设计
前 言 随着自动化程度的提高和信息的网络化进程, 所需要的测控点和测控参量越来越多, 使得一个自动控制系统日益庞大而复杂。对于一个系统来说, 需要的传感器数目成倍增加。为了使各智能仪表与上位机能实时、高速、准确地通信, 选择较理想的现场总线则是很关键的。现场总线是开放型控制系统, 是用于现场总线仪表与控制室之间的一种全数字化、串行、双向、多站的通讯网络 。CAN 是其中很有发展前景的一种现场总线。在网络化的系统中, 每只传感器作为一个智能节点挂接在CAN 总线上, 整个系统如图1所示。 1、 CAN 总线的技术特点 a) CAN 通信速率为(5kB/s)/10km、(1MB/s)/40m ,其节点数可达110 个, 传输介质采
[单片机]
基于8051<font color='red'>单片机</font>和SJAl000芯片实现智能<font color='red'>传感器</font>网络的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved