介绍
树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
小π因为好几次断电之前没有关掉系统,导致系统老是起不来。无奈只好重写了SD卡。装好后前天晚上把一个温湿度传感器(DHT11)接到了小π上,顺利读出数据来了。废话不多说了,进入正题:
- <李>
首先,简单介绍下DHT11:
DHT11是一个温湿度传感器,分为3个接口,分别为:<代码> VCC 代码>,<代码> 代码,数据,<代码>接地代码>
引脚号名称类型说明1 VCC电源+级,输入3 v - 5.5 - v2data数据输出输出引脚3接地接地接地引脚配一个<代码> DHT11> 代码的图片:
DHT11说明书200808年修订版。pdf
之前看网上说,需要在DHT11 <代码> VCC 代码>和<代码> 代码>之数据间加一个电阻,经试验完全不需要。
李> <李>引脚连接:
关于树莓派二代的引脚可以看下上篇博客:树莓派控制有源蜂鸣器
李>- <李>
<代码> 代码>接电源电压上<代码> 3 v3> 代码,可以选择<代码> 1> 代码口或者17 代码>口<代码>
李> <李><代码> 代码>接数据上<代码> GPIO 代码>口,我选的是<代码> GPIO4> 代码,第<代码> 7 代码>口
李> <李><代码>接地代码>接上<代码>接地口> 代码,我选的是第<代码> 14 代码>口
李>Python获取温湿度:
李>1 2 3. 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20. 21 22 23 24 25 26 27 28 29 30. 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 以前69 > <>之前# !/usr/bin/python import RPi.GPIO  as GPIO import 时间 channel =4//GPIO4 时间=data [] j =0 GPIO.setmode (GPIO.BCM) time . sleep (1) GPIO.setup(频道,GPIO.OUT) GPIO.output(频道,GPIO.LOW) time . sleep (0.02) GPIO.output(频道,GPIO.HIGH) GPIO.setup(频道,GPIO.IN) while GPIO.input(频道),==,GPIO.LOW: ,继续 while GPIO.input(频道),==,GPIO.HIGH: ,继续 while j & lt;, 40: k 才能=0 while 才能GPIO.input(频道),==,GPIO.LOW: ,才能继续 while 才能GPIO.input(频道),==,GPIO.HIGH: ,,,k +=1 ,,,if k 祝辞,100: ,,,,,休息 if 才能k & lt;, 8: ,,,data.append (0) 其他的才能: ,,,data.append (1) j 才能+=1 print “sensor is 工作!” print 数据 时间=humidity_bit 数据(0:8) 时间=humidity_point_bit 数据(八16) 时间=temperature_bit 数据(16:24) 时间=temperature_point_bit 数据(24:32) 时间=check_bit 数据[32:40] humidity =0 humidity_point =0 temperature =0 temperature_point =0 check =0 for 小姐:拷贝范围(8): humidity 才能+=,humidity_bit[我],*,2,* *,(我) humidity_point 才能+=,humidity_point_bit[我],*,2,* *,(我) temperature 才能+=,temperature_bit[我],*,2,* *,(我) temperature_point 才能+=,temperature_point_bit[我],*,2,* *,(我) check 才能+=,check_bit[我],*,2,* *,(我) +=tmp humidity humidity_point +, temperature + temperature_point if check ==, tmp: print 才能“temperature :“,,温度,,“* C, humidity :“,湿度,,“%”; 其他: 倒霉透顶print 才能;“ print 才能“temperature :“,,温度,,“* C, humidity :“,湿度,,“%,check :,,,,,,,, tmp :“, tmp GPIO.cleanup ()
- <李>
展示结果:
李>1 2 3. 4
root@raspberrypi:/数据/basedata #, python/dht11.py sensor is 工作。 (0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0] temperature : 20, * C, humidity :, 38, %树莓派如何控制温湿度传感器DHT11