Example Code for Raspberry Pi Pico-I2C Temperature and Humidity Sensing
This sample shows the I2C function by using the SHT40 temperature and humidity sensor to measure the current ambient temperature and humidity.
Hardware Preparation
- SHT40 Humidity and Temperature Sensor × 1 (Download SHT40 Library)
- Terminal Block Board For Pico × 1
- Pico Mainboard × 1
Software Preparation
Wiring Diagram

The Terminal Block Board: 5V (connect to) SHT40: VCC
The Terminal Block Board: GND (connect to) SHT40: GND
The Terminal Block Board: GP4 (connect to) SHT40: SCL
The Terminal Block Board: GP5 (connect to) SHT40: SDA
Sample Code
#include"DFRobot_SHT40.h"
DFRobot_SHT40 SHT40(SHT40_AD1B_IIC_ADDR);
uint32_t id = 0;
float temperature, humidity;
void setup() {
Serial.begin(9600);
SHT40.begin();
while((id = SHT40.getDeviceID()) == 0){
Serial.println("ID retrieval error, please check whether the device is connected correctly!!!");
delay(1000);
}
delay(1000);
Serial.print("id :0x"); Serial.println(id, HEX);
}
void loop() {
temperature = SHT40.getTemperature(/*mode = */PRECISION_HIGH);
humidity = SHT40.getHumidity(/*mode = */PRECISION_HIGH);
if(temperature == MODE_ERR){
Serial.println("Incorrect mode configuration to get temperature");
} else{
Serial.print("Temperature :"); Serial.print(temperature); Serial.println(" C");
}
if(humidity == MODE_ERR){
Serial.println("The mode for getting humidity was misconfigured");
} else{
Serial.print("Humidity :"); Serial.print(humidity); Serial.println(" %RH");
}
if(humidity > 80){
SHT40.enHeater(/*mode = */POWER_CONSUMPTION_H_HEATER_1S);
}
delay(1000);
Serial.println("----------------------------------------");
}
Result

Program description: print the temperature and humidity information read by the sensor on the serial monitor.
Was this article helpful?
