树莓派3 B+ 读取温湿度传感器DHT11

本文介绍如何在树莓派3B+上利用Python编程,通过1-Wire协议连接并读取DHT11温湿度传感器的数据,实现环境监控。
摘要由CSDN通过智能技术生成
# 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# 为了严格时序 每次测得数据后都不马上处理 先存储

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值