View: 190|Reply: 1

Temperature and Humidity Sensor - DHT11

[Copy link]

1

Threads

2

Posts

15

Credits

Newbie

Rank: 1

Credits
15
Post time 2020-2-8 00:07:49 | Show all posts |Read mode
Hi! We are hoping you can help us troubleshoot the DHT11. We have built the curcuit. We have troubleshot the Python Code, added parenthesis around the print statements, and run the code in Thonny. We get the following output:

Python 3.7.3 (/usr/bin/python3)
>>> %cd '/home/pi/Adeept Experiments/Adeept_Ultimate_Starter_Kit_for_RPi_V1.1/code/Adeept_Ultimate_Starter_Kit_Python_Code_for_RPi-master'
>>> %Run 15_dht11.py
sensor is working.
[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
wrong
temperature :  255 , humidity :  127  check :  255  tmp :  876


The code is not commented so I don't understand the different parts and can make no sense out of this output. I tried upading the *.py and a *.txt but it's not allowed. So, here's the code in its entirety:

#!/usr/bin/python

import RPi.GPIO as GPIO
import time

channel = 18
data = []
j = 0

GPIO.setmode(GPIO.BCM)

time.sleep(1)

GPIO.setup(channel, GPIO.OUT)

GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH)

GPIO.setup(channel, GPIO.IN)

while GPIO.input(channel) == GPIO.LOW:
    continue

while GPIO.input(channel) == GPIO.HIGH:
    continue

while j < 40:
    k = 0
    while GPIO.input(channel) == GPIO.LOW:
        continue

    while GPIO.input(channel) == GPIO.HIGH:
        k += 1
        if k > 100:
            break

    if k < 8:
        data.append(0)
    else:
        data.append(1)

    j += 1

print ("sensor is working.")
print (data)

humidity_bit = data[0:8]
humidity_point_bit = data[8:16]
temperature_bit = data[16:24]
temperature_point_bit = data[24:32]
check_bit = data[32:40]

humidity = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 0

for i in range(8):
    humidity += humidity_bit * 2 ** (7 - i)
    humidity_point += humidity_point_bit * 2 ** (7 - i)
    temperature += temperature_bit * 2 ** (7 - i)
    temperature_point += temperature_point_bit * 2 ** (7 - i)
    check += check_bit * 2 ** (7 - i)

tmp = humidity + humidity_point + temperature + temperature_point

if check == tmp:
    print ("temperature : ", temperature, ", humidity : " , humidity)
else:
    print ("wrong")
    print ("temperature : ", temperature, ", humidity : " , humidity, " check : ", check, " tmp : ", tmp)

GPIO.cleanup()



Reply

Use magic Report

1

Threads

2

Posts

15

Credits

Newbie

Rank: 1

Credits
15
 Author| Post time 2020-2-12 04:12:07 From the mobile phone | Show all posts
Rebuilt the circuit and ran from the terminal emulator peer the manual. Same results.
Reply

Use magic Report

You have to log in before you can reply Login | Sign Up

Points Rules