Quick and easy to use Library for the TI HDC302x tempearture and humidity sensors (HDC3020, HDC3021, HDC3022).
The following are currently supported by the Library : HDC3020, HDC3021 and HDC3022 (feel free to extend)
2% RH ultra-low-power digital relative humidity sensor, IP67 filter
The HDC302x is an integrated capacitive based relative humidity (RH) and temperature sensor. It provides high accuracy measurements over a wide supply range (1.62 V – 5.5 V), along with ultra-low power consumption in a compact 2.5-mm × 2.5-mm package. Both the temperature and humidity sensors are 100% tested and trimmed on a production setup that is NIST traceable and verified with equipment that is calibrated to ISO/IEC 17025 standards.
Check the TI User Guide on how to use it: Download PDF
-
Download and Add the source files to your project (Download the files, use the Arduino lib manager or Git Clone):
git clone https://github.com/SndrSchnklshk/HDC302x
-
Start using the Lib, include the following:
#include "HDC302x.h"
-
Initialize the lib with the pre set I2C address:
hdc.Initialize(HDC302X_ADDRESS1)
-
Read the Temperature and Humidity using the 'HDC302xDataResult' Struct.
HDC302xDataResult result = hdc.ReadData();
Example showing C code on how to use the library.
// Very Basic Arduino Example to read every 5 seconds and serial outputs the temperature and humidity.
#include "Arduino.h" // Include the basic stuff
#include "HDC302x.h" // Include the header
HDC302x hdc = HDC302x(); // Create class
void setup()
{
Serial.begin(115200); // Init the serial device
Serial.println("Ola! Feeling chill?"); // Welcome message
if (!hdc.Initialize(HDC302X_ADDRESS1)) // Did the initialization fail?
{
Serial.println("Sorry, cannot find sensor with the selected address!");
}
else
{
Serial.println("HDC302x Sensor found!"); // Print found-it-message
hdc.setHumidityCorrection(+1.2f); // (Optionally), sets a software correction for the Relative Humidity
}
}
void loop()
{
HDC302xDataResult result = hdc.ReadData(); // Calculate the temperature
Serial.print("Temperature is "); // Begin printing output
Serial.print(result.Temperature); // Print the Temperature
Serial.print("°C, Humidity is "); // Print the degrees symbol and more
Serial.println(result.Humidity); // Print the Relative Humidity
delay(5000); // Wait 5 seconds
}
- Add more read options (besides the single read)
- Configure tempearture alerts
- Read chip Min and Max readings
- ... let me know!
TI Datasheet for more information: Download PDF
This lib is heavily based on the data Josh Wyatt (Texas Intruments Inc) has provided. If you buy me a beer, don't forget him as well ;)