Temperature sensors measuring too high

Hello
I’ve been trying to measure temperature correctly. However I’ve noticed a theme of all sensors that I use to be about 4C° too high.
The sensor I have used are the following: Adafruit Si7021, DHT11 and a Honeywell- HIH8120.

Code I used are just libraries found of these sensors.

Si7021:

#include "Adafruit_Si7021.h"
Adafruit_Si7021 sensor = Adafruit_Si7021();

static unsigned long lastPrint = 0;
void setup() {
  //Serial.begin(115200);
  
}
void loop() {
  
  if((lastPrint + 5000) < millis()){
  float currentHumi = sensor.readHumidity();
  float currentTemp = sensor.readTemperature();
  Serial.print(currentHumi);
  Serial.print("\tTemperature: ");
  Serial.println(sensor.readTemperature(), 2);*/
  lastPrint = millis();
  }
  
}

DHT11:

#include <dht.h>

dht DHT;

#define DHT11_PIN 5

void setup()
{
  Serial.begin(115200);

}

void loop()
{
  // READ DATA
  
  int chk = DHT.read11(DHT11_PIN);
  
  // DISPLAY DATA
  Serial.print(DHT.humidity, 1);
  Serial.print(",\t");
  Serial.println(DHT.temperature, 1);

  delay(2000);
}

DHT11 gives me 27C° and Si7021 26.5C°

I have measured the voltage the sensors are getting and it seems to be exact 3.3v. The fact that I set up the honeywell quickly and it giving me the same measurement I feel like Im missing something obvious here.
My room is warm but not 26-27C° hot. Thermometer gives me 22C°.
What could cause these faulty measurements

DHT11 gives me 27C° and Si7021 26.5C°

I won't trust the DHT11 (that's a sensor to know if it's summer or winter but don't expect more). The Si7021 usually is accurate to about 0.3°C, so it probably shows the actual temperature of the sensor. If the root temperature is 22°C (BTW, how accurate is the meter you used for that measurement?) you probably have a heat source that heats the sensors casing for any reason.

Expect to measure differences between a measurement on the floor and at the ceiling.

Hi,
Welcome to the forum.

Have you tried another thermometer to check the sensors with?

Tom.... :slight_smile:

I'm using my indoor house thermometer and I have tried it in my car. Its possible there is a small difference when measuring in big rooms or a bad thermometer but I'm not sure it will consistently be 4 degrees too high when measuring with the (Arduino uno btw).
Tried putting it away from any possible heat source. Maybe I'm just overthinking it and it is actually this warm but I don't know what to trust anymore (:

Thank you

BrunoMaan:
I have measured the voltage the sensors are getting and it seems to be exact 3.3v. The fact that I set up the honeywell quickly and it giving me the same measurement I feel like Im missing something obvious here.
My room is warm but not 26-27C° hot. Thermometer gives me 22C°.
What could cause these faulty measurements

You might be causing the high readings.
Body heat radiating from you will be picked up by any sensor that isn’t in a plain metal case.
Stand well away from the desk when using them and see if that makes a difference.