You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/mo/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md

154 lines
6.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "70e5a428b607cd5a9a4f422c2a4df03d",
"translation_date": "2025-08-26T22:20:24+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md",
"language_code": "mo"
}
-->
# 測量溫度 - 虛擬物聯網硬體
在本課程中,您將為虛擬物聯網設備添加一個溫度感測器。
## 虛擬硬體
虛擬物聯網設備將使用模擬的 Grove 數位濕度與溫度感測器。這樣的設置與使用搭載實體 Grove DHT11 感測器的 Raspberry Pi 相同。
該感測器結合了一個**溫度感測器**和一個**濕度感測器**,但在本實驗中,您只需關注溫度感測器的部分。在實體物聯網設備中,溫度感測器通常是一個[熱敏電阻](https://wikipedia.org/wiki/Thermistor),通過感應電阻隨溫度變化的改變來測量溫度。溫度感測器通常是數位感測器,內部會將測量到的電阻轉換為攝氏度(或開氏度、華氏度)的溫度。
### 將感測器添加到 CounterFit
要使用虛擬濕度和溫度感測器,您需要將這兩個感測器添加到 CounterFit 應用中。
#### 任務 - 將感測器添加到 CounterFit
將濕度和溫度感測器添加到 CounterFit 應用中。
1. 在您的電腦上建立一個名為 `temperature-sensor` 的資料夾,並在其中創建一個名為 `app.py` 的單一檔案,設置 Python 虛擬環境,並添加 CounterFit 的 pip 套件。
> ⚠️ 如果需要,您可以參考[第 1 課中有關創建和設置 CounterFit Python 專案的指導](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md)。
1. 安裝一個額外的 Pip 套件,用於安裝 DHT11 感測器的 CounterFit shim。確保您是在啟用虛擬環境的終端中進行安裝。
```sh
pip install counterfit-shims-seeed-python-dht
```
1. 確保 CounterFit 網頁應用正在運行。
1. 創建一個濕度感測器:
1.*Sensors* 面板的 *Create sensor* 框中,展開 *Sensor type* 下拉框並選擇 *Humidity*
1.*Units* 保持為 *Percentage*
1. 確保 *Pin* 設置為 *5*
1. 點擊 **Add** 按鈕,在 Pin 5 上創建濕度感測器。
![濕度感測器設置](../../../../../translated_images/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.mo.png)
濕度感測器將被創建並顯示在感測器列表中。
![已創建的濕度感測器](../../../../../translated_images/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.mo.png)
1. 創建一個溫度感測器:
1.*Sensors* 面板的 *Create sensor* 框中,展開 *Sensor type* 下拉框並選擇 *Temperature*
1.*Units* 保持為 *Celsius*
1. 確保 *Pin* 設置為 *6*
1. 點擊 **Add** 按鈕,在 Pin 6 上創建溫度感測器。
![溫度感測器設置](../../../../../translated_images/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.mo.png)
溫度感測器將被創建並顯示在感測器列表中。
![已創建的溫度感測器](../../../../../translated_images/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.mo.png)
## 編寫溫度感測器應用程式
現在可以使用 CounterFit 感測器來編寫溫度感測器應用程式。
### 任務 - 編寫溫度感測器應用程式
編寫溫度感測器應用程式。
1. 確保 `temperature-sensor` 應用已在 VS Code 中打開。
1. 打開 `app.py` 檔案。
1.`app.py` 的頂部添加以下程式碼,將應用連接到 CounterFit
```python
from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000)
```
1.`app.py` 檔案中添加以下程式碼以匯入所需的函式庫:
```python
import time
from counterfit_shims_seeed_python_dht import DHT
```
`from seeed_dht import DHT` 語句匯入了 `DHT` 感測器類,用於通過 `counterfit_shims_seeed_python_dht` 模組的 shim 與虛擬 Grove 溫度感測器進行互動。
1. 在上述程式碼之後添加以下程式碼,創建一個管理虛擬濕度和溫度感測器的類別實例:
```python
sensor = DHT("11", 5)
```
這聲明了一個 `DHT` 類的實例,用於管理虛擬的**數位濕度與溫度感測器**。第一個參數告訴程式使用的是虛擬 *DHT11* 感測器。第二個參數告訴程式感測器連接到埠 `5`
> 💁 CounterFit 通過連接兩個感測器來模擬這個結合的濕度與溫度感測器,一個濕度感測器連接到創建 `DHT` 類時指定的埠,另一個溫度感測器運行在下一個埠。如果濕度感測器在埠 5 上shim 預期溫度感測器在埠 6 上。
1. 在上述程式碼之後添加一個無限迴圈,用於輪詢溫度感測器的值並將其打印到控制台:
```python
while True:
_, temp = sensor.read()
print(f'Temperature {temp}°C')
```
調用 `sensor.read()` 會返回一個包含濕度和溫度的元組。您只需要溫度值,因此可以忽略濕度值。然後將溫度值打印到控制台。
1.`loop` 的末尾添加一個 10 秒的小延遲,因為不需要連續檢查溫度水平。延遲可以減少設備的功耗。
```python
time.sleep(10)
```
1. 在啟用虛擬環境的 VS Code 終端中,運行以下命令來執行您的 Python 應用程式:
```sh
python app.py
```
1. 在 CounterFit 應用中更改溫度感測器的值,該值將被應用程式讀取。您可以通過以下兩種方式進行更改:
* 在溫度感測器的 *Value* 框中輸入一個數字,然後點擊 **Set** 按鈕。您輸入的數字將成為感測器返回的值。
* 勾選 *Random* 選框,並輸入 *Min**Max* 值,然後點擊 **Set** 按鈕。每次感測器讀取值時,將讀取一個介於 *Min**Max* 之間的隨機數。
您應該能在控制台中看到您設置的值。更改 *Value**Random* 設置以查看值的變化。
```output
(.venv) ➜ temperature-sensor python app.py
Temperature 28.25°C
Temperature 30.71°C
Temperature 25.17°C
```
> 💁 您可以在 [code-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/virtual-device) 資料夾中找到此程式碼。
😀 恭喜!您的溫度感測器程式成功運行!
---
**免責聲明**
本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。