Interfacing the SHT10 (humidity/temperature) sensor to a WiSense node

The “SHT10” is a humidity and temperature sensor from Sensirion.

  • Voltage supply range : 2.4 V to 5.5 V (Typical 3.3 V)
  • Interface: 2 wire (CLK and DATA)
  • Humidity range: 0 to 100 %
  • Temperature range: -40 deg C to 123.8 deg C
  • Humidity accuracy:  +/- 4.5 %
  • Temperature accuracy:  +/- 0.5 deg C
  • Sleep mode power consumption @ 3.3V: Max 5 micro-watts (Typical 2 micro-watts)
  • Active mode power consumption @ 3.3V: Typical 3 milli-watts

I wasted an hour trying to communicate with it using the WiSense software I2C driver. Then I decided to take a harder look at the data sheet and found (to my relief) that this sensor is not compatible with the I2C protocol but it can be connected to an I2C bus without disrupting connectivity to any other I2C devices on the same bus. Looks like Sensirion wanted to avoid paying royalty (for the I2C protocol) to Phillips/NXP. I just wish they had this information in bold right at the beginning of the data sheet. This sensor is not cheap. I had purchased a soil temperature/moisture sensor from adafruit.com (see the pic below). This product uses the SHT10 sensor and it costed me around $50. Naturally, I got really nervous when the sensor did not respond to I2C commands.

1298-00

.

.

.

.

.

.

.

.

.

.

sht10_exp

.

.

.

.

.

.

.

.

.

.

sht10_wisense_node

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Luckily, I did not have to write too much code to support this sensor’s 2 wire (non I2C) communication protocol.  I won’t go into the details on the differences here. The driver code for this sensor (in sht10.c) is self explanatory.

The SHT10 has low active and standby power consumption which makes it suitable for energy constrained sensor networks.

The sensor offers two measurement resolutions. In the high resolution measurement mode, the sensor outputs a 14 bit temperature value and a 12 bit humidity value. This mode is the default mode. In the low resolution measurement mode, the sensor outputs a 12 bit temperature value and a 8 bit humidity value.

The time taken by the sensor to perform a single conversion depends on the resolution of the parameter being measured (see below).

  • 8 bit value – 20 milli-secs
  • 12 bit value – 80 milli-secs
  • 14 bit value – 320 milli-secs

This means temperature conversion will take 320 milli-secs in high resolution (14 bits) mode and 80 milli-secs in low resolution (12 bits) mode. Humidity conversion will take 80 milli-secs in high resolution (12 bits) mode and 20 milli-secs in low resolution (8 bits) mode. On a reduced function device (RFD) (wth limited energy source), the MSP430 should be put to sleep while the sensor is performing the specified conversion.

The driver files for this sensor are:

  • pltfrm/src/sht10.c
  • pltfrm/inc.sht1o.h

References:

Advertisements

Posted on January 22, 2015, in Uncategorized. Bookmark the permalink. 2 Comments.

  1. I had the exact same problem, no I2C… and found your post 🙂
    Clumsy question: where can I find the code you’re talking about, pltfrm/src/sht10.c and
    pltfrm/inc.sht1o.h ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: