The AM2315 I2C capacitive humidity sensing digital temperature and humidity sensor is contains a temperature and humidity combined sensor calibrated digital signal device. It uses special temperature and humidity acquisition technology, to ensure that the sensor has high reliability and excellent long-term stability. The sensor includes a capacitive sensor wet components and an integrated high-precision temperature measurement devices, and connected with a high-performance microprocessor.
SwitchDoc Labs uses these fine sensors on many of our projects, including WeatherPi, Project Curacao and SunRover (a solar powered robot). They are working well in these designs, so we decided to search out the manufacturer and carry this part for our customers. A small microprocessor inside the AM2315 provides the readings and adjustments to the values from the sensors and supports an I2C interface for reading the finished & calibrated data. The sensor is in a rugged case and comes with a mounting bracket. While it is not waterproof, it is weather resistant. This sensor does far better for sensing temperature and humidity where there might be wind and rain. When looking for the AM2315 using i2cdetect (on the Pi) or I2CTest on the Arduino, remember that this device has a sleep mode and so you may have to look twice.
Sop with has provided an excellent tutorial for hooking up the AM2315 to a Raspberry Pi here. Note: We don't recommend hooking up the Raspberry Pi I2C bus to 5.0V pull-ups as shown in the tutorial. We recommend 3.3V as the Pi I2C lines are not 5.0V tolerant.
Connect the red wire to 5V (or 3.3V for the Raspberry Pi - note: it works better at 5.0V I2C) power, black to ground, yellow wire to your i2c SDA pin, and the white wire to the i2c SCL. You cannot change the i2c address so only one sensor per i2c bus. However, you can use the SwitchDoc Labs 4 Channel I2C Mux to support multiple devices in one project. You can also use the 4 Channel I2C Mux to convert the Raspberry Pi 3.3V I2C bus to 5.0V I2C. Two ~10Kohm pullup resistors on the I2C bus are required for use, connected from the SDA and SCL lines to the power wire. Note that many devices, including the SwitchDoc Labs 4 Channel I2C Mux already have these pullup resistors. Further note that Arduino's DO NOT HAVE 10K Pullups on their I2C bus.
If you don't see it on your i2cdetect on the Raspberry Pi or I2C scanner on the Arduino, remember the following two things:
1) Check your wiring. Note that the colors aren’t a reliable guide to what wire goes where. Make sure you read the label on the wires. I’m sure you have done this, but check it again. The colors vary from batch to batch.
2) The AM2315 Outdoor temperature sensor is at address 0x5C. The manufacturer of the device puts the sensor into a sleep mode except when it is going to be used to avoid self heating of the sensor. That makes sense, however, it means you have to go through a funny sequence to make sure the device is awake and responding. It doesn’t respond to an Arduino I2C scan nor a Raspberry Pi I2C scan, i2cdetect.
You can run the i2cdetect -y 1 twice quickly and it will often pick the sensor up on the second run.
The best thing to do to determine if it is actually there is run the test software and see if you are getting data. That is how we detect if it is present.
SwitchDocLabs also sells a plastic sunshield for this device, which will available shortly.