ESP32 and SHT20 temperature sensor example

In this example we will connect a SHT20 temperature sensor to an ESP32.

Lets look at the SHT20 sensor

The SHT20 humidity and temperature sensor of Sensirion has become an industry standard in terms of form factor and intelligence: Embedded in a reflow solderable Dual Flat No leads (DFN) package of 3 x 3mm foot print and 1.1mm height it provides calibrated, linearized sensor signals in digital, I2C format.

The SHT2x sensors contain a capacitive type humidity sensor, a band gap temperature sensor and specialized analog and digital integrated circuit – all on a single CMOSens® chip. This yields in an unmatched sensor performance in terms of accuracy and stability as well as minimal power consumption.

Every sensor is individually calibrated and tested. Lot identification is printed on the sensor and an electronic identification code is stored on the chip – which can be read out by command. Furthermore, the resolution of SHT2 can be changed by command (8/12bit up to 12/14bit for RH/T) and a checksum helps to improve communication reliability.

 

Parts List

 

Part Part Type
SHT20 Temperature and humidity detection sensor module SHT20
ESP32 New ESP-32 esp32 Lite V1.0.0 For Rev1 wifi Module + bluetooth board 4MB FLASH
Dupont cables Free shipping Dupont line 120pcs 20cm male to male + male to female and female to female jumper wire

 

Schematics

Couldn’t find a good part for fritzing

Its an I2C device that needs 3.3v and GND, so its not that difficult to wire

 

Code

There is a library to make things easy and it is – https://github.com/DFRobot/DFRobot_SHT20


#include <Wire.h>
#include "DFRobot_SHT20.h"

DFRobot_SHT20 sht20;

void setup()
{
Serial.begin(9600);
Serial.println("SHT20 Example!");
sht20.initSHT20(); // Init SHT20 Sensor
delay(100);
sht20.checkSHT20(); // Check SHT20 Sensor
}

void loop()
{
float humd = sht20.readHumidity(); // Read Humidity
float temp = sht20.readTemperature(); // Read Temperature
Serial.print("Temperature:");
Serial.print(temp, 1);
Serial.print("C");
Serial.print(" Humidity:");
Serial.print(humd, 1);
Serial.print("%");
Serial.println();
delay(1000);
}

 

Output

Open the serial monitor and you should see something similar to this

SHT20 Example!
End of battery: no
Heater enabled: no
Disable OTP reload: yes
Temperature:24.1C Humidity:50.6%
Temperature:24.0C Humidity:50.6%
Temperature:24.0C Humidity:50.6%
Temperature:24.0C Humidity:50.6%
Temperature:25.8C Humidity:51.1%
Temperature:27.5C Humidity:55.8%
Temperature:28.2C Humidity:60.2%

 

Links

Sensirion_Humidity_Sensors_SHT20_Datasheet.pdf