0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 智能传感器SHT11在单片机嵌入式系统中的应用

智能传感器SHT11在单片机嵌入式系统中的应用

来源:
2025-12-30
类别:工业控制
eye 1
文章创建人 拍明芯城

智能传感器SHT11在单片机嵌入式系统中的应用

一、引言

在物联网、智能家居、工业自动化等现代科技领域,嵌入式系统凭借其高度集成化、智能化和实时性优势,成为推动技术革新的核心力量。其中,温湿度监测作为环境感知的基础环节,广泛应用于气象观测、农业大棚、医疗设备、仓储管理等场景。传统模拟式温湿度传感器需外接信号调理电路,且存在校准复杂、精度低、抗干扰能力弱等问题,难以满足高精度、低功耗的嵌入式系统需求。

image.png

瑞士Sensirion公司推出的SHT11数字式温湿度传感器,基于CMOSens™技术,将温湿度传感、信号放大、A/D转换、校准数据存储及I²C总线接口集成于单芯片,实现了“即插即用”的数字化输出。其高精度、低功耗、全互换性等特点,使其成为单片机嵌入式系统中温湿度监测的理想选择。本文将深入探讨SHT11的技术特性、硬件设计、软件编程及典型应用案例,为工程师提供从选型到落地的全流程技术参考。

二、SHT11传感器技术特性与选型依据

2.1 核心技术与性能参数

SHT11采用CMOSens™技术,将电容式湿度传感器与带隙式温度传感器集成于同一芯片,通过14位A/D转换器实现高精度数字化输出。其关键性能参数如下:

  • 温湿度测量范围与精度

    • 温度:-40℃至123.8℃,典型精度±0.4℃(25℃时);

    • 湿度:0%RH至100%RH,典型精度±3%RH(25℃时),分辨率14位(湿度)、12位(温度),可编程降至8位以降低功耗。

  • 校准与长期稳定性

    • 传感器在精密湿度室中逐点校准,校准系数存储于OTP内存,确保100%互换性,长期稳定性优于±1%RH/年。

  • 接口与通信协议

    • 采用二线制I²C类似协议(非标准I²C,需专用时序驱动),数据输出包含CRC校验,抗干扰能力强。

  • 电源与功耗

    • 工作电压2.4V至5.5V,测量时电流550μA,平均电流28μA,休眠电流3μA,适合电池供电设备。

2.2 选型依据:为何选择SHT11?

在众多温湿度传感器中,SHT11的竞争优势体现在以下方面:

  • 高集成度
    传统方案需外接信号调理电路、A/D转换器及校准模块,而SHT11将全部功能集成于7.65mm×5.08mm×23.5mm的LCC封装中,显著简化硬件设计,降低BOM成本。

  • 数字化输出与易用性
    直接输出校准后的数字信号,无需复杂算法处理,兼容各类微控制器(如51系列、STM32、Arduino),缩短开发周期。

  • 抗干扰与长期稳定性
    电容式湿度传感器采用聚合物覆盖层,抵御灰尘、腐蚀性气体干扰;CMOSens™技术降低信号噪声敏感度,适应工业环境长期运行。

  • 低功耗设计
    平均功耗仅28μA,休眠模式电流3μA,满足电池供电设备(如无线传感器节点)的节能需求。

2.3 替代方案对比

若项目对成本或性能有特殊需求,可参考以下替代型号:

  • SHT10:基础版,精度较低(湿度±4.5%RH),适合对成本敏感的消费电子;

  • SHT15:高精度版(湿度±2%RH),适用于实验室、医疗设备等严苛场景;

  • SHT3x系列(如SHT30/SHT31):兼容标准I²C协议,响应速度更快(<1秒),精度±1.5%RH,但价格较高;

  • DHT22:低成本方案,湿度精度±2%RH,但需外接上拉电阻,抗干扰能力弱于SHT11。

三、硬件系统设计:SHT11与单片机的接口电路

3.1 核心元器件选型

  • 主控芯片

    • STC89C52RC:8位8051内核,8KB Flash、512B RAM,支持串口通信,性价比高,适合基础温湿度监测;

    • STM32F103C8T6:32位ARM Cortex-M3内核,20KB RAM、64KB Flash,支持多任务调度,适合复杂场景;

    • ESP8266/ESP32:集成Wi-Fi模块,支持云端数据上传,适用于物联网应用。

  • 显示模块

    • LCD1602:2行16字符液晶屏,驱动简单,成本低,适合显示实时温湿度值;

    • OLED显示屏:高对比度、自发光,支持图形化界面,提升用户体验。

  • 报警模块

    • 有源蜂鸣器:5V驱动,直接连接单片机I/O口,实现声光报警;

    • LED指示灯:红色(超限报警)、绿色(正常状态),串联1kΩ限流电阻。

  • 按键模块

    • 轻触按键:3个按键分别连接P3.2-P3.4引脚,实现阈值调整、确认等功能。

3.2 SHT11接口电路设计

SHT11采用4引脚LCC封装,引脚功能如下:

  • GND:接地端;

  • VDD:电源端(2.4V-5.5V);

  • DATA:双向串行数据线,需外接10kΩ上拉电阻至VDD;

  • SCK:串行时钟输入,用于同步数据传输。

典型连接方式(以STC89C52RC为例)

  • DATA引脚连接P2.0,SCK引脚连接P2.1;

  • VDD接5V电源,GND接地;

  • DATA线上拉电阻确保信号稳定性,避免悬空干扰。

3.3 电源与抗干扰设计

  • 电源滤波
    在VDD与GND之间并联0.1μF陶瓷电容和10μF钽电容,滤除高频噪声,稳定供电电压。

  • 布局优化

    • SHT11应远离发热元件(如电源模块),避免温度梯度引起的测量误差;

    • DATA与SCK线尽量短且平行走线,减少串扰;

    • 模拟地与数字地单点接地,降低地线噪声。

四、软件编程:SHT11数据采集与处理

4.1 通信协议与时序

SHT11采用非标准I²C协议,需严格遵循以下时序:

  1. 启动传输

    • SCK高电平时,DATA由高变低;

    • 下一SCK高电平时,DATA由低变高。

  2. 发送命令

    • 包含3位地址(固定为000)和5位命令(如0x03测温度、0x05测湿度);

    • 每个命令后需等待DATA线拉低(ACK信号),表示传感器接收成功。

  3. 读取数据

    • 测量完成后,DATA线拉低表示数据就绪;

    • 依次读取高8位、低8位数据及8位CRC校验码;

    • 每读取1字节后,主机需拉低DATA线(ACK)确认。

  4. 停止传输

    • SCK高电平时,DATA由低变高。

4.2 关键代码实现(基于Keil C51)

#include <reg52.h>
#include <intrins.h>

sbit DATA = P2^0;  // SHT11数据线
sbit SCK = P2^1;  // SHT11时钟线

// 启动传输函数
void SHT_Start(void) {
   DATA = 1; SCK = 0;
   _nop_(); SCK = 1;
   _nop_(); DATA = 0;
   _nop_(); SCK = 0;
   _nop_(); _nop_(); _nop_();
   DATA = 1; _nop_();
}

// 发送命令函数
void SHT_WriteByte(unsigned char cmd) {
   unsigned char i;
   for (i = 0; i < 8; i++) {
       DATA = (cmd & 0x80) ? 1 : 0;
       cmd <<= 1;
       SCK = 1; _nop_(); _nop_();
       SCK = 0; _nop_(); _nop_();
   }
   DATA = 1; // 释放数据线
   SCK = 1; _nop_(); _nop_();
   if (!DATA) { // 检查ACK
       SCK = 0;
   } else {
       // 错误处理
   }
}

// 读取数据函数
unsigned int SHT_ReadData(void) {
   unsigned int val = 0;
   unsigned char i;
   DATA = 1; // 释放数据线
   for (i = 0; i < 16; i++) {
       SCK = 1; _nop_(); _nop_();
       val <<= 1;
       if (DATA) val |= 0x01;
       SCK = 0; _nop_(); _nop_();
   }
   return val; // 返回16位原始数据
}

// 温度转换公式(14位分辨率)
float Temp_Convert(unsigned int SO_T) {
   return -40.0 + 0.01 * SO_T;
}

// 湿度转换公式(14位分辨率)
float Humi_Convert(unsigned int SO_RH) {
   float c1 = -4.0, c2 = 0.0405, c3 = -2.8e-6;
   return c1 + c2 * SO_RH + c3 * SO_RH * SO_RH;
}

void main() {
   unsigned int temp_raw, humi_raw;
   float temp, humi;
   
   while (1) {
       SHT_Start();
       SHT_WriteByte(0x03); // 发送测温命令
       // 等待测量完成(可通过延时或轮询DATA线)
       Delay_ms(200); // 假设测量时间200ms
       temp_raw = SHT_ReadData();
       temp = Temp_Convert(temp_raw);
       
       SHT_Start();
       SHT_WriteByte(0x05); // 发送测湿命令
       Delay_ms(200);
       humi_raw = SHT_ReadData();
       humi = Humi_Convert(humi_raw);
       
       // 显示或传输数据...
   }
}

4.3 数据校准与补偿

SHT11输出为非线性值,需通过公式修正:

  • 湿度补偿

    mathRH_{linear} = c1 + c2 cdot SO_{RH} + c3 cdot SO_{RH}^2

    其中,12位分辨率时:c1=-4, c2=0.0405, c3=-2.8e-6

  • 温度补偿

    mathT = -40.0 + 0.01 cdot SO_T
  • 露点计算

    LogE_W = 0.66077 + 7.5 cdot T / (237.3 + T) + log_{10}(RH) - 2 
    D_p = frac{(0.66077 - LogE_W) cdot 237.3}{LogE_W - 8.16077}

五、典型应用案例:温湿度监测与报警系统

5.1 系统功能需求

  • 实时采集环境温湿度值;

  • LCD1602显示当前数据及阈值;

  • 按键设置温湿度上下限;

  • 超限时触发蜂鸣器报警及LED指示;

  • 数据通过串口上传至PC(可选)。

5.2 硬件扩展设计

  • LCD1602连接

    • RS接P2.0,RW接P2.1,E接P2.2;

    • D0-D7接P0口,需外接10kΩ排阻上拉。

  • 报警模块

    • 蜂鸣器接P2.3,串联1kΩ电阻;

    • LED接P2.4,串联1kΩ电阻。

  • 按键模块

    • 3个按键分别接P3.2(阈值加)、P3.3(阈值减)、P3.4(确认)。

5.3 软件流程优化

  1. 主程序初始化

    • 初始化LCD1602、I/O口、定时器;

    • 加载默认阈值(如温度上限30℃、下限10℃,湿度上限70%RH、下限30%RH)。

  2. 数据采集循环

    • 每2秒采集一次温湿度数据;

    • 连续3次超限触发报警(避免瞬时干扰)。

  3. 报警逻辑

    • 单参数超限:蜂鸣器间歇发声(0.5秒响/停),LED闪烁;

    • 多参数超限:蜂鸣器持续发声,LED常亮;

    • 按下确认键停止报警。

5.4 调试与优化

  • 硬件调试

    • 检查SHT11上拉电阻是否焊接正确;

    • 用示波器观察DATA与SCK信号时序;

    • 确保LCD1602对比度电位器调节至清晰显示。

  • 软件调试

    • 通过串口助手验证原始数据与转换值;

    • 调整延时函数参数以匹配传感器响应时间;

    • 测试按键消抖逻辑(10ms延时)。

六、元器件采购与技术支持

SHT11及相关元器件可通过拍明芯城(www.iczoom.com)一站式采购,平台提供以下服务:

  • 型号查询:支持SHT11、STC89C52RC、LCD1602等型号搜索;

  • 品牌与价格对比:汇聚Digi-Key、Mouser、Arrow等渠道报价;

  • 国产替代方案:推荐国产温湿度传感器(如SHTW1、AHT20);

  • 数据手册下载:提供英文原版及中文翻译版PDF资料;

  • 封装与引脚图:详细标注LCC、DIP等封装尺寸及功能说明。

七、总结与展望

SHT11凭借其高集成度、高精度、低功耗及易用性,成为单片机嵌入式系统中温湿度监测的核心元件。通过合理选型、硬件优化与软件编程,可快速构建稳定可靠的监测系统。未来,随着物联网与人工智能技术的发展,SHT11可进一步集成无线模块(如LoRa、NB-IoT),实现云端数据管理与智能分析,为智慧农业、智慧城市等领域提供更强大的环境感知能力。

参考文献

  1. Sensirion. "SHT11 Datasheet." 2024.

  2. 电子发烧友网. "基于单片机SHT11温湿度采集报警系统设计." 2025.

  3. CSDN博客. "SHT11温湿度传感器在51单片机中的应用." 2020.

  4. 拍明芯城官网. "元器件采购与技术支持." 2025.

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
pcb
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告