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

# 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
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值