树莓派&Python&SHT10

本文介绍了SHT10传感器的性能,包括湿度和温度的分辨率、精度以及供电电压。详细阐述了SHT10的接口、通讯过程和数据转换。在树莓派上使用Python连接SHT10,读取温湿度数据,并提供了简单的Python脚本实现。
摘要由CSDN通过智能技术生成

树莓派&Python&SHT10


SHT10的性能.

eg: xx->xx->xx 表示 min值->typ值->max值.

  • 湿度分辨率: 0.4->0.05->0.05(%RH) 或者用二进制位 8->12->12(bit)
  • 湿度精度: ±4.5 %RH (typ 条件下.)
  • 温度分辨率: 0.04->0.01->0.01(℃) 或者用二进制位 12->14->14(bit)
  • 湿度精度: ±0.5 ℃ (typ 条件下.)
  • 供电电压: 2.4->3.3->5.5(V)

传感器默认测量分辨率为温度14位, 湿度12位, 可以通过给状态寄存器发送命令将其降低为温度12位, 湿度8位.

以下分别为相对湿度和温度数据变化图.


SHT10接口.

接口图:

  • 电源引脚: sensor供电电压范围为2.4-5.5v, 建议电压为3.3.在VDD与GND之间须加一个100nF的电容, 用以去耦滤波.
  • 串行时钟输入(SCK): SCK用于处理器与sensor之间的通讯同步. 由于接口包含完全静态逻辑, 因而不存在最小SCK频率.
  • 串行数据(DATA): 三态结构, 用于读取sensor数据.为保证通讯安全稳定, DATA应处于高电平, SCK处于低电平.

SHT10通讯.

通讯过程:

  1. 启动sensor即给其通电, 上电速率不能低于1V/ms. 通电后sensor需要11ms进入休眠状态, 在此之前不允许给sensor发送任何命令.

  2. 发送”启动传输”时序, 来完成数据传输的初始化.它包括: 当SCK为高电平时DATA翻转为低电平, 紧接着SCK变为低电平, 随后是在SCK时钟高电平是DATA翻转为高电平.(可看后2图).

  3. 发送”测量命令”, 来完成测量湿度/温度. 命名包括: 3个地址位 + 5个命令位.(eg: 000 00011 温度), sensor会以下面的方式来表示已经正确地接收到了命令: 在第8个SCK时钟的下降沿之后, 将DATA下拉为低电平即ACK位.在第9个SCK时钟的下降沿之后, 释放DATA即恢复高电平.(具体命令可看后3图.)

  4. 等待sensor测量, 发送一组测量命令后, 控制器需要等待sensor测量完成.这个过程大概为20/80/320ms, 分别对应8/12/14bit测量. sensor通过下拉DATA至低电平并进入空闲模式, 表示测量的结束. 控制器在再次触发SCK时钟前, 必须等待这个结束信号, 来读取数据.

  5. 控制器接收sensor传输来的2个字节的测量数据和1个字节的CRC奇偶校验(可以选择是否读取). 所有的数据从MSB开始, 右值有效.eg: 对于12位的数据, 从左到右第5为开始有效; 对于8位数据, 高8位为无意义数据.

  6. 数据接收后, sensor自动转入休眠模式.

通讯复位时序:
如果与sensor通讯中断, 可通过下列信号时序复位: 当DATA保持高电平时, 触发SCK时钟9次或者更多, 接着发送一个”启动传输”时序. 这里只是复位了串口, 状态寄存器中的内容仍然保留.

图二:

图三:

eg: 这里是测量湿度数据的通讯过程图. 拿去慢慢琢磨

SHT10数据转换.

相对湿度, 温度值, 湿度信号的温度补偿:

RH_true 为真正的湿度测量值.

T_C 为真正的温度测量值.

  • RH_linear = c1 + c2 * SO_RH + c3 * SO_RH * SO_RH
  • T_C = d1 + d2 * SO_T
  • RH_true = (T_C - 25) * (t1 + t2 * SO_RH) + RH_linear

下列图为上面参数的数值, E为10, eg: -2.80000E-6 相当于 -2.8 * 10^(-6).



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值