树莓派如何控制温湿度传感器DHT11

  介绍

树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

小π因为好几次断电之前没有关掉系统,导致系统老是起不来。无奈只好重写了SD卡。装好后前天晚上把一个温湿度传感器(DHT11)接到了小π上,顺利读出数据来了。废话不多说了,进入正题:

<李>

首先,简单介绍下DHT11:

DHT11是一个温湿度传感器,分为3个接口,分别为:<代码> VCC ,<代码> 接地

引脚号名称类型说明1 VCC电源+级,输入3 v - 5.5 - v2data数据输出输出引脚3接地接地接地引脚

配一个<代码> DHT11>

笆鬏扇绾慰刂莆率却衅鱀HT11

DHT11说明书200808年修订版。pdf

之前看网上说,需要在DHT11 <代码> VCC 和<代码> 之数据间加一个电阻,经试验完全不需要。

<李>

引脚连接:

关于树莓派二代的引脚可以看下上篇博客:树莓派控制有源蜂鸣器

<李>

<代码> 接电源电压上<代码> 3 v3> 1> 口<代码>

<李>

<代码> 接数据上<代码> 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