There is a recommended circuit diagram in the datasheet on page 5:
You will need to wire in a pullup resistor between VCC/VDD (Red) and Data (Blue).Note that there has been a slight revision with different wire colours so we need to update our product page (I’ve added it to our todo list). Checkout Adafruit’s product page for the latest information: https://www.adafruit.com/product/1298
Checkout the pinout for a Raspberry Pi to see where to connect this to on a Pi:
And yes, that’s correct. You’ll be able to power this from the 3.3v rail on the Pi and communicate with it directly using I2C, as per this tutorial:
I’ve now successfully hooked up the temperature and CO2 sensors to my RPi via the breadboard. I connected the 4 wires from the SHT10 to the breadboard into 4 new rows. From my CO2 sensor, I jumpered 4 cables as follows:
VDD to Red (VCC)
GND to Black (Ground)
TX/SCL to Yellow (Clock)
RX/SDA to Green (Data)
I then added a 10kOhm resistor - I’m hoping this is right: one end in the row with the Red cable and the other end in the row with the Green cable. Is this correct? Is this now a pullup resistor?
Running sudo i2cdetect -y 1 shows me the 2 addresses of my other 2 sensors, but not this SHT10.
I have just given that a go now @Mitchell, and no luck. The SHT10 is now directly connected (via the breadboard) to the RPi by itself. I can’t seem to get any value when running sudo i2cdetect -y 1. Are there other things I can do to troubleshoot this?
Hi @Oliver33, I hope these photos help. Given that all my wires from the RPi to the breadboard are all black, it will likely be impossible to tell from the photos how I’ve wired it, so here is what I’ve done:
GPIO Pin 1 to Red
GPIO Pin 9 to Black (Ground)
GPIO Pin 5 to Yellow (Clock)
GPIO Pin 3 to Green (Data)
I also have the resistor that came in the pack in both the Red and Green rows.
This shows the RPi, my breadboard with the two other sensors (not currently connected), and the SHT10 coloured wires hooked up to the RPi.
This is a wonderful pick-up @Oliver33. Thanks for this. Hoping not to sound too dumb, but what does this actually mean from the perspective of getting it working? I have been through the I2C tutorials, so I understand what it is, but how do I actually connect then ‘communicate’ with this sensor, given I have 2 others that are working using I2C?
Thanks again @Oliver33. I don’t want to use them ‘exactly simultaneously’. The intent really was just to read from each sensor say every hour or so. The readings don’t need to be simultaneous, but as long as they’re close in time. So the idea was to simply call each sensor in turn around every hour, so is option 1 still okay or is there a better solution?
Now just whilst I think of it, some of the libraries for the sensors seem to have methods for turning the sensor on / off (i.e., putting it in some sort of rest mode I guess). Is this necessary, or do you simply just keep them ‘on’?
It’ll be much simpler and easier to set up in practice.
As for sleeping, it depends on the sensor and application. I can see in the sensor datasheet they recommend keeping the sensor in sleep mode for at least 90% of the time to limit self-heating to below 0.1°C - more important for relative humidity readings than temperature readings actually.