SI7021_Temperature_and_humidity_sensor_SKU_TOY0054 - jimaobian/DFRobotWiki GitHub Wiki

right

Introduction

The module integrates Si7021 Humidity and Temperature sensor. The sensor is a monolithic CMOS IC integrating humidity and temperature sensor elements, an analog-to-digital converter, signal processing, calibration data, and an I2C Interface. It is low drift and hysteresis, and excellent long term stability.

Applications

  • HVAC/R
  • Thermostats/humidistats
  • Indoor weather stations
  • Automotive climate control and defogging

Specifications

  • Operating Voltage: 1.9 - 3.6V (recommend 3.3V)
  • Standby Current: 60nA
  • Temperature Range: -40 - 85℃ (recommend -10 - 60℃)
  • Temperature Accuracy: ±0.4℃ (-10 - 85℃)
  • Humidity Range: 0-100%RH (recommend 20% - 80%RH)
  • Humidity Accuracy: ±3%RH (0-80%RH)
  • Temperature Conversion Time: 7ms
  • Humidity Conversion Time: 17ms (RH measurement will automatically initiate a temperature measurement)
  • Interface: I2C, Gadgeteer and soldering pad with 2.5mm spacing
  • Size: 32X32mm
  • Mounting hole: inner diameter is 3.2mm, spacing is 25mm

PINOUT

300px

Soldering pad with 2.5mm spacing:

  • SDA : I2C data line
  • SCL : I2C clock line
  • GND : Power negative
  • 3.3V: Power positive

Gadgeteer Socket:"I" x2

Connection Diagram

500px

Sample Code

#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()
{
  /**Send command of initiating temperature measurement**/
  Wire.beginTransmission(ADDR);
  Wire.write(0xE3);
  Wire.endTransmission();

  Serial.print("Temp");
  Serial.print("\t");
  Serial.println("RH");

  /**Read data of temperature**/
  digitalWrite(13,HIGH);
  Wire.requestFrom(ADDR,2);

  if(Wire.available()<=2);
  {
    X0 = Wire.read();
    X1 = Wire.read();
    X0 = X0<<8;
    X_out = X0+X1;
  }

  /**Calculate and display temperature**/
  X=(175.72*X_out)/65536;
  X=X-46.85;
  Serial.print(X);
  Serial.print("C");
  Serial.print("\t");

  /**Send command of initiating relative humidity measurement**/
  Wire.beginTransmission(ADDR);
  Wire.write(0xE5);
  Wire.endTransmission();

  /**Read data of relative humidity**/
  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;
  }

  /**Calculate and display relative humidity**/
  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);
}
  • Open "Serial Monitor" of Arduino, the temperature and humidity will be displayed:

300px

image:nextredirectltr.pngGo shopping si7021 temperature and humidity sensor(sku: toy0054)

category: Product Manual category: SEN Series category: Sensors

⚠️ **GitHub.com Fallback** ⚠️