您现在的位置是:首页 > 单片机

温度湿度监控系统的设计

2020-08-21 05:00:23

芯片简介
    SHTll是Sensirion公司生产的一款数字温度湿度传感器。它是一款将温度敏感元件、湿度敏感元件、信号放大调理器、14位的A/D转换器和二线串行接口电路集于一体的全校准数字输出传感器。该芯片可以直接提供温度在-40~120℃范围内分辨率为14 bit的数字输出和湿度在O~100%RH范围内分辨率为12 bit的数字输出。由于该芯片具有响应速度快、抗干扰能力强和性价比高等优点,因此采用SHTll芯片作为测量单元。
    该SHTll芯片内部还有一个加热器,利用加热器可以实现以下功能。
    (1)经过加热前后测出的相对温度值和湿度值的比较可以确定传感器是否处于正常工作的状态。
    (2)在潮湿的环境下使用加热器可以避免传感器凝露,同时还可以缩短响应时间,提高测量精度。
    (3)在实现高质量露点测量的时候也需要使用加热器。

2 硬件设计
    在硬件设计中,温度和湿度信号经过SHTll内部的温度敏感元件和湿度敏感元件转化为模拟电压信号,该模拟电压信号经过SHTll内部的信号放大调理器放大、然后再经过A/D转换器进行模/数转换、校准和纠错,最后才将相对温度或湿度的数据通过二线串行接口的双向数据口DATA端传送至超低功耗微处理器MSP430F149。当MSP430F149微处理器接收到数据后,通过P4和P5口经由LED显示温度值和湿度值。由于P1口具有中断功能,可以通过其设置矩阵键盘来输入报警的具体参数,经过比较如果需要报警,则通过P3口经过相关外围电路输出温度、湿度警报。具体的硬件连接如图1所示。

    因为SHTll是通过二线串行接口来访问,所以硬件的接口电路非常简单。其中需要注意的是:DATA数据线需要外接电阻。时钟线SCLK用于超低功耗微处理器MSP430F149和SHTll之间的同步通信,由于接口包含完全静态逻辑,所以对SCLK最低频率没有要求。

 温度和湿度数值可以通过LED显示。如果需要节约管脚,可以采用移位寄存器来实现LED的静态显示。例如8位的移位寄存器SN74HC595D芯片。该芯片的工作电压为2~6 V,可以和MSP430系列单片机直接连接。部分连接电路如图2所示。



    其中通过SN74HC595D的串行输出管脚实现串行级联,这样可以控制两个数码段的显示。微处理器的P4.1和P4.2分别与锁存输入信号端口RCLK 和移位时钟信号端口SRCLK相连,分别产生锁存信号和移位时钟信号。OE接地,使输出使能。基于以上电路,只要增加SN74HC595D的个数就可以增加显示的位数。
    矩阵键盘由行线和列线组成。主要通过扫描来实现捕获键盘的输入,扫描就是单片机不断地对行线依次设置低电平,然后检查列线的输入状态,图3为键盘电路。

3 软件设计
3.1 测量设计
    在程序开始时,微处理器首先用一组“启动传输”时序表示数据传输的初始化,然后发出一个8位的命令码,这个命令码包含3个地址位(必须设定为000)和5 个命令位。发送完该命令代码(命令代码含义如表l所示),将DATA数据线设为输入状态等待SHTll的响应。SHTll接收到上述地址和命令码后,在第 8个时钟下降沿将DATA数据线下拉为低电平作为响应信号。在第9个时钟下降沿之后,SHTll将DATA数据线恢复为高电平,这表示已经正确地接收到测量指令。DATA数据线恢复后,SHTll开始测量当前温度或湿度,测量结束后,再次将DATA数据线下拉为低电平,这表示测量已经结束。微处理器检测到 DATA数据线被拉低后,给出时钟信号。SHTll接着传输2 bit的测量数据和1 bit的校验数据,微处

理器需要通过下拉DATA数据线以确认每个字节。首先在8个时钟下降沿输出高字节数据,在第9个时钟下降沿,微处理器将DATA数据线拉低作为响应信号,然后释放DATA数据线。在随后8个时钟下降沿SHTll发出低字节数据;接下来的时钟下降沿微处理器再次将DATA数据线拉低作为接收数据的响应信号。最后8个时钟下降沿SHTll发出校验数据,微处理器不予应答则表示通讯结束。在测量和通讯结束后,SHTll自动进入休眠模式。经测试,该系统可以对温度和湿度进行监控。



3.2 LED显示设计
    微处理器通过P4.0口串行输出数据到SN74HC595D。输出完成一个字节后,如果给一个锁存信号,则SN74HC595D就并行输出,在数码管上显示数据。如果没有给锁存信号,而是继续输出第二个字节,这时第一个SN74HC595D将前一个字节的数据通过串行输出管脚输出到第二个SN7 4HC595D的输入管脚。当输出结束时,两个SN74HC595D分别存储了两个字节的数据。此时如果微处理器给出锁存信号,则两个SN74HC595D通过并行输出将数据分别显示在两个数码管上。

3.3 键盘输入设计
    由于所有的列线都被上拉到3.3 V,因此当任何键都没有被按下的情况下,所有的列线上都是高电平。如果在P1.7管脚上输出低电平,同时行线的其他管脚上输出高电平时,当“S01”键被按下时,P1.0就为低电平;当“S02”键被按下时,P1.1就为低电平;当“S03”键被按下,则P1.2就为低电平;当“S04”键被按下,P1.3为就低电平。通过设置一条行线的输出就可以获取列线上的相应状态,从而获得键盘输入值。同理,如果依次在其他列线上输出低电平,就可以获取到其他键的输入值。通过这样的扫描方式,就可以实现键盘的输入。键盘扫描结果如图4所示。




    可以看出,当按键盘的4、0、5和6键时,单片机可以接收到准确的数据。当输入参数后,微处理器每次测量数据后都会与存储的参数进行比较,如果超出则发出警报。

4 结束语
    文中介绍了数字温度湿度监控系统的实现方案,硬件连接以及各个功能部分的设计。经测试,该系统可以实现对温度和湿度进行实时测量和监控,达到了设计要求。