# encoding=utf-8
# power by : FUNCO_小风
import RPi.GPIO as GPIO
import time
# 延时函数
def delay(i):
while i:
i -= 1
# 初始化dht11连接引脚
# dht11_pin - dht11连接的引脚号
def init_dht11(dht11_pin):
# 输出模式 初始状态给高电平
GPIO.setup(dht11_pin, GPIO.OUT)
GPIO.output(dht11_pin, 1)
# 用于获取
# dht11_pin - dht11连接的引脚号
# 返回二元组 [ 湿度 , 温度 ]
def get_dht11(dht11_pin):
buff=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
GPIO.output(dht11_pin,0)
time.sleep(0.02) # 拉低20ms
GPIO.output(dht11_pin,1)
GPIO.setup(dht11_pin,GPIO.IN) # 这里需要拉高20-40us,但更改模式需要50us,因此不调用延时
while not GPIO.input(dht11_pin): # 检测返回信号 检测到启示信号的高电平结束
pass
while GPIO.input(dht11_pin): # 检测到启示信号的高电平则循环
pass
i=40
while i:
start=time.time()*1000000 # 为了严格时序 循环开始便计时
i-=1
while not GPIO.input(dht11_pin):
pass
while GPIO.input(dht11_pin):
pass
buff[i]=time.time()*1000000-start# 为了严格时序 每次测得数据后都不马上处理 先存储
树莓派3 B+ 读取温湿度传感器DHT11
最新推荐文章于 2024-08-16 19:26:20 发布
本文介绍如何在树莓派3B+上利用Python编程,通过1-Wire协议连接并读取DHT11温湿度传感器的数据,实现环境监控。
摘要由CSDN通过智能技术生成