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

技术树莓派如何控制温湿度传感器DHT11树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。小π因为好几次断电之前没有关掉

树莓Pi如何控制温湿度传感器DHT11?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的朋友找到更简单易行的方法。

小在几次断电前都没有关闭系统,导致系统总是起不来。我不得不重写SD卡。安装后,前天晚上,一个温湿度传感器(DHT11)连接到小上,数据顺利读出。废话少说,言归正传:

首先简单介绍一下DHT11:

DHT11是一款温湿度传感器,分为三个接口:VCC、数据、GND。

引脚编号名称类型描述1VCC电源电平,输入3V-5.5V2DATA数据输出引脚3GND接地引脚带图片的DHT11:

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

DHT11手册200808修订版。可移植文档格式文件的扩展名(portable document format的缩写)

根据在线读数,需要在DHT11VCC和DATA之间增加一个电阻,测试后完全没有必要。

引脚连接:

关于第二代树莓派的图钉,请阅读之前的Blog:树莓派控制主动蜂鸣器。

将VCC连接到3V3,您可以选择1个端口或17个端口。

DATA连接到GPIO端口,我选择了GPIO4,端口7。

GND连接到接地端口。我选择了第14个港口。

用Python获取温度和湿度:

一个

2

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

四十二

43

四十四

45

46

47

48

四十九

50

51

五十二

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

六十八

69 #!/usr/bin/python

importRPi。GPIOasGPIO

进口时间

通道=4//GPIO4

数据=[]

j=0

GPIO.setmode(GPIO。BCM)

睡眠时间(1)

GPIO.setup(通道,GPIO。输出)

GPIO.output(通道,GPIO。低)

睡眠时间(0.02)

GPIO.output(通道,GPIO。高)

GPIO.setup(通道,GPIO。输入)

whileGPIO.input(通道)=GPIO。LOW:

继续

whileGPIO.input(通道)=GPIO。HIGH:

继续

whilej40:

k=0

whileGPIO.input(通道)=GPIO。LOW:

继续

whileGPIO.input(通道)=GPIO。HIGH:

k=1

ifnb

sp;k > 100:
      break
  if k < 8:
    data.append(0)
  else:
    data.append(1)
  j += 1
print "sensor is working."
print data
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 :", temperature, "*C, humidity :", humidity, "%"
else:
  print "wrong"
  print "temperature :", temperature, "*C, humidity :", humidity, "% check :", check, ", tmp :", tmp
GPIO.cleanup()

  • 展示结果:

1
2
3
4
root@raspberrypi:/data/basedata# python/dht11.py
sensor is working.
[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 %

为了测试结果是否准确,我把手指放到传感器上,测试的数据为:

1
2
3
4
5
root@raspberrypi:/data/basedata/python# python dht11.py
sensor is working.
[0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1]
wrong
temperature : 36 *C, humidity : 38 %

确认正确~

备注: 如果你用的是DS18B20,需要做以下动作:

1
2
3
4
5
6
7
root@raspberrypi:/# apt-get update
root@raspberrypi:/# apt-get upgrade #更新内核
root@raspberrypi:/# reboot
root@raspberrypi:/# vi /boot/config.txt #在最后一行手动添加:dtoverlay=w1-gpio-pullup,gpiopin=4 来支持新系统读取w1总线设备
root@raspberrypi:/# modprobe w1-gpio #确认设备是否生效
root@raspberrypi:/# modprobe w1-therm
root@raspberrypi:/# cd /sys/bus/w1/devices/

关于树莓派如何控制温湿度传感器DHT11问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/105880.html

(0)

相关推荐

  • 一什么狗尾草,狗尾巴草有什么象征意义吗

    技术一什么狗尾草,狗尾巴草有什么象征意义吗象征不被人了解的爱,但却可以为她默默付出……默默的爱一个人,默默的看他(她),默默的为他(她),默默的为他(她)做着一切,但仅仅只是默默,无声无息的爱犹如狗尾巴草,狗尾巴草的爱情

    生活 2021年10月22日
  • 怎样分析SpringMVC中的HandlerAdapter

    技术怎样分析SpringMVC中的HandlerAdapter这篇文章给大家介绍怎样分析SpringMVC中的HandlerAdapter,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Dispatc

    攻略 2021年12月2日
  • Swift常量的示例分析

    技术Swift常量的示例分析这篇文章给大家分享的是有关Swift常量的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Swift 是一种支持多编程范式和编译式的开源编程语言,苹果于201

    攻略 2021年11月8日
  • docker中Dockerfile如何自定义mycentos

    技术docker中Dockerfile如何自定义mycentos这篇文章主要为大家展示了“docker中Dockerfile如何自定义mycentos”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大

    攻略 2021年11月15日
  • Hive中静态分区与动态分区的示例分析

    技术Hive中静态分区与动态分区的示例分析这篇文章给大家分享的是有关Hive中静态分区与动态分区的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  分区是hive存放数据的一种方式。将

    攻略 2021年12月10日
  • 弹簧的劲度系数,弹簧被截断后的劲度系数

    技术弹簧的劲度系数,弹簧被截断后的劲度系数当然会变弹簧的劲度系数!以截一半为例,设原来劲度系数为k
    如果把两个部分首尾相连(串联)再在下面一个的末端挂上质量为m的物体,那么两弹簧总伸长是mg/k,因此每个部分伸长mg/2

    生活 2021年10月28日