SHT15湿度和温度传感器使用指南

电子说

1.4w人已加入

描述

SHT15湿度和温度传感器使用指南

一、SHT15概述

SHT15是一款易于使用、高精度的数字温度和湿度传感器。它仅需两条线用于两线通信,就能提供相对湿度和温度读数,帮助我们感知周围环境。

文件下载:SEN-13683.pdf

主要特性

  1. 工作电压:最低2.4V,最高5.5V。
  2. 校准传感器:配备两个工厂校准的相对湿度和温度传感器。
  3. 数字两线接口:类似于I²C,但并非I²C。
  4. 测量范围:相对湿度为0 - 100%。
  5. 绝对湿度精度:在10 - 90%相对湿度范围内,精度为±2%RH。
  6. 湿度重复性:±0.1%RH。
  7. 温度精度:在25°C时,精度为±0.3°C。
  8. 露点计算:可进行精确的露点计算。
  9. 响应时间:响应速度快。
  10. 功耗:典型功耗为30µW。

该传感器非常适合环境监测和数据记录,可应用于从气象站到雪茄保湿箱控制系统等多种场景。

二、连接方法

焊接与连接

建议在 breakout 板上焊接四个公头,然后将其连接到 Arduino 或兼容 Arduino 的开发板,如 RedBoard。

引脚连接

使用该传感器只需连接四个引脚,分别是 VCC、GND 和两条数据线。

  • VCC 连接到3.3V或5V。
  • GND 连接到地。
  • Data 连接到任意 I/O 引脚。
  • SCK 连接到任意 I/O 引脚。

既可以直接将传感器连接到 Arduino 的母头上,也可以在面包板上进行布线。

三、两线接口

SHT15 的两线接口类似于 I²C,但并非 I²C。可以使用 SDA 和 SCL 线与传感器通信,只要它们连接到 Arduino 或兼容板的 A4 和 A5 引脚,也可以使用其他 I/O 引脚作为 Data 和 SCK 线。

需要注意的是,数据手册指出:“传感器在不干扰连接到总线的其他设备的情况下无法寻址,控制器必须在协议之间切换”。如果将其添加到包含其他传感器的 I²C 总线中,可能会出现总线争用问题。若遇到此问题,可使用另外两个 I/O 引脚与 SHT15 通信。

四、多传感器使用

由于 SHT15 的地址是硬编码的,不可寻址,因此在同一时间内,任何两个引脚不能连接多个 SHT15。不过,两线协议允许多个 I²C 设备与 SHT15 共享同一总线。

若要使用多个 SHT15,每个传感器的 Data 线需要使用专用引脚,而 Clock(SCK)线可以在多个传感器之间共享。例如,一个传感器的 Data 线连接到引脚 8,另一个连接到引脚 7,而两者都共享引脚 9 作为 SCK 线。在代码中声明如下:

//Create two instances of the SHT1X sensor
SHT1x sht15(8, 9); //Data, SCK
SHT1x sht15_2(7, 9); //Data, SCK

五、上拉电阻

数据手册建议在 Data 线上添加一个10KΩ的上拉电阻。如果需要让该传感器和另一个带有上拉电阻的 I²C 传感器共享 I²C 线,可以切断标有 PU 的焊盘之间的走线。若之后需要再次使用上拉电阻,只需在两个焊盘之间添加焊锡即可。

六、代码示例

为了快速开始使用,这里提供一个使用 SHT1x 库的 Codebender 示例:

#include < SHT1x.h >
//variables for storing values
float tempC = 0;
float tempF = 0;
float humidity = 0;
//Create an instance of the SHT1X sensor
SHT1x sht15(A4, A5); //Data, SCK
//delacre output pins for powering the sensor
int gnd = A2;
int power = A3;

void setup() {
  Serial.begin(9600); // Open serial connection to report values to host
  pinMode(power, OUTPUT);
  pinMode(gnd, OUTPUT);
  digitalWrite(power, HIGH);
  digitalWrite(gnd, LOW);
}

void loop() {
  readSensor();
  printOut();
  delay(1000);
}

void readSensor() {
  // Read values from the sensor
  tempC = sht15.readTemperatureC();
  tempF = sht15.readTemperatureF();
  humidity = sht15.readHumidity();
}

void printOut() {
  Serial.print(" Temp = ");
  Serial.print(tempF);
  Serial.print("F, ");
  Serial.print(tempC);
  Serial.println("C");
  Serial.print(" Humidity = ");
  Serial.print(humidity);
  Serial.println("%");
}

上传代码后,通过串口终端连接即可查看输出结果。

七、资源与拓展

现在你应该对如何在项目中添加湿度和温度传感功能有了清晰的了解。如果你需要一些灵感,可以参考以下教程:

  1. 制作一个自动管理温度和湿度的生态箱。
  2. 构建一个保持恒定湿度的雪茄保湿箱控制盒。

相关资源

  1. SHT15 数据手册
  2. HTU21D 开发板原理图
  3. HTU21D 开发板 Eagle 文件
  4. 包含最新文件和代码的 Github 仓库

大家在使用 SHT15 传感器的过程中,有没有遇到过什么特别的问题呢?欢迎在评论区分享交流。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • Arduino

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分