温湿度传感器(SHT10)
数字温湿度复合传感器 · 两线串行接口 · 已校准数字输出
一、理论基础
1.1 传感器概述
SHT10 属于 SHTxx 系列单芯片温湿度复合传感器,是一款含有已校准数字信号输出的温湿度传感器。它应用专利的工业 CMOS 过程微加工技术(CMOSens®),确保产品具有极高的可靠性与卓越的长期稳定性。
传感器内部集成了:
- 电容式聚合体测湿元件:检测相对湿度
- 能隙式测温元件:检测温度
- 14 位 A/D 转换器:将模拟信号数字化
- 串行接口电路:与单片机通信
因此,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
1.2 关键特性
| 参数 | 规格 |
|---|---|
| 湿度测量范围 | 0 ~ 100% RH |
| 温度测量范围 | -40 ~ +123.8 ℃ |
| 湿度精度 | ±4.5% RH(典型) |
| 温度精度 | ±0.5 ℃(25℃) |
| 分辨率 | 湿度 12bit / 温度 14bit |
| 供电电压 | 2.4 ~ 5.5 V |
| 接口 | 两线串行接口(类 I²C,非标准) |
| 封装 | 4 针单排引脚 / SMD LCC |
1.3 工作原理
湿度测量:电容式聚合体测湿元件的介电常数随环境相对湿度变化,导致电容值变化,经信号调理电路转换为电压信号,再经 14 位 ADC 数字化。
温度测量:能隙式(Band-gap)测温元件利用半导体 PN 结电压随温度线性变化的特性,输出与温度成正比的电压信号,经 ADC 数字化。
校准:每个 SHTxx 传感器都在极为精确的湿度校验室中进行校准,校准系数以程序形式存储在 OTP 内存中,传感器内部在检测信号处理过程中自动调用这些校准系数,用户无需额外校准。
1.4 典型应用
- 环境监测(气象站、室内环境)
- 农业大棚(温湿度监控与自动调节)
- 智能家居(空调、加湿器联动)
- 海洋气象(岸基站、浮标温湿度采集)
- 工业过程控制
二、实验实例:SHT10 温湿度采集
2.1 实验目的
- 掌握温湿度传感器的操作方法
- 掌握温湿度传感器采集程序的编程方法
2.2 实验内容
在 IAR 集成开发环境中编写温湿度传感器采集程序,循环采集温度和湿度值,并通过串口输出。
2.3 预备知识
- 了解 C 语言的基本知识
- 了解 IAR 中编写和调试程序的方法
2.4 实验设备
- 硬件:WSN-V 教学实验箱(带传感器 1 扩展板)、PC 机
- 软件:Windows + IAR EW for 8051 开发环境、串口调试助手
2.5 接口电路
通过 CC2530 的 I/O 口仿真 SHT10 要求的串行接口时序,以读出 SHT10 温湿度传感器采集的当前温度和湿度值。

引脚连接:
| SHT10 引脚 | CC2530 引脚 | 说明 |
|---|---|---|
| VCC | VCC3.3 | 电源 3.3V |
| GND | GND | 地 |
| DATA | P1.6 | 双向数据线(4.7K 上拉) |
| SCK | P1.7 | 串行时钟线 |
2.6 关键函数
void Sensor_PIN_INT(void):读写温湿度传感器实验时,对相应的 I/O 口进行配置。
uint16 ReadAdcValue(uint8 ChannelNum, uint8 DecimationRate, uint8 RefVoltage):用指定的参考电压、分辨率,读出指定 A/D 端口的数据。
| 参数 | 说明 |
|---|---|
| ChannelNum | 采集通道号 0-0xF(1000: AIN0–AIN1, 1010: AIN4–AIN5, 1110: 内部温度传感器, 1111: VDD/3) |
| DecimationRate | 分辨率(00: 64→7bit, 01: 128→9bit, 10: 256→10bit, 11: 512→12bit) |
| RefVoltage | 参考电压(00: 内部参考, 01: AIN7 外部参考, 10: AVDD5, 11: AIN6–AIN7 差分) |
| 返回值 | 16bit 采集的 A/D 数据 |
2.7 实验步骤
- 连接好仿真器,及带传感器 1 扩展板的通用调试母板
- 参照 IAR 安装及使用说明中的步骤"新建工程 → 添加配置 → 添加文件 → 编译链接 → 下载调试运行",新建工程 SHT10,添加相应文件并修改工程设置
- 创建 SHT10.c 并加入到工程中
- 编写 SHT10 相关函数,在设定的间隔时间循环显示温度和湿度的值,并通过串口发送
- 编译 SHT10,成功后下载并运行,通过串口调试助手观察温湿度值
2.8 实验结果

串口调试助手循环显示采集到的温度(Temperature)和湿度(humidity)值,数据随环境温湿度变化而实时更新。
知识点
SHT10 的两线串行接口不是标准 I²C,需要用单片机 IO 口手动仿真其时序(启动序列、测量命令、读数据、CRC 校验)。湿度原始值需通过公式 RH_linear = c1 + c2·SORH + c3·SORH² 换算为相对湿度,温度原始值通过 T = d1 + d2·SOt 换算为摄氏度。
内容来源:《WSN-V 物联网综合教学实验指导书》第 7 章·7.5 温湿度传感器采集实验,结合课程教学经验整理。