iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 9
0
IoT

樹莓派實驗室系列 第 9

Day9 - 樹莓派連接DHT22偵測溫濕度

最近獲得一個小感測器DHT22,可以感測濕度溫度,今天就來玩玩Raspberry pi 4的GPIO吧。

DHT22簡介

第一步先介紹DHT22的構造,他還有一個更便宜的版本DHT11,兩者差異蠻明顯的,DHT11準確度低於DHT22,且偵測溫度範圍也沒有DHT22(攝氏-40 to 80 度)那麼大,所以就使用DHT22來進行今天的實驗。

我的版本是三隻腳的,從左至右的順序

Left: VCC (Power Supply) ->接任一3.3V power (我接在1號位)
Middle: Data ->接GPIO (我接在GPIO4 也就是7號位)
Right: Ground ->接任一GROUND(我接在6號位)

如果是四隻腳的版本,就是左邊數來第三隻腳不要連接就好了。

可以再對照一次GPIO位置圖

下圖是我接成功的結果也是今天實驗所需零件(我使用的是Raspberry pi 4 4G)

安裝套件

今天的實驗我是透過ssh連線到樹莓派下指令的,如果不確定要如何設定請參照Day3或Day4。

那麼開始安裝,今天我們會使用到Adafruit_DHT這個Library
在開始進行到這個library之前,我們要先確認系統已經更新。

sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-dev python3-pip
sudo python3 -m pip install --upgrade pip setuptools wheel

現在使用pip安裝Adafruit_DHT

sudo pip3 install Adafruit_DHT

編輯python程式碼

裝好了之後我們來編輯一個python檔接收溫度及濕度資料。

nano ~/DHT22.py

進入DHT22.py開始打上程式碼,稍微解釋一下變數
DHT_SENSOR = Adafruit_DHT.DHT22就是告訴程式今天感測器是誰
這個library除了DHT22還有支援Adafruit_DHT.DHT11 和 Adafruit_DHT.AM2302

DHT_PIN = 4是我們中間那隻腳連接的地方,因為我連在GPIO4,所以=4

import Adafruit_DHT 

DHT_SENSOR = Adafruit_DHT.DHT22 
DHT_PIN = 4  

while True:
    humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
    if humidity is not None and temperature is not None:
        print("Temp={0:0.2f}*C  Humidity={1:0.2f}%".format(temperature, humidity))
    else:
        print("Failed to retrieve data from HDT22 sensor")

偵測結果,成功!

最後稍微提醒一下,其實Adafruit_Python_DHT這個library已經不再更新了,但他還是有支援到Raspberry pi 4,最新版支援DHT22的是以下的這個library
https://github.com/adafruit/Adafruit_CircuitPython_DHT

這就是簡單使用感測器並且使用了python程式控制輸出結果,是不是很簡單呢?
今天的連接Raspberry pi 的GPIO實驗就到這邊。


上一篇
Day8 - 樹莓派的GPIO簡介
下一篇
Day10 - 把觀測記錄視覺化
系列文
樹莓派實驗室30

尚未有邦友留言

立即登入留言