< >
Home » Arduino温湿度传感器 » Arduino温度湿度传感器-Si7021 温湿度传感器

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

引脚说明

pin

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

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none