跳至主要内容

測量溫度 - 樹莓派

在本課程中,你將為樹莓派添加一個溫度傳感器。

硬體

你將使用的傳感器是DHT11 濕度和溫度傳感器,它將兩個傳感器結合在一個封裝中。這是相當流行的,有許多商業上可用的傳感器結合了溫度、濕度,有時還有大氣壓力。溫度傳感器組件是一個負溫度係數(NTC)熱敏電阻,這是一種隨著溫度升高而電阻減小的熱敏電阻。

這是一個數字傳感器,因此它有一個板載ADC來創建一個包含溫度和濕度數據的數字信號,微控制器可以讀取這些數據。

連接溫度傳感器

Grove 溫度傳感器可以連接到樹莓派。

任務

連接溫度傳感器

A grove temperature sensor

  1. 將Grove電纜的一端插入濕度和溫度傳感器上的插座。它只能以一種方式插入。

  2. 在樹莓派關機的情況下,將Grove電纜的另一端連接到樹莓派上的Grove Base帽上的數字插座D5。這個插座在GPIO引腳旁邊的一排插座中是從左數第二個。

The grove temperature sensor connected to socket A0

編程溫度傳感器

現在可以編程設備以使用連接的溫度傳感器。

任務

編程設備。

  1. 啟動樹莓派並等待其啟動

  2. 啟動VS Code,可以直接在樹莓派上啟動,也可以通過Remote SSH擴展連接。

    ⚠️ 如果需要,你可以參考在第1課中設置和啟動VS Code的說明

  3. 從終端,在pi用戶的主目錄中創建一個名為temperature-sensor的新文件夾。在此文件夾中創建一個名為app.py的文件:

    mkdir temperature-sensor
    cd temperature-sensor
    touch app.py
  4. 在VS Code中打開此文件夾

  5. 要使用溫度和濕度傳感器,需要安裝一個額外的Pip包。在VS Code的終端中,運行以下命令在樹莓派上安裝此Pip包:

    pip3 install seeed-python-dht
  6. 將以下代碼添加到app.py文件中以導入所需的庫:

    import time
    from seeed_dht import DHT

    from seeed_dht import DHT語句從seeed_dht模塊中導入DHT傳感器類以與Grove溫度傳感器交互。

  7. 在上述代碼之後添加以下代碼以創建管理溫度傳感器的類的實例:

    sensor = DHT("11", 5)

    這聲明了一個DHT類的實例來管理Digital Humidity和Temperature傳感器。第一個參數告訴代碼使用的是DHT11傳感器 - 你使用的庫支持此傳感器的其他變體。第二個參數告訴代碼傳感器連接到Grove base帽上的數字端口D5

    ✅ 記住,所有插座都有唯一的引腳號碼。引腳0、2、4和6是模擬引腳,引腳5、16、18、22、24和26是數字引腳。

  8. 在上述代碼之後添加一個無限循環以輪詢溫度傳感器值並將其打印到控制台:

    while True:
    _, temp = sensor.read()
    print(f'Temperature {temp}°C')

    調用sensor.read()返回一個濕度和溫度的元組。你只需要溫度值,因此忽略濕度。然後將溫度值打印到控制台。

  9. 循環的末尾添加一個十秒的小睡眠,因為不需要連續檢查溫度水平。睡眠可以減少設備的功耗。

    time.sleep(10)
  10. 從VS Code終端運行以下命令以運行你的Python應用程序:

    python3 app.py

    你應該會看到溫度值輸出到控制台。使用某些東西來加熱傳感器,例如用拇指按壓它,或使用風扇來查看值的變化:

    pi@raspberrypi:~/temperature-sensor $ python3 app.py 
    Temperature 26°C
    Temperature 26°C
    Temperature 28°C
    Temperature 30°C
    Temperature 32°C

💁 你可以在code-temperature/pi文件夾中找到此代碼。

😀 你的溫度傳感器程序成功了!