13 KiB
C,讀作 I-squared-C,是一種多控制器、多外設的協議,任何連接的設備都可以作為控制器或外設,通過 I²C 線路(用於傳輸數據的通信系統名稱)進行通信。數據以地址封裝的形式發送,每個封裝包含目標設備的地址。
💁 這種模型過去被稱為主/從(master/slave),但由於其與奴隸制的聯想,這種術語正在被棄用。開源硬件協會(Open Source Hardware Association)已採用控制器/外設(controller/peripheral),但你可能仍會看到對舊術語的引用。
設備在連接到 I²C 線路時會有一個地址,通常是硬編碼在設備上的。例如,Seeed 的每種 Grove 傳感器都有相同的地址,因此所有光傳感器都有相同的地址,所有按鈕的地址也相同,但與光傳感器的地址不同。一些設備可以通過更改跳線設置或焊接引腳來更改地址。
I²C 線路由兩條主要的信號線以及兩條電源線組成:
線路 | 名稱 | 描述 |
---|---|---|
SDA | 串行數據線 | 用於在設備之間傳輸數據。 |
SCL | 串行時鐘線 | 傳輸由控制器設置速率的時鐘信號。 |
VCC | 電壓公共集電極 | 為設備提供電源。這條線連接到 SDA 和 SCL 線,通過上拉電阻提供電源,當沒有設備作為控制器時,信號會被關閉。 |
GND | 地線 | 為電路提供公共地線。 |
要傳輸數據,一個設備會發出啟動條件,表明它準備好傳輸數據。它隨後成為控制器。控制器接著發送它想要通信的設備地址,以及它是要讀取還是寫入數據。在數據傳輸完成後,控制器會發送停止條件,表明它已完成。之後,另一個設備可以成為控制器並發送或接收數據。
22C 有速度限制,並且有三種不同模式以固定速度運行。最快的模式是高速模式,最大速度為 3.4Mbps(每秒百萬位元),但支持該速度的設備非常少。例如,Raspberry Pi 的速度限制在 400Kbps(每秒千位元)的快速模式。標準模式的速度為 100Kbps。
💁 如果您使用 Raspberry Pi 搭配 Grove Base hat 作為您的 IoT 硬件,您可以在板上看到多個 I2C 插座,這些插座可用於與 I2C 感測器進行通信。類比 Grove 感測器也使用 I2C,並通過 ADC(類比數位轉換器)將類比值作為數位數據傳送,因此您使用的光感測器模擬了一個類比引腳,並通過 I2C 傳送值,因為 Raspberry Pi 只支持數位引腳。
通用非同步接收器-傳送器 (UART)
UART 涉及允許兩個設備通信的物理電路。每個設備都有兩個通信引腳——傳送(Tx)和接收(Rx),第一個設備的 Tx 引腳連接到第二個設備的 Rx 引腳,第二個設備的 Tx 引腳連接到第一個設備的 Rx 引腳。這使得數據可以雙向傳送。
- 設備 1 從其 Tx 引腳傳送數據,設備 2 在其 Rx 引腳接收數據
- 設備 1 在其 Rx 引腳接收由設備 2 從其 Tx 引腳傳送的數據
🎓 數據是一次傳送一位,這被稱為 串行 通信。大多數操作系統和微控制器都有 串行端口,即可以向您的代碼提供串行數據傳送和接收的連接。
UART 設備有一個 波特率(也稱為符號率),即數據傳送和接收的速度,以每秒位元數表示。一個常見的波特率是 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 設備的處理器)與多個外設交互。控制器通過選擇外設並傳送或請求數據來控制所有操作。
💁 與 I2C 一樣,控制器和外設這些術語是最近的改變,因此您可能仍會看到使用舊術語。
SPI 控制器使用 3 條線,外加每個外設一條額外的線。外設使用 4 條線。這些線包括:
線 | 名稱 | 描述 |
---|---|---|
COPI | 控制器輸出,外設輸入 | 這條線用於將數據從控制器傳送到外設。 |
CIPO | 控制器輸入,外設輸出 | 這條線用於將數據從外設傳送到控制器。 |
SCLK | 串行時鐘 | 這條線以控制器設置的速率傳送時鐘信號。 |
CS | 芯片選擇 | 控制器有多條線,每個外設一條,每條線連接到相應外設的 CS 線。 |
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(一種長距離低功耗網絡協議)或 WiFi。這些協議允許遠程感測器不需要物理連接到 IoT 設備。
一個例子是商業土壤濕度感測器。這些感測器會測量田地中的土壤濕度,然後通過 LoRaWAN 傳送數據到集線設備,該設備會處理數據或通過互聯網傳送數據。這使得感測器可以遠離管理數據的 IoT 設備,減少功耗以及對大型 WiFi 網絡或長電纜的需求。
BLE 在高級感測器中很受歡迎,例如用於手腕上的健身追蹤器。這些感測器結合多個感測器,並通過 BLE 將感測器數據傳送到 IoT 設備,例如您的手機。
✅ 您身上、家中或學校中是否有任何藍牙感測器?這些可能包括溫度感測器、佔用感測器、設備追蹤器和健身設備。
商業設備的一種流行連接方式是 Zigbee。Zigbee 使用 WiFi 在設備之間形成網狀網絡,每個設備盡可能多地連接到附近的設備,形成像蜘蛛網一樣的大量連接。當一個設備想要向互聯網傳送消息時,它可以將消息傳送到最近的設備,然後由其他附近設備轉發,直到到達協調器並可以傳送到互聯網。
🐝 Zigbee 的名字來源於蜜蜂返回蜂巢後的搖擺舞。
測量土壤中的濕度水平
您可以使用土壤濕度感測器、IoT 設備以及室內植物或附近的土壤來測量土壤濕度水平。
任務 - 測量土壤濕度
按照相關指南使用您的 IoT 設備測量土壤濕度:
感測器校準
感測器依賴於測量電氣特性,例如電阻或電容。
🎓 電阻,以歐姆(Ω)為單位,表示電流通過某物時的阻力。當電壓施加到材料上時,通過它的電流量取決於材料的電阻。您可以在 維基百科上的電阻頁面 閱讀更多內容。
🎓 電容,以法拉(F)為單位,表示元件或電路收集和存儲電能的能力。您可以在 維基百科上的電容頁面 閱讀更多內容。
這些測量值並不總是有用——想像一下,一個溫度感測器給您一個 22.5KΩ 的測量值!因此,測量值需要通過校準轉換為有用的單位——即將測量值與測量的量匹配,以便新測量值可以轉換為正確的單位。
一些感測器是預先校準的。例如,您在上一課中使用的溫度感測器已經校準,可以返回以 °C 為單位的溫度測量值。在工廠中,第一個感測器會暴露於一系列已知溫度,並測量電阻。然後,這些數據會用於建立一個計算公式,將測量值從 Ω(電阻的單位)轉換為 °C。
💁 計算電阻與溫度的公式稱為 Steinhart–Hart 方程。
土壤濕度感測器校準
土壤濕度是通過重力或體積含水量測量的。
- 重力含水量是每單位重量的土壤中水的重量,測量值為每公斤乾土中的公斤水
- 體積含水量是每單位體積的土壤中水的體積,測量值為每立方米乾土中的立方米水
🇺🇸 對於美國人,由於單位的一致性,這些可以用磅代替公斤或立方英尺代替立方米進行測量。
土壤濕度感測器測量電阻或電容——這不僅因土壤濕度而異,還因土壤類型而異,因為土壤中的成分會改變其電氣特性。理想情況下,感測器應進行校準——即從感測器獲取讀數並與使用更科學方法獲得的測量值進行比較。例如,實驗室可以使用特定田地的樣本幾次測量重力土壤濕度,並使用這些數據校準感測器,將感測器讀數與重力土壤濕度匹配。
上圖顯示了如何校準感測器。對土壤樣本捕獲電壓,然後通過比較濕重與乾重(測量濕重,然後在烤箱中烘乾並測量乾重)在實驗室中測量。獲取幾個讀數後,可以將其繪製在圖表上並擬合一條線。這條線可以用於將 IoT 設備的土壤濕度感測器讀數轉換為實際土壤濕度測量值。
💁 對於電阻式土壤濕度感測器,隨著土壤濕度增加,電壓增加。對於電容式土壤濕度感測器,隨著土壤濕度增加,電壓減少,因此這些圖表的斜率會向下,而不是向上。
上圖顯示了土壤濕度感測器的電壓讀數,通過跟隨該讀數到圖表上的線,可以計算出實際土壤濕度。
這種方法意味著農民只需要為田地獲得幾個實驗室測量值,然後可以使用 IoT 設備測量土壤濕度——大大加快了測量速度。
🚀 挑戰
電阻式和電容式土壤濕度感測器有許多差異。這些差異是什麼?哪種類型(如果有的話)最適合農民使用?這個答案是否會因發展中國家和已開發國家而改變?
課後測驗
回顧與自學
閱讀有關感測器和執行器使用的硬件和協議的資料:
作業
免責聲明:
本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。