树莓派读取DHT11传感器的源代码
import wiringpi2 as gpio
owpin=8 #第8脚为1-wire脚
def getval(owpin):
tl=[] #存放每个数据位的时间
tb=[] #存放数据位
gpio.wiringPiSetup() #初始化wiringpi库
gpio.pinMode(owpin,1) #设置针脚为输出状态
gpio.digitalWrite(owpin,1) #输出高电平
gpio.delay(1)
gpio.digitalWrite(owpin,0) #拉低20ms开始指令
gpio.delay(25)
gpio.digitalWrite(owpin,1) #抬高20-40us
gpio.delayMicroseconds(20)
gpio.pinMode(owpin,0) #设针脚为输入状态
while(gpio.digitalRead(owpin)==1): pass #等待DHT11拉低管脚 for i in range(45): #测试每个数据周期的时间(包括40bit数据加一个发送开始标志
tc=gpio.micros() #记下当前us数(从初始化开始算起,必要时重新初始化)
'''
一个数据周期,包括一个低电平,一个高电平,从DHT11第一次拉低信号线开始
到DHT11发送最后一个50us的低电平结束(然后被拉高,一直维持高电平,所以
最后的完成标志是一直为高,超过500ms)
'''
while(gpio.digitalRead(owpin)==0):pass
while(gpio.digitalRead(owpin)==1):
if gpio.micros()-tc>500: #如果超过500ms就结束了
break
if gpio.micros()-tc>500: #跳出整个循环
break
tl.append(gpio.micros()-tc) #记录每个周期时间的us数,存到tl这个列表 # print(tl) #反注释后可打印时间列表
tl=tl[1:] #去掉第一项,剩下40个数据位
for i in tl:
if i>100: #若数据位为1,时间为50us低电平+70us高电平=120us
tb.append(1)
else:
tb.append(0) #若数据位为0,时间为50us低电平+25us高电平=75us
#这里取大于100us就为1
# print(tb) #反注释可查看每一位状态
return tb def GetResult(owpin):
for i in range(10):
SH=0;SL=0;TH=0;TL=0;C=0
result=getval(owpin)
# print(len(result))
if len(result)==40:
for i in range(8):
#计算每一位的状态,每个字8位,以此为湿度整数,湿度小数,温度整数,温度小数,校验和
SH*=2;SH+=result[i]
SL*=2;SL+=result[i+8]
TH*=2;TH+=result[i+16]
TL*=2;TL+=result[i+24]
C*=2;C+=result[i+32]
if ((SH+SL+TH+TL)%256)==C and C!=0:
break
else:
print("Read Sucess,But checksum error! retrying")
else:
print("Read failer! Retrying")
gpio.delay(200)
return SH,SL,TH,TL SH,SL,TH,TL=GetResult(owpin)
print("湿度:",SH,SL,"温度:",TH,TL)
树莓派读取DHT11传感器的源代码的更多相关文章
- [转载] 树莓派读取温湿度传感器DHT11
原文地址: http://blog.csdn.net/liang890319/article/details/8739683 硬件: 树莓派 2.0 DHT模块 接树莓派5V GND GPIO1 功 ...
- 在树莓派上读取DHT11温湿度传感器-python代码实现及常见问题(全面简单易懂)
最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助. ...
- Arduino IDE 添加DHT11传感器第三方库的方法
由于Arduino本身没有DHT 11温湿度传感器的的头文件,单有第三方的库可以给我门使用.方法如下: Step 1:如果你已经下载了最新版的Arduino IDE就可以使用其自带的库管理器和版型管理 ...
- 进阶之路(基础篇) - 012 Arduino IDE 添加DHT11传感器第三方库的方法
由于Arduino本身没有DHT 11温湿度传感器的的头文件,单有第三方的库可以给我门使用.方法如下: Step 1:下载地址:https://pan.baidu.com/s/1qYfdBJ2#lis ...
- 树莓派从 DHT11 温度湿度传感器读取数据
时序图参考厂家说明书:DHT11数字湿温度传感器的原理和应用范例 四个阵脚连接:VCC接3.3伏电源,Dout接GPIO口,我接的是物理12针脚,NC留空,GND接地. 波折1:电阻被错接进了VCC, ...
- 树莓派使用DHT11温湿度传感器
一.相关介绍 DHT11介绍: DHT11是一款比较便宜的温湿度传感器模块.读取数据只需要占用一个IO口.能够同时测量温度和相对湿度. DHT11的数据手册可以看这里:http://wenku.bai ...
- STM32读取温湿度传感器DHT11和DHT21(AM2301)系列问题
1.DHT11和DHT21传感器 这两种传感器都是奥松公司的产品,具体的传感器说明书在其官网上有(www.aosong.com). DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合 ...
- 树莓派使用DHT11温湿度传感器(C语言程序)
pi4j是基于wiringpi开发的通过java来控制树莓派GPIO口的库文件.在java程序中引入相关类就可以使用已经封装好的方法控制树莓派GPIO口. pi4j官网:http://pi4j.com ...
- 树莓派使用DHT11温湿度传感器(C语言)
硬件: 树莓派 2.0 DHT模块 接树莓派5V GND GPIO1 功能:读取传感器数据并打印出来 // //mydht11.c // #include <wiringPi.h> #i ...
随机推荐
- Struts 2.x 与Spring4.x整合出现:No mapping found for dependency [type=java.lang.String, name='actionPackages...
Struts2.16与Spring4.x整合出错: Caused by: java.lang.RuntimeException: com.opensymphony.xwork2.inject.Depe ...
- SPRING 配置文件和类名
今天写项目碰到一个很奇怪的问题,无论怎么改,还是一直包空指针 最终的问题出现在spring配置文件
- EC读书笔记系列之9:条款16、17
条款16 成对使用new和delete时要采取相同形式 记住: ★若你在new表达式中使用[ ],必须在相应的delete中也使用[ ],反之亦然 -------------------------- ...
- git https连接方式,记住密码
Git使用https方式进行连接时,默认每次推送时都要输入用户名和密码. 可以使用命令 $git config credential.helper store 为当前仓库设置记住密码,设置后,只要在推 ...
- C#获得命令提示符输出
原文:http://blog.csdn.net/abrahu/article/details/6611504 C#获得命令提示符输出 分类: c#应用程序2011-07-16 23:34 600人阅读 ...
- <s:if>标签与ActionContext.getContext().getSession()
今天在做<s:if>标签中的属性值从 ActionContext.getContext().getSession().put("WW_TRANS_I18N_LOCALE" ...
- Repeat Number
Problem B: Repeat Number Time Limit: 1 Sec Memory Limit: 32 MB Description Definition: a+b = c, if ...
- vmware 使用技巧
1.虚拟机如何进入BIOS界面? 方法: 1) 开机按F2 2) 若来不及按F2的话,可以通过以下 2. 如何让虚拟机进入安全模式? 方法:开机快速按F8 3. 当不能连接到vCenter Serve ...
- 提醒录入BOM更改原因
应用 Oracle Bill Of Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...
- DRAM与NAND Flash产业六大趋势预测分析
集邦科技(TrendForce)旗下的分析部门DRAMeXchange的研究,针对对DRAM与NANDFlash产业的长久观察下,提出了对2012-2015年间产业发展的六大趋势预测: 趋势一 ...