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

Software Preparation

Download SHT40 Library

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?

TOP