【Raspberry Pi】DHT11 温度湿度传感器数据读取
2014-01-28 19:16
363 查看
时序图参考厂家说明书:DHT11数字湿温度传感器的原理和应用范例
四个阵脚连接:VCC接3.3伏电源,Dout接GPIO口,我接的是物理12针脚,NC留空,GND接地。
波折1:电阻被错接进了VCC,于是看了无数遍时序图,改了无数遍的驱动无论怎么改都是读不出数据。
波折2:偶然看了网上的DHT11上拉电阻电路图才发现错误,于是果断去掉电阻。但为了显示传感器工作正常在电源和VCC间接了个发光二极管进去,数据倒是读出来了,但各种错误。(原因不明)
去掉了电阻,去掉了led,优化了写的python,读数正常。再一次赞一个python。
写DHT11的驱动需要注意时序之间很紧密,python执行任何程序都要花费时间,在获取时序时需要注意所写调试用的代码也是占用时序的,在这一点上也走了一点弯路。
测试python程序时间代码
四个阵脚连接:VCC接3.3伏电源,Dout接GPIO口,我接的是物理12针脚,NC留空,GND接地。
波折1:电阻被错接进了VCC,于是看了无数遍时序图,改了无数遍的驱动无论怎么改都是读不出数据。
波折2:偶然看了网上的DHT11上拉电阻电路图才发现错误,于是果断去掉电阻。但为了显示传感器工作正常在电源和VCC间接了个发光二极管进去,数据倒是读出来了,但各种错误。(原因不明)
去掉了电阻,去掉了led,优化了写的python,读数正常。再一次赞一个python。
写DHT11的驱动需要注意时序之间很紧密,python执行任何程序都要花费时间,在获取时序时需要注意所写调试用的代码也是占用时序的,在这一点上也走了一点弯路。
# -*- coding: utf-8 -*- """ Created on Sun Jan 26 14:24:43 2014 @author: pi """ import RPi.GPIO as gpio import time gpio.setwarnings(False) gpio.setmode(gpio.BOARD) time.sleep(1) data=[] def delay(i): #20*i usdelay a=0 for j in range(i): a+1 j=0 #start work gpio.setup(12,gpio.OUT) #gpio.output(12,gpio.HIGH) #delay(10) gpio.output(12,gpio.LOW) time.sleep(0.02) gpio.output(12,gpio.HIGH) i=1 i=1 #wait to response gpio.setup(12,gpio.IN) while gpio.input(12)==1: continue while gpio.input(12)==0: continue while gpio.input(12)==1: continue #get data while j<40: k=0 while gpio.input(12)==0: continue while gpio.input(12)==1: k+=1 if k>100:break if k<3: data.append(0) else: data.append(1) j+=1 print "Sensor is working" #get temperature humidity_bit=data[0:8] humidity_point_bit=data[8:16] temperature_bit=data[16:24] temperature_point_bit=data[24:32] check_bit=data[32:40] humidity=0 humidity_point=0 temperature=0 temperature_point=0 check=0 for i in range(8): humidity+=humidity_bit[i]*2**(7-i) humidity_point+=humidity_point_bit[i]*2**(7-i) temperature+=temperature_bit[i]*2**(7-i) temperature_point+=temperature_point_bit[i]*2**(7-i) check+=check_bit[i]*2**(7-i) tmp=humidity+humidity_point+temperature+temperature_point if check==tmp: print "temperature is ", temperature,"wet is ",humidity,"%" else: print "something is worong the humidity,humidity_point,temperature,temperature_point,check is",humidity,humidity_point,temperature,temperature_point,check
测试python程序时间代码
# -*- coding: utf-8 -*- """ Created on Sun Jan 26 16:01:59 2014 @author: pi """ import time def delay(i): k=0 for j in range(i): k+=1 n=5000 j=0 a=time.time() i=1 c=time.time() d=c-a print d a=time.time() for i in range(n): j+=1 c=time.time() d=c-a print d a=time.time() delay(n) c=time.time() d=c-a print d
相关文章推荐
- 树莓派3B读取DHT11温度湿度数据
- 【Raspberry Pi】读取DHT11温度湿度波折
- 树莓派从温度传感器DHT11读取数据
- STM32获取DHT11温度传感器数据
- 单片机控制单总线协议湿度温度传感器DHT11之模块化编程(持续更新中)
- (13)树莓派B+ 读取DHT11温度湿度模块的数值
- esp8266实验:搭建最小系统,刷nodemcu固件,dht11温度读取并上传服务器
- 使用DHT11制作一个Arduino温度数据记录仪
- LM75温度传感器数据采集实验
- 【C语言】多温度传感器大数据的分析与处理实验报告
- AM3354之DHT11气温湿度传感器驱动和测试
- S3C6410 DS18B20温度传感器驱动(四) --- 读取温度的应用程序
- Arduino 各种模块篇 DHT11 温度湿度 数字模块 单总线
- Micropython TPYBoard读取芯片上的温度传感器
- 读取温度传感器DS18B20的实例
- 基于 Arduino 的温度+湿度传感器
- 树莓派+串口墨水电子屏幕+温度湿度传感器打造专属时钟
- linux下使用sqlite3记录温度传感器的数据
- BlackBerry 10 , BlackBerry OS 7.1 手机通过蓝牙串口读取Arduino 蓝牙传过来的温度 湿度信息