真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

樹莓派如何控制溫濕度傳感器DHT11

樹莓派如何控制溫濕度傳感器DHT11,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)公司主營(yíng)灌南網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),灌南h5微信小程序開發(fā)搭建,灌南網(wǎng)站營(yíng)銷推廣歡迎灌南等地區(qū)企業(yè)咨詢

小π因?yàn)楹脦状螖嚯娭皼]有關(guān)掉系統(tǒng),導(dǎo)致系統(tǒng)老是起不來。無奈只好重寫了SD卡。裝好后前天晚上把一個(gè)溫濕度傳感器(DHT11)接到了小π上,順利讀出數(shù)據(jù)來了。廢話不多說了,進(jìn)入正題:

  • 首先,簡(jiǎn)單介紹下DHT11:

    DHT11是一個(gè)溫濕度傳感器,分為3個(gè)接口,分別為:VCCDATAGND

    引腳號(hào)名稱類型說明
    1VCC電源+級(jí),輸入3V-5.5V
    2DATA數(shù)據(jù)輸出輸出引腳
    3GND接地接地引腳

    配一個(gè)DHT11的圖片:

    樹莓派如何控制溫濕度傳感器DHT11

    DHT11說明書200808修訂版.pdf

    之前看網(wǎng)上說,需要在DHT11VCCDATA之間加一個(gè)電阻,經(jīng)試驗(yàn)完全不需要。

  • 引腳連接:

    關(guān)于樹莓派二代的引腳可以看下上篇Blog:樹莓派控制有源蜂鳴器

    1. VCC接上3V3,可以選擇1口或者17

    2. DATA接上GPIO口,我選的是GPIO4,第7

    3. GND接上接地口,我選的是第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 time

channel =4 //GPIO4
data = []
j = 0

GPIO.setmode(GPIO.BCM)

time.sleep(1)

GPIO.setup(channel, GPIO.OUT)
GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH)
GPIO.setup(channel, GPIO.IN)

while GPIO.input(channel) == GPIO.LOW:
  continue
while GPIO.input(channel) == GPIO.HIGH:
  continue

while j < 40:
  k = 0
  while GPIO.input(channel) == GPIO.LOW:
    continue
  while GPIO.input(channel) == GPIO.HIGH:
    k += 1
    if 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()
  • 展示結(jié)果:

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 %

為了測(cè)試結(jié)果是否準(zhǔn)確,我把手指放到傳感器上,測(cè)試的數(shù)據(jù)為:

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 %

確認(rèn)正確~

備注: 如果你用的是DS18B20,需要做以下動(dòng)作:

1
2
3
4
5
6
7
root@raspberrypi:/# apt-get update
root@raspberrypi:/# apt-get upgrade #更新內(nèi)核
root@raspberrypi:/# reboot
root@raspberrypi:/# vi /boot/config.txt #在最后一行手動(dòng)添加:dtoverlay=w1-gpio-pullup,gpiopin=4 來支持新系統(tǒng)讀取w1總線設(shè)備
root@raspberrypi:/# modprobe w1-gpio #確認(rèn)設(shè)備是否生效
root@raspberrypi:/# modprobe w1-therm
root@raspberrypi:/# cd /sys/bus/w1/devices/

關(guān)于樹莓派如何控制溫濕度傳感器DHT11問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


本文標(biāo)題:樹莓派如何控制溫濕度傳感器DHT11
文章網(wǎng)址:http://weahome.cn/article/jsjdie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部