买了tinkerboardS一直吃灰没用,一直丢在角落,最近想拿来折腾,买了一些乱七八糟的传感器,拿来折腾,最后发现很多教程都基于树莓派,库也是只能用于树莓派和BeagleBone Black。于是搜索了许久后,发现了一个基于GPIO库读取DHT11传感器数据的,通过搜索,DHT11和DHT22基本上一样,除了最后数据处理方式。
下载:
git clone https://github.com/szazo/DHT11_Python
修改dht11/__init.py__
,没处理零下数据,没有相对环境测试,就没搞了。
#74、75行
temperature = the_bytes[2] + float(the_bytes[3]) / 10
humidity = the_bytes[0] + float(the_bytes[1]) / 10
#修改为:
temperature = (the_bytes[2]*256 + the_bytes[3]) / 10
humidity = (the_bytes[0]*256 + the_bytes[1]) / 10
读取数据,有时候会数据会校验失败等,多读几次就好了。
import RPi.GPIO as GPIO
import dht11
import time
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# read data using pin 4
instance = dht11.DHT11(pin = 4)
result = instance.read()
while True:
if result.is_valid():
print("T: %-3.1f C,H:%-3.1f %%" % (result.temperature,result.humidity))
else:
print("Error: %d" % result.error_code)
time.sleep(2)
本文作者:风雪,转载时请注明本文出处:https://www.fxnetw.com/84.html
共
0
条评论