在樹莓派項目中,我們經常需要使用感測器來獲取環境數據。其中,DS18B20 是一種常用的數位溫度感測器,可以通過樹莓派上的 GPIO 接口讀取溫度值。本文將介紹如何連接 DS18B20 感測器,並使用 Python 編寫程式碼實現循環讀取溫度的功能。
首先,讓我們了解一下 DS18B20 感測器的基本原理。DS18B20 是一種數位溫度感測器,具有高精度和相對較大的測量範圍。它透過單總線介面與樹莓派進行通訊,並通過 GPIO 引腳提供電源和數據傳輸。
- 連接:
連接 DS18B20 感測器到樹莓派的步驟如下:
- 將 DS18B20 感測器的 VCC 引腳連接到樹莓派上的 3.3V 電源引腳。
- 將 DS18B20 感測器的 GND 引腳連接到樹莓派上的地(GND)引腳。
- 將 DS18B20 感測器的數據引腳連接到樹莓派上的 GPIO 引腳。我們建議使用 GPIO4 引腳。
以下是連接方式的示意圖:
|
|
- 配置與手動讀取:
以下是通過 DS18B20 測溫模組來讀取溫度的基本步驟:
- 在樹莓派上啟用 DS18B20 支援:打開終端,在命令行中輸入以下命令,並確認已經開啟“w1-gpio”和“w1-therm”內核模組:
|
|
在文件末尾添加以下兩行:
|
|
保存並退出文件,然後重啟樹莓派使更改生效。
- 連接 DS18B20 模組:將 DS18B20 模組連接到樹莓派上的 GPIO 接口,具體連接方式請參考模組文檔或資料。
- 讀取溫度值:打開終端,在命令行中輸入以下命令,以讀取 DS18B20 模組的溫度值:
|
|
此時,應該會輸出一串以“28-”開頭的目錄名稱,該名稱是 DS18B20 模組的唯一識別符號。將該名稱替換為以下命令中的「<device_id>」,以讀取溫度值:
|
|
此命令將返回一個包含溫度值的文本字串,其中溫度值以“t=”開頭。將該字串中“t=”之後的數值除以 1000,即可得到以攝氏度為單位的溫度值。
請注意,由於 DS18B20 模組需要一定時間來進行精確的溫度測量,因此在讀取溫度值之前需等待一段時間(例如 1 秒鐘)以確保測量完成。此外,還應注意樹莓派和 DS18B20 模組的電氣連接,以確保正確讀取溫度值。
- Python 循環讀取:
確保連接正確後,我們可以使用 Python 編寫程式碼來讀取 DS18B20 感測器測量的溫度值。以下是範例程式碼:
|
|
需要將上述程式碼中的 <device_id>
替換為你實際的 DS18B20 感測器設備 ID。你可以通過執行 ls /sys/bus/w1/devices/
命令來查找正確的設備 ID。
上述程式碼會不斷循環讀取溫度,並每秒鐘列印一次當前的溫度值。你可以根據需要進行修改和擴展,以適應你的具體應用場景。
通過以上步驟,我們可以輕鬆地使用樹莓派和 Python 讀取 DS18B20 感測器測量的溫度值。這為我們的專案提供了一個簡單而可靠的方法來獲取環境溫度數據。希望本文對你在使用樹莓派中讀取溫度感測器有所幫助!