树莓派传感器测试代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

80 lines
1.6 KiB

import RPi.GPIO as gpio
import time
import dhtsensor
gpio.setwarnings(False)
gpio.setmode(gpio.BOARD)
time.sleep(1)
data = []
def delay(i): # 20*i usdelay
a = 0
for j in range(i):
a + 1
j = 0
# start work
gpio.setup(12, gpio.OUT)
# gpio.output(12,gpio.HIGH)
# delay(10)
gpio.output(12, gpio.LOW)
time.sleep(0.02)
gpio.output(12, gpio.HIGH)
i = 1
i = 1
# wait to response
gpio.setup(12, gpio.IN)
while gpio.input(12) == 1:
continue
while gpio.input(12) == 0:
continue
while gpio.input(12) == 1:
continue
# get data
while j < 40:
k = 0
while gpio.input(12) == 0:
continue
while gpio.input(12) == 1:
k += 1
if k > 100: break
if k < 3:
data.append(0)
else:
data.append(1)
j += 1
print("Sensor is working")
# get temperature
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[i] * 2 ** (7 - i)
humidity_point += humidity_point_bit[i] * 2 ** (7 - i)
temperature += temperature_bit[i] * 2 ** (7 - i)
temperature_point += temperature_point_bit[i] * 2 ** (7 - i)
check += check_bit[i] * 2 ** (7 - i)
tmp = humidity + humidity_point + temperature + temperature_point
if check == tmp:
print("temperature is ", temperature, "wet is ", humidity, "%")
else:
print("something is worong the humidity,humidity_point,temperature,temperature_point,check is", humidity, humidity_point, temperature, temperature_point, check)