-
DHT11作为一个廉价配件,同时包含了温度、湿度传感器,而且,编码使用也非常简单。 本文介绍如果在树莓派中使用 DHT11,代码是Python。如果有任何疑问,欢迎在下面留言。
- VCC接5V或者3.3V
- DATA接GPIO(我接的是BCM的16号针脚,物理针脚是36)
- GND接GND
[codesyntax lang="python"]
-
-
- import RPi.GPIO as GPIO
- import time
-
- channel = 16
- 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[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 : ", temperature, ", humidity : " , humidity
- else:
- print "wrong"
- print "temperature : ", temperature, ", humidity : " , humidity, " check : ", check, " tmp : ", tmp
-
- GPIO.cleanup()
执行:sudo chmod 777 程序名.py
python 程序名.py
树莓派连接DHT11温湿度传感器(python)
原文:http://www.cnblogs.com/Pond-ZZC/p/6680435.html