How use HTU21DF Humidity and Temperature Sensor with Arduino (Custom code)
How use HTU21DF Humidity and Temperature Sensor with Arduino
This code is to measure temperature and himidity usiung HTUD21DF sensor. Full hardware, two types of code and demonstation is shown. This code displays the temperature as Celsius, Fahrenheit or Kelvin or humidity on the serial monitor shown in the video. For other related codes please scrol lower in this screen.
- 00:00 Introduction
- 01:45 Hardware explaine
- 03:45 Wiring explained 04:33 Code Explained (basic code)
- 09:04 Demonstration of basic code
- 10:04 Custom Code explained
- 13:04 Demonstration of custom code
Related HTU21DF Videos
-Basic code using HTU21DF Humidity and Temperature Sensor with Arduino-Using 2 more HTU21DF Humidity and Temperature Sensor with Arduino
-LCD1602 or LCD2004 with HTU21DF Humidity and Temperature Sensor with Arduino
-Display Temperature from HTU21D as bargraph on LCD with Arduino
Resources for this sketch
- HTU21DF Datasheet (PDF)
- Adafruit HTU21DF Library (getHub)
- Adafruit HTU21DF Library (Robojax.com)
- Difference between HTU21DF and HTU21D
/*
* Written/Updated by Ahmad Shamshiri on July 13, 2019
* in Ajax, Ontario, Canada
Watch Video instruction for this sketch: https://youtu.be/Q5y18rgTAhA
**************************************************
*
This is an example for the HTU21D-F Humidity & Temp Sensor
Designed specifically to work with the HTU21D-F sensor from Adafruit
----> https://www.adafruit.com/products/1899
These displays use I2C to communicate, 2 pins are required to
interface
***************************************************
*/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)
Adafruit_HTU21DF htu = Adafruit_HTU21DF();
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com");
Serial.println("HTU21D-F test");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
// Robojax HTU21DF Code
Serial.print(getHTU('C'));
printDegree();
Serial.println("C");
Serial.print(getHTU('F'));
printDegree();
Serial.println("F");
Serial.print(getHTU('K'));
Serial.println("K");
Serial.println(" ");
Serial.print("Humidity:");
Serial.print(getHTU('H'));
Serial.println("%");
if(getHTU('C') <81)
{
//digitalWrite(5, LOW);
}
delay(1000);
}
/*
* @brief returns temperature or relative humidity
* @param "type" is character
* C = Celsius
* K = Keliven
* F = Fahrenheit
* H = Humidity
* @return returns one of the values above
* Usage: to get Fahrenheit type: getHTU('F')
* to print it on serial monitor Serial.println(getHTU('F'));
* Written by Ahmad Shamshiri on July 13, 2019
* in Ajax, Ontario, Canada
* www.Robojax.com
*/
float getHTU(char type)
{
float value;
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
if(type =='F')
{
value = temp *9/5 + 32;//convert to Fahrenheit
}else if(type =='K')
{
value = temp + 273.15;//convert to Kelvin
}else if(type =='H')
{
value = rel_hum;//return relative humidity
}else{
value = temp;// return Celsius
}
return value;
}//
/*
* @brief prints degree symbol on serial monitor
* @param none
* @return returns nothing
* Written by Ahmad Shamshiri on JUly 13, 2019
* for Robojax Tutorial Robojax.com
*/
void printDegree()
{
Serial.print("\xC2");
Serial.print("\xB0");
}