Fermion: SHT-C3数字温湿度传感器

简介

SHTC3是业内知名的Sensirion公司推出的新一代数字温湿度传感器,脱胎于久经市场考验并取得斐然成绩的 SHTC1。传承了盛思锐湿度和温度传感器在业界有口皆碑的质量和可靠性,SHTC3 可在广阔的测量范围内提供始终如一的高精确度,为用户带来最佳的性价比。
SHTC3凭借宽电源电压范围 (3.3 – 5 V) 和顶尖精度(±2% 相对湿度,±0.2℃),它拥有更出色的灵活性。
SHTC3可以测量 0 至 100% 的相对湿度以及 -40℃ 至 125℃ 的温度,可以达到 ±2%的湿度精度和 ±0.2℃温度精度。
凭借 3.3 V 至 5 V 的宽电源电压以及低于0.15mA的低功耗模式,SHTC3 非常适用于由电池供电的移动或无线应用。

特性

  • 高精度
  • 低功耗
  • 体积小
  • 响应快

应用场景

  • 智能楼宇、家具
  • 天气站
  • 仓库存储
  • 动物、植物养殖
  • 动物孵化箱
  • 植物种子发芽箱

技术规格

  • 通信接口:I2C
  • 工作电压:3.3V-5V
  • 工作电流:0.34mA(3.3v) / 0.43mA(5v)
  • 湿度测量范围:0~100%相对湿度
  • 湿度测量精度:±2%
  • 温度测量范围:-40~+125℃(-40~+275℉)
  • 温度测量精度:±0.2℃
  • 响应时间:8S(tau63%)
  • 模块尺寸:14*17mm
  • 安装孔尺寸:M2(2mm)
  • 安装孔间距:10mm

引脚说明

序号 丝印 功能描述
1 VCC 电源正极
2 GND 电源负极
3 SCL I2C时钟线
4 SDA I2C数据线

使用教程

准备

关于如何安装库文件,点击链接

  • 主要API接口函数列表
    /**
   * @brief  初始化Wire,并且对传感器进行软件复位,然后使传感器进入睡眠状态,需要使用时,在对其进行唤醒。
   */
  void begin();

  /**
   * @brief  获取温度数据
   * @return 温度值,单位:摄氏度
   */
  float getTemperature();

  /**
   * @brief  获取湿度数据
   * @return 湿度值,单位:%RH
   */
  float getHumidity();

  /**
   * @brief  获取温湿度数据
   * @param   tem  存放温度数据的引用
   * @param   hum  存放湿度数据的引用
   */
  void  getTemHum(float &tem, float &hum);

  /**
   * @brief  设置传感器工作模式
   * @param  mode  传感器的工作模式
   * @n            SHTC3:
   * @n                    PRECISION_HIGH_CLKSTRETCH_ON                              Clock Stretching Enabled 
   * @n                    PRECISION_HIGH_CLKSTRETCH_OFF                             Clock Stretching Disabled 
   * @n                    PRECISION_LOW_CLKSTRETCH_ON                               Clock Stretching Enabled & Low Power
   * @n                    PRECISION_LOW_CLKSTRETCH_OFF                              Clock Stretching Disabled & Low Power
   * @n            SHT40:
   * @n                    PRECISION_HIGH_HEATER_OFF                                 measure T & RH with high precision (high repeatability) 
   * @n                    PRECISION_MID_HEATER_OFF                                  measure T & RH with medium precision (medium repeatability)
   * @n                    PRECISION_LOW_HEATER_OFF                                  measure T & RH with lowest precision (low repeatability) 
   * @n                    PRECISION_HIGH_HEATER_1S                                  activate highest heater power & high precis. meas. (typ. 200mW @ 3.3V) for 1s 
   * @n                    PRECISION_HIGH_HEATER_100MS                               activate highest heater power & high precis. meas. (typ. 200mW @ 3.3V) for 0.1s
   * @n                    PRECISION_MID_HEATER_1S                                   activate medium heater power  & high precis. meas. (typ. 110mW @ 3.3V) for 1s 
   * @n                    PRECISION_MID_HEATER_100MS                                activate medium heater power  & high precis. meas. (typ. 110mW @ 3.3V) for 0.1s 
   * @n                    PRECISION_LOW_HEATER_1S                                   activate lowest heater power  & high precis. meas. (typ. 20mW @ 3.3V) for 1s 
   * @n                    PRECISION_LOW_HEATER_100MS                                activate lowest heater power  & high precis. meas. (typ. 20mW @ 3.3V) for 0.1s 
   */
   void setMode(uint16_t mode) ;

  /**
   * @brief  获取传感器的唯一标识符
   * @return 获取成功返回传感器的唯一标识符,失败返回0
   */
   uint32_t getDeviceID();

  /**
   * @brief  software reset
   */
   void softwareReset() ;

  /**
   * @brief  Obtain raw data of temperature and humidity
   * @param  temp Pointer to the address of the original value of the temperature
   * @param  hun   Pointer to the address of the original value of the humidity
   * @return Is the data obtained correct? return true  The data is correct ; return false  The data  is incorrect
   */
   bool getTandRHRawData(uint16_t *temp, uint16_t *hum);
   
  /**
   * @brief  当传感器处于睡眠模式时,在进行任何进一步的通信之前,需要唤醒
   */
  void wakeup();
  
  /**
   * @brief  设置传感器为睡眠模式,设置后,在未唤醒前无法进行数据采集
   */
  void sleep();

接线图

样例代码 - 读取数据

烧录程序,获取当前的温度与湿度数据

/*!
 * @file temperatureAndHumidity.ino
 * @brief Measurement of temperature and humidity
 * @n 本传感器可测量温湿度数据,温度的测量范围在-40~125 ℃ ,湿度的测量范围在 0~100 %RH。
 * @n 本传感器可通过四种模式测量数据,分别是 开启时钟延展、不开启时钟延展、低功耗模式加时钟延展、低功耗模式不加时钟延展。
 * @copyright  Copyright (c) 2010 DFRobot Co.Ltd (https://www.dfrobot.com)
 * @licence     The MIT License (MIT)
 * @author [yangfeng]<feng.yang@dfrobot.com>
 * @version  V1.0
 * @date  2021-03-19
 * @get from https://www.dfrobot.com
 * @url  https://github.com/DFRobot/DFRobot_SHTXX
 */

#include"DFRobot_SHTC3.h"

DFRobot_SHTC3 SHTC3;

uint32_t id = 0;
float temperature,  humidity;

void setup() {
  Serial.begin(9600);
  SHTC3.begin();
  SHTC3.wakeup();/*SHTC3传感器默认配置为睡眠状态,使用前请对它进行唤醒操作。 使SHTC3 进行睡眠请调用这个方法SHTC3.sleep();在SHTC3传感器进入睡眠状态后,将在被唤醒之前不工作*/

  while((id = SHTC3.getDeviceID()) == 0){
    Serial.println("ID retrieval error, please check whether the device is connected correctly!!!");
    delay(1000);
  }

  delay(1000);
  Serial.print("id :0x"); Serial.println(id, HEX);
  
  /**
   * 
   *    mode 用来配置传感器的工作模式,不同的传感器有不同的工作模式
   *          SHTC3:
   *                  PRECISION_HIGH_CLKSTRETCH_ON                              Clock Stretching Enabled 
   *                  PRECISION_HIGH_CLKSTRETCH_OFF                             Clock Stretching Disabled 
   *                  PRECISION_LOW_CLKSTRETCH_ON                               Clock Stretching Enabled & Low Power
   *                  PRECISION_LOW_CLKSTRETCH_OFF                              Clock Stretching Disabled & Low Power
   */
  SHTC3.setMode(/*mode = */PRECISION_HIGH_CLKSTRETCH_ON);
}

void loop() {
  temperature = SHTC3.getTemperature();

  humidity = SHTC3.getHumidity();

  //SHTC3.getTemHum(temperature, humidity);

  Serial.print("Temperature :"); Serial.print(temperature); Serial.println(" C");

  Serial.print("Humidity :"); Serial.print(humidity); Serial.println(" %RH");

  delay(1000);

  Serial.println("----------------------------------------");
}

结果

打开串口显示当前的温度和湿度数据

SEN0414result1

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接