树莓派如何控制温湿度传感器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)

相关推荐

  • 在html5中头部包含哪个元素结构(html5头部内容通常包括哪个元素)

    技术html5头部内容通常包括什么内容这篇文章主要介绍html5头部内容通常包括什么内容,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! html5头部内容通常包括:1、

    攻略 2021年12月17日
  • cupro是什么面料,聚酯纤维面料是什么面料

    技术cupro是什么面料,聚酯纤维面料是什么面料聚酯纤维就是涤纶的一种叫法cupro是什么面料,商家用这个来混淆消费者的认识,因为涤纶是种低档廉价的纤维料嘛。涤纶具有许多优良的纺织性能和服用性能,用途广泛,可以纯纺织造,

    生活 2021年10月21日
  • 怎么解决php验证码不变的问题

    技术怎么解决php验证码不变的问题这篇文章主要介绍“怎么解决php验证码不变的问题”,在日常操作中,相信很多人在怎么解决php验证码不变的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年10月25日
  • MS 2008数据库转换成2000版本的方法是什么

    技术MS 2008数据库转换成2000版本的方法是什么MS 2008数据库转换成2000版本的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。话

    攻略 2021年11月30日
  • iptables使用教程(iptables使用)

    技术iptables怎么使用本篇内容主要讲解“iptables怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“iptables怎么使用”吧! 实战1 服务器禁止pin

    攻略 2021年12月21日
  • 考研复试什么时候,研究生面试时间多长

    技术考研复试什么时候,研究生面试时间多长我是研路有我,我来回答你的问题考研复试什么时候。研究生面试一般在15分钟左右!我作为一名曾经的考研生,也是经历了面试。我当时面试的时候,大概看了一下时间,每位同学的面试时间平均在1

    生活 2021年10月25日