|
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()
|
|