-
Notifications
You must be signed in to change notification settings - Fork 29
Temperature and humidity measurement with SI7021 I2C sensor
SI7021 is an I2C temperature and (relative) humidity sensor made by Silicon Labs. This sensor has a wide operating voltage (1.9 to 3.6 V), is very low power (60 nA standby current) and provides a good precision and accuracy (±3 % RH and ±0.4 °C).
This sensor is pin and software compatible with HTU21D and works with Sparkfun's Arduino library for this sensor.
Minibat SI7021 provides a footprint for the SI7021 sensor and a decoupling capacitor. panStamp sells this board with the sensor assembled so that you only have to assemble the panStamp module onto the carrier board and then program the module as explained later.
SI7021 and HTU21D can be powered from a wide voltage range so sensor and panStamp can share the same source of power. Standby current is very low so we don't need to unpower the sensor during the sleeping periods.
A panStamp + SI7021 circuit can be typically powered from a 3V battery. Current consumption is under 2 uAmps during sleep mode and around 30 mAmps when measuring and transmitting.
We provide a SWAP-compatible sample application called htusensor. This sketch is quite simple. It relies on Sparkfun's Arduino library and our SWAP stack. If you don't want to dive into the code, simply grab the application into your panStamp and configure your desired transmission interval from SWAPdmt.
SWAP status packets transmitted by this application are very simple. Data payload simply consists of four bytes. temphum.xml is the device definition file used for this application. In order to transform this 4-byte number into readable temperatures and humidities you need to apply the formulas defined in the units section of this XML file:
First two bytes are related to the temperature:
- Celsius degrees: Temperature (ºC) = data x 0.1 - 50
- Fahrenheit degrees: Temperature (ºF) = data x 0.18 - 58
- Kelvin degrees: Temperature (ºK) = data x 0.1 + 223.15
Last two bytes show the humidity information:
- Relative humidity (%) = data x 0.1