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/hk/2-farm/lessons/2-detect-soil-moisture/README.md

152 lines
11 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": "4fb20273d299dc8d07a8f06c9cd0cdd9",
"translation_date": "2025-08-26T14:41:50+00:00",
"source_file": "2-farm/lessons/2-detect-soil-moisture/README.md",
"language_code": "hk"
}
-->
C讀作 *I-squared-C*,是一種多控制器、多外設的通訊協議,任何連接的設備都可以作為控制器或外設,通過 I
2<sup>C 有速度限制,並且有三種不同模式以固定速度運行。最快的模式是高速模式,最大速度為 3.4Mbps每秒百萬位元但支持該速度的設備非常少。例如Raspberry Pi 的速度限制在快速模式下為 400Kbps每秒千位元。標準模式的速度為 100Kbps。
💁 如果你使用 Raspberry Pi 和 Grove Base hat 作為你的 IoT 硬件,你會看到板上有多個 I<sup>2</sup>C 插座,可以用來與 I<sup>2</sup>C 傳感器通信。模擬 Grove 傳感器也使用 I<sup>2</sup>C 和 ADC模擬數字轉換器將模擬值作為數字數據發送因此你使用的光傳感器模擬了一個模擬引腳並通過 I<sup>2</sup>C 發送值,因為 Raspberry Pi 只支持數字引腳。
### 通用異步接收器-發射器 (UART)
UART 涉及物理電路,允許兩個設備進行通信。每個設備都有兩個通信引腳——發射 (Tx) 和接收 (Rx),第一個設備的 Tx 引腳連接到第二個設備的 Rx 引腳,第二個設備的 Tx 引腳連接到第一個設備的 Rx 引腳。這使得數據可以雙向傳輸。
* 設備 1 從其 Tx 引腳發送數據,設備 2 在其 Rx 引腳接收數據
* 設備 1 在其 Rx 引腳接收由設備 2 從其 Tx 引腳發送的數據
![UART 的 Tx 引腳連接到另一個芯片的 Rx 引腳,反之亦然](../../../../../translated_images/uart.d0dbd3fb9e3728c6ee1995c8206f3cdb13cdfd208f13745e8ef6854cab75e421.hk.png)
🎓 數據是一次發送一位,這被稱為*串行*通信。大多數操作系統和微控制器都有*串行端口*,即可以向你的代碼提供串行數據的連接。
UART 設備有一個 [波特率](https://wikipedia.org/wiki/Symbol_rate)(也稱為符號率),即數據以每秒位數發送和接收的速度。一個常見的波特率是 9,600意味著每秒發送 9,600 位0 和 1的數據。
UART 使用起始位和停止位——即它發送一個起始位來表示即將發送一個字節8 位)數據,然後在發送完 8 位後發送一個停止位。
UART 的速度取決於硬件,但即使是最快的實現也不超過 6.5 Mbps每秒百萬位元或每秒發送的 0 或 1 數據)。
你可以通過 GPIO 引腳使用 UART——你可以設置一個引腳為 Tx另一個引腳為 Rx然後將它們連接到另一個設備。
💁 如果你使用 Raspberry Pi 和 Grove Base hat 作為你的 IoT 硬件,你會看到板上有一個 UART 插座,可以用來與使用 UART 協議的傳感器通信。
### 串行外設接口 (SPI)
SPI 是為短距離通信設計的,例如在微控制器上與存儲設備(如閃存)通信。它基於控制器/外設模型,單個控制器(通常是 IoT 設備的處理器)與多個外設交互。控制器通過選擇一個外設並發送或請求數據來控制所有操作。
💁 與 I<sup>2</sup>C 一樣,控制器和外設這些術語是最近的改變,因此你可能仍然會看到使用舊術語。
SPI 控制器使用 3 根線,外加每個外設額外的一根線。外設使用 4 根線。這些線包括:
| 線 | 名稱 | 描述 |
| ---- | --------- | ----------- |
| COPI | 控制器輸出,外設輸入 | 這根線用於將數據從控制器發送到外設。 |
| CIPO | 控制器輸入,外設輸出 | 這根線用於將數據從外設發送到控制器。 |
| SCLK | 串行時鐘 | 這根線以控制器設置的速率發送時鐘信號。 |
| CS | 芯片選擇 | 控制器有多根線,每個外設一根,每根線連接到相應外設的 CS 線。 |
![一個控制器和兩個外設的 SPI](../../../../../translated_images/spi.297431d6f98b386b4ff88aea44ce9c1e7acfb1ef69c7e4e388a7aa97b6948e24.hk.png)
CS 線用於一次激活一個外設,通過 COPI 和 CIPO 線進行通信。當控制器需要更換外設時,它會停用連接到當前激活外設的 CS 線,然後激活連接到下一個外設的線。
SPI 是*全雙工*的,這意味著控制器可以同時從同一外設發送和接收數據,使用 COPI 和 CIPO 線。SPI 使用 SCLK 線上的時鐘信號來保持設備同步,因此不像直接通過 UART 發送那樣需要起始位和停止位。
SPI 沒有定義的速度限制,實現通常能夠每秒傳輸多兆字節的數據。
IoT 開發套件通常支持通過一些 GPIO 引腳使用 SPI。例如在 Raspberry Pi 上,你可以使用 GPIO 引腳 19、21、23、24 和 26 進行 SPI。
### 無線
一些傳感器可以通過標準無線協議進行通信,例如藍牙(主要是藍牙低功耗,或 BLE、LoRaWAN一種**Lo**ng **Ra**nge 低功耗網絡協議)或 WiFi。這些允許遠程傳感器不需要物理連接到 IoT 設備。
一個例子是商業土壤濕度傳感器。這些傳感器會測量田地中的土壤濕度,然後通過 LoRaWAN 將數據發送到集線設備,該設備會處理數據或通過互聯網發送。這使得傳感器可以遠離管理數據的 IoT 設備,減少功耗以及對大型 WiFi 網絡或長電纜的需求。
BLE 在高級傳感器中很受歡迎,例如用於手腕上的健身追蹤器。這些設備結合了多個傳感器,並通過 BLE 將傳感器數據發送到你的手機等 IoT 設備。
✅ 你身上、家裡或學校裡是否有任何藍牙傳感器?這些可能包括溫度傳感器、佔用傳感器、設備追蹤器和健身設備。
商業設備的一種流行連接方式是 Zigbee。Zigbee 使用 WiFi 在設備之間形成網狀網絡,每個設備盡可能多地連接到附近的設備,形成像蜘蛛網一樣的大量連接。當一個設備想要向互聯網發送消息時,它可以將消息發送到最近的設備,然後由這些設備轉發給其他附近的設備,如此類推,直到到達協調器並可以發送到互聯網。
🐝 Zigbee 的名字來源於蜜蜂返回蜂巢後的搖擺舞。
## 測量土壤中的濕度水平
你可以使用土壤濕度傳感器、IoT 設備和一盆室內植物或附近的一片土壤來測量土壤中的濕度水平。
### 任務 - 測量土壤濕度
按照相關指南使用你的 IoT 設備測量土壤濕度:
* [Arduino - Wio Terminal](wio-terminal-soil-moisture.md)
* [單板計算機 - Raspberry Pi](pi-soil-moisture.md)
* [單板計算機 - 虛擬設備](virtual-device-soil-moisture.md)
## 傳感器校準
傳感器依賴於測量電氣特性,例如電阻或電容。
🎓 電阻,以歐姆 (Ω) 為單位,表示電流通過某物時的阻力有多大。當電壓施加到材料上時,通過它的電流量取決於材料的電阻。你可以在 [Wikipedia 的電阻頁面](https://wikipedia.org/wiki/Electrical_resistance_and_conductance) 上了解更多。
🎓 電容,以法拉 (F) 為單位,表示元件或電路收集和存儲電能的能力。你可以在 [Wikipedia 的電容頁面](https://wikipedia.org/wiki/Capacitance) 上了解更多。
這些測量值並不總是有用——想像一下,一個溫度傳感器給你一個 22.5KΩ 的測量值!因此,測量值需要通過校準轉換為有用的單位——即將測量值與測量的量匹配,以便新測量值可以轉換為正確的單位。
一些傳感器是預先校準的。例如,你在上一課中使用的溫度傳感器已經校準,可以返回以 °C 為單位的溫度測量值。在工廠中,第一個傳感器會暴露於一系列已知溫度,並測量電阻。然後,這些數據會用於建立一個計算公式,可以將測量值從 Ω(電阻的單位)轉換為 °C。
💁 計算電阻與溫度的公式稱為 [SteinhartHart 方程](https://wikipedia.org/wiki/SteinhartHart_equation)。
### 土壤濕度傳感器校準
土壤濕度是通過重力或體積含水量測量的。
* 重力含水量是測量每單位重量土壤中的水重量,單位為每公斤干土中的公斤水
* 體積含水量是測量每單位體積土壤中的水體積,單位為每立方米干土中的立方米水
🇺🇸 對於美國人,由於單位的一致性,這些可以用磅代替公斤或立方英尺代替立方米進行測量。
土壤濕度傳感器測量電阻或電容——這不僅因土壤濕度而異,還因土壤類型而異,因為土壤中的成分會改變其電氣特性。理想情況下,傳感器應進行校準——即從傳感器獲取讀數並與使用更科學方法獲得的測量值進行比較。例如,實驗室可以使用特定田地的樣本幾次一年計算重力土壤濕度,並使用這些數據校準傳感器,將傳感器讀數與重力土壤濕度匹配。
![電壓與土壤濕度含量的圖表](../../../../../translated_images/soil-moisture-to-voltage.df86d80cda1587008f312431ed5f79eb6c50c58d4fbc25a6763c5e9127c3106b.hk.png)
上圖顯示了如何校準傳感器。電壓是通過土壤樣本捕獲的,然後通過實驗室測量濕重與干重進行測量(通過測量濕重,然後在烤箱中烘干並測量干重)。一旦獲得了一些讀數,就可以將它們繪製在圖表上並擬合一條線。這條線可以用來將 IoT 設備的土壤濕度傳感器讀數轉換為實際的土壤濕度測量值。
💁 對於電阻式土壤濕度傳感器,隨著土壤濕度的增加,電壓會增加。對於電容式土壤濕度傳感器,隨著土壤濕度的增加,電壓會減少,因此這些圖表的斜率會向下而不是向上。
![從圖表中插值的土壤濕度值](../../../../../translated_images/soil-moisture-to-voltage-with-reading.681cb3e1f8b68caf5547dbf1415851c82e201edfb78face16fc98da4051ed9b2.hk.png)
上圖顯示了土壤濕度傳感器的電壓讀數,通過將其追蹤到圖表上的線,可以計算出實際的土壤濕度。
這種方法意味著農民只需要為田地獲得一些實驗室測量值,然後他們可以使用 IoT 設備測量土壤濕度——大大加快了測量的速度。
---
## 🚀 挑戰
電阻式和電容式土壤濕度傳感器有許多差異。這些差異是什麼?哪種類型(如果有的話)最適合農民使用?這個答案是否會因發展中國家和已開發國家而改變?
## 課後測驗
[課後測驗](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/12)
## 回顧與自學
閱讀有關傳感器和執行器使用的硬件和協議:
* [GPIO Wikipedia 頁面](https://wikipedia.org/wiki/General-purpose_input/output)
* [UART Wikipedia 頁面](https://wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter)
* [SPI Wikipedia 頁面](https://wikipedia.org/wiki/Serial_Peripheral_Interface)
* [I<sup>2</sup>C Wikipedia 頁面](https://wikipedia.org/wiki/I²C)
* [Zigbee Wikipedia 頁面](https://wikipedia.org/wiki/Zigbee)
## 作業
[校準你的傳感器](assignment.md)
---
**免責聲明**
本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。