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
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
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:
FAQ
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.