Arduino温度湿度传感器-Si7021 温湿度传感器
外观
概述
- 该模块集成了高品质Si7021温湿度传感器,应用了专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
- 其体积小巧、精度高,特别是拥有毫秒级测试转换时间(DHT系列需要约2s的转换时间),启动测量与读取数据间不需等待,方便了应用。
- 提供了可选焊接的2.54mm焊盘以及Gadgeteer标准接口,在Arduino、Gadgeteer平台均可用。
技术规格
- 工作电压: 1.9-3.6V (推荐3.3V)
- 待机电流:60nA
- 温度范围:-40 - 85℃ (推荐 -10 - 60℃)
- 温度精度:±0.4℃ (-10 - 85℃)
- 湿度范围:0-100%RH (推荐20% - 80%RH)
- 湿度精度:±3%RH (0-80%RH)
- 温度转换时间:7ms
- 湿度转换时间:17ms (进行湿度转换时将自动进行温度转换)
- 接口类型:I2C,Gadgeteer接口和2.54mm间距焊盘
- 模块尺寸:32X32mm
- 安装孔:直径3.2mm,间距25mm
引脚说明
2.54mm间距焊盘接口(可自行焊接):
- SDA I2C数据端口
- SCL I2C时钟端口
- GND 电源地
- 3.3V 电源正
Gadgeteer插座:两组I接口
应用范围
- 环境调节器
- 室内气象站
- 汽车除雾控制
使用教程
下面我们以一个简单的实验为例程,来告诉大家如何简单方便的使用我们的这一款温湿度传感器的芯片。
目标:检测室内温湿度并通过串口显示
硬件清单
- DF_UNO 1
- 本模块 1
软件清单
连线图
操作步骤
1.打开Arduino IDE
2.下载下面的程序到UNO
#include <Wire.h>
const int ADDR =0x40;
int X0,X1,Y0,Y1,Y2,Y3;
double X,Y,X_out,Y_out1,Y_out2;
void setup()
{
Serial.begin(9600);
Wire.begin();
delay(100);
Wire.beginTransmission(ADDR);
Wire.endTransmission();
pinMode(13,OUTPUT);
}
void loop()
{
/**发送温度测量命令**/
Wire.beginTransmission(ADDR);
Wire.write(0xE3); //发送读温度命令
Wire.endTransmission();
Serial.print("Temp");Serial.print("\t");Serial.println("RH");
/**读取温度数据**/
digitalWrite(13,HIGH); //LED亮开始读数据
Wire.requestFrom(ADDR,2); //回传数据
if(Wire.available()<=2);
{
X0 = Wire.read();
X1 = Wire.read();
X0 = X0<<8;
X_out = X0+X1;
}
/**计算并显示温度**/
X=(175.72*X_out)/65536;
X=X-46.85;
Serial.print(X);Serial.print("C");Serial.print("\t");
/**发送湿度测量命令**/
Wire.beginTransmission(ADDR);
Wire.write(0xE5);
Wire.endTransmission();
/**读取湿度数据**/
Wire.requestFrom(ADDR,2);
if(Wire.available()<=2);
{
Y0 = Wire.read();Y2=Y0/100; Y0=Y0%100;
Y1 = Wire.read();
Y_out1 = Y2*25600;
Y_out2 = Y0*256+Y1;
}
/**计算并显示湿度**/
Y_out1 = (125*Y_out1)/65536;
Y_out2 = (125*Y_out2)/65536;
Y = Y_out1+Y_out2;
Y=Y-6;
Serial.print(Y);Serial.println("%");
digitalWrite(13,LOW);
delay(300);
}
- 实现效果
打开Ardino串口,可以观察到温湿度值:
本文整理于DFRobot wiki
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号