(SKU:DFR0588)Gravity:SHT30模拟温湿度传感器
来自DFRobot Product Wiki
目录 |
概述
Gravity:SHT30模拟温湿度传感器采用业内知名的瑞士Sensirion公司推出的新一代SHT30温湿度传感器芯片。得益于Sensirion的CMOSens®技术,高集成度电容式测湿元件和能隙式测温元件,SHT30能够提供极高的可靠性和出色的长期稳定性,具有功耗低、反应快、抗干扰能力强等优点。传感器内部经过校准、线性化与放大,能够输出与温湿度呈线性关系的模拟电压,无需额外的驱动库,使用简单方便,兼容常见的Arduino、micro:bit、ESP32等各类3.3V/5V主控系统,轻松实现城市环境监控、智能楼宇、工业自动化、智能家居等物联网应用场景的温湿度传感。
特性
- 高精度,内部自动校准,线性模拟电压输出
- 低功耗、响应速度快、抗干扰能力强
- 兼容3.3V/5V控制器
应用场景
- 城市环境监控
- 智能楼宇、家居
- 工业自动化
技术规格
- 主芯片(传感器):Sensirion SHT30
- 供电电压(VCC):3.3V ~ 5.5V
- 通信接口:Gravity Analog (PH2.0-3P,模拟电压输出0.3-2.7V)
- 工作电流:< 0.5 mA
- 产品尺寸:30×22 mm
- 重量:3 g
温度测量性能
- 量程:-40 ~ 125 ℃
- 分辨率:0.01 ℃,14bit
- 精度:±0.2℃@10~55℃(典型值),±1.5℃@-40 ~ 125 ℃(典型值)
- 响应速度:> 2s
湿度测量性能
- 量程:0~100 %RH
- 分辨率:0.006 %,14bit
- 精度:±3 %RH@10~90 %RH(典型值),±8 %RH@0~100 %RH(典型值)
- 响应速度:> 8s
接口说明
|
|
温湿度输出特性
- 模块在额定电压范围内供电内且正常工作时,输出与温湿度呈线性关系的0.3~2.7V电压,具体对应关系如下图
Arduino使用教程
准备
- 硬件
- Arduino UNO控制板 x 1
- Gravity:SHT30模拟温湿度传感器 x 1
- Gravity 3P模拟传感器连接线(或若干杜邦线) x 1
- 软件(以下软件可二选一)
- Arduino IDE (1.0.x或1.8.x), 点击下载Arduino IDE
- Mind+图形化编程, 点击下载Mind+
连线图
样例代码(Arduino IDE)
- 将下面样例代码上传至主控板,打开串口监控器,观察测量的温度和湿度。
关于校准:
- 由于模拟读数受到参考电压的影响,较大程度影响温湿度传感器的读数精度。为了得到准确的读数,可使用高精度万用表测量主控的模拟参考电压(通常与供电电压一致),并修改下方样例代码中的“#define VREF 5.0”的参数,完成校准。
/**************************************************************************/ /* @file SHT30_TempRH_Read.ino @author Henry (DFRobot) @version V1.0 @date 2019-08-12 @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com) @licence The MIT License (MIT) @breif This example read and print the temperature and relative humidity. This demo and related libraries are for DFRobot Gravity: Analog SHT30 Temperature & Humidity Sensor Check out the links below for tutorials and connection diagrams Product(CH): http://www.dfrobot.com.cn/ Product(EN): https://www.dfrobot.com/ */ /**************************************************************************/ // VREF: Analog reference // For Arduino UNO, Leonardo and mega2560, etc. change VREF to 5 // For Arduino Zero, Due, MKR Family, ESP32, etc. 3V3 controllers, change VREF to 3.3 #define VREF 5.0 #define TEMPERATURE_PIN A1 #define HUMIDITY_PIN A0 #define ADC_RESOLUTION 1024 float Tc, Tf, RH, analogVolt; void setup() { Serial.begin(115200); Serial.println("SHT30 Starts up."); } void loop() { analogVolt = (float)analogRead(TEMPERATURE_PIN) / ADC_RESOLUTION * VREF; // Convert voltage to temperature (℃, centigrade) Tc = -66.875 + 72.917 * analogVolt; // Convert voltage to temperature (°F, fahrenheit ) Tf = -88.375 + 131.25 * analogVolt; Serial.print("Termperature:" ); Serial.print(Tc, 1); Serial.print(" C / " ); Serial.print(Tf, 1); Serial.println(" F" ); analogVolt = (float)analogRead(HUMIDITY_PIN) / ADC_RESOLUTION * VREF; // Convert voltage to relative humidity (%) RH = -12.5 + 41.667 * analogVolt; Serial.print("Humidity:" ); Serial.print(RH, 1); Serial.println(" %RH" ); Serial.println(); delay(2000); }
结果
- 模块每隔2s打印当前测量温度或湿度:
样例代码(Mind+)
- 打开Mind+图形化编程软件,切换到“上传模式”。(详细教程:Mind+基础wiki教程-上传模式编程流程)
- “扩展”中选择“主控板”中的“Arduino Uno”,“扩展”“传感器”搜索添加“SHT30温湿度传感器”(详细教程:Mind+基础wiki教程-加载扩展库流程)
- 进行编程,程序如下图:
- 单击菜单“连接设备”->“上传到设备”
- 程序上传完毕后,打开串口即可看到数据输出。(Mind+基础wiki教程-串口打印)
- 模块每隔1s打印当前测量温度或湿度
micro:bit使用教程
准备
- 硬件
- micro:bit编程入门开发板 x 1
- micro:Mate多功能I/O扩展板
- Gravity:SHT30模拟温湿度传感器 x 1
- Gravity 3P模拟传感器连接线(或若干杜邦线) x 1
- 软件:
- Mind+图形化编程, 点击下载Mind+
连线图
样例代码(Mind+)
- 打开Mind+图形化编程软件,切换到“上传模式”。(详细教程:Mind+基础wiki教程-上传模式编程流程)
- “扩展”中选择“主控板”中的“micro:bit”,由于该传感器通过模拟量输出,无需加载额外的驱动库。(详细教程:Mind+基础wiki教程-加载扩展库流程)
- 进行编程,程序如下图:
- 单击菜单“连接设备”->“上传到设备”
- 程序上传完毕后,打开串口即可看到数据输出。(Mind+基础wiki教程-串口打印)
常见问题
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。