DHT11_Python icon indicating copy to clipboard operation
DHT11_Python copied to clipboard

This program can't return correct temperature data when sub-zero temperature.

Open NaohikoYamaguchi opened this issue 2 years ago • 2 comments

Hi,

I am Naohiko Yamaguchi from Japan.

Perhaps, this program can't return correct temperature data when sub-zero temperature.

Current code for calculate Temperature/Humidity is below.

 temperature = the_bytes[2] + float(the_bytes[3]) / 10
 humidity = the_bytes[0] + float(the_bytes[1]) / 10

DHT11 will return 1 in MSB of the_bytes[3] when sub-zero temperature. However, current code is not support this specific.

Otherwise, am I wrong?

NaohikoYamaguchi avatar Nov 04 '22 12:11 NaohikoYamaguchi

Hello, your thought is correct. For measuring sub-zero temperatures, these lines of code should be added.

    # DHT11 will return 1 in MSB of the_bytes[3] when sub-zero temperature.
    if not bits[24]:
        temperature = the_bytes[2] + float(the_bytes[3]) / 10
    
    else:
        temperature = 0.0 - the_bytes[2] - float(the_bytes[3] - 128) / 10

DavidBazout avatar Dec 01 '22 14:12 DavidBazout

Hello, DavidBazout! Thank you for your response! I understood.

NaohikoYamaguchi avatar Dec 06 '22 02:12 NaohikoYamaguchi