感測器模組實作

作者:歐洲編輯群

資料提供者:DigiKey 歐洲編輯群

物聯網 (IoT) 具有光明前景,能為消費者與企業促成許多新型應用及服務。身為消費者,我們逐漸看到的 IoT 深入家庭,但許多專家認為,製造業才是在物聯網發展中受益最大的產業,而工業物聯網 (IIoT) 也成為業界中熱門的主題。如同其他所有物聯網應用,工業物聯網實現與否,通常還是取決於遠端感測器與致動器。IIoT 將會以空前的規模,為生產與製程作業帶來高度的資料可見度。另外,IIoT 也會顯示生產設備的效率與效能,再輔以預測性維護計畫,如此將能相得益彰。用於此類應用的感測器可能是簡單、小型、被動式和/或半導體元件,而其所處並運作的工業環境,通常會受極端溫度、振動與濕度的影響。由於需要快速部署能夠在上述條件下正常運作的感測器與邊緣節點裝置,許多 IoT 開發人員選擇採用模組式方法,將感測器整合到設計中。 

使用離散式方法會面臨多項挑戰,因此有充足的理由選擇使用模組。舉例而言,若要測量溫度,可將負溫度係數 (NTC) 熱敏電阻與電阻串聯,以產生隨環境溫度變動的接面電壓。接著使用主機微控制器上的類比數位轉換器 (ADC)來讀取此接面電壓,然後利用公式來計算溫度。但是,NTC 熱敏電阻的溫度/電阻特性並非線性,因此必須在整個運作溫度範圍內進行最佳線性擬合。此外,還需要考量溫度補償與漂移特性。這些由主機微控制器執行的額外運算,需要佔用更多的 MCU 資源,並且需要在生產過程中校準每個終端感測器元件。另一個主要考量是用來密封 NTC 電阻的封裝,必須確保必要元件不受環境因素影響。

Sensirion 的SHT35 溫度及濕度感測器圖片

圖 1:SHT35 溫度及濕度感測器。

相較於這類元件,我們可以考慮採用溫度模組,例如 SensirionSHT35 數位溫度與濕度感測器。(圖 1)這款表面黏著式低功率元件,尺寸僅 2.5 x 2.5 x 0.9 mm,在 2.4 至 5.5 VDC 的電源電壓下運作,測量期間僅消耗 800 µA,而睡眠模式下則低至 0.2 µA。在這個小型封裝中,裝有測量濕度用的電容式感測器,以及測量溫度用的能隙感測器。此感測器的溫度測量範圍介於 -40°C至 +125°C,相對濕度測量範圍介於 0 至 +100%。感測器元件具有經完整校準的數位輸出,連接到訊號處理電路與一個 14 位元 ADC,其中 ADC 的溫度準確度為 +/- 0.3°C,相對溼度準確度為 +/- 2%。

Sensirion 的SHT35 與主機微控制器進行通訊的示意圖

圖 2:SHT35 與主機微控制器進行通訊。

與主機微控制器的通訊,如圖 2 所示。這項作業透過 I2C 序列介面達成,只需要加入最少量的上拉電阻以及一個解耦電容。使用圖 3 所示的命令來測量溫度與溼度。感測器的資料一經讀取,便會以兩個位元組加上一個位元組的 CRC 核對和(灰色區塊)的形式進行傳輸。

Sensirion 的SHT3x 單次模式測量命令的圖片

圖 3:SHT3x 單次模式測量命令。

若要使用 SHT3x 系列協助進行感測器的原型設計,可選購分接式評估板。這款評估板是由 Adafruit 所製造,能輕鬆快速地將感測器接至 Arduino 或相容的平台。您可以在此處找到介接至 SHT3x 的詳細指引,以及 Arduino Sketch 程式碼的範例。

BoschBME280是數位溫度與濕度感測器另一項範例。這是一款完全密封的 LGA 封裝元件,具有金屬上蓋,也包含絕對氣壓感測器。BME280 採用低功耗設計以及極小型尺寸,適合用於多種電池供電的可攜式應用,從工業自動化控制到個人健身監測器等。圖 4 為 BME280 的功能方塊圖。

Bosch 的BME280 感測器功能方塊圖

圖 4:Bosch 的BME280 功能方塊圖,結合濕度、壓力以及溫度感測器。

感測器的類比與數位區塊能夠以 1.7 至 3.6 V 的DC電源供電,或是1.2至3.6V的獨立數位介面供電,視應用需求而定。可支援 SPI 與 I2C 介面,且感測器能夠以三種不同的電源模式運作。主機 MCU 能觸發測量功能,或由感測器以預先決定的頻率自動進行測量。功耗在睡眠模式下低至 0.1 µA,待命時低至 0.2 µA,進行壓力測量時最高為 714 µA。三種感測器運作模式分別為睡眠、強制以及一般。預設的啟動模式為睡眠模式,在此模式下 ADC 不會運作,並且可以存取所有的暫存器。

Bosch 的BME280 感測器模式切換圖

圖 5:BME280 感測器模式切換圖。

強制模式會透過從主機微控制器發出的 SPI 或 I2C 請求觸發,然後進行單次測量。儲存結果後,感測器將回到睡眠模式。在一般模式下會連續進行多次測量,儲存結果後,感測器會回到睡眠模式。

BME280 規格表會詳細說明各個運作模式、序列通訊以及如何存取測量結果暫存器。該文件還針對不同應用的使用情況,包括從天氣監測到電玩等,提供了一些建議使用的感測器設定檔。如此,即可針對多種不同的應用,在省電、採樣率、雜訊濾波以及資料輸出率等層面達到最佳平衡。

對於希望以 BME280 作為基礎進行原型設計的工程師,我們建議使用 Adafruit 的BME280 感測器分接板,如圖 6 所示。

Adafruit 的BME280 組合式感測器分接板圖片

圖 6:Adafruit BME280 組合式感測器分接板。

Adafruit 提供了詳細的感測器使用指南,可在此處下載。這份指南除了 Arduino 的BME280 函式庫連結之外(由Adafruit 的 GitHub 儲存庫提供),還包含介接至 Arduino UNO 或相容單板電腦的說明。圖 7 顯示由函式庫提供的 BME280 測試草稿程式碼片段。圖片頂端指出 SPI 引腳接至 Arduino 的指派情形,底部則指出使用函式庫讀取測量值的簡便性。

Adafruit 的BME280 測試草稿程式碼片段

圖 7:Adafruit 的BME280 測試草稿程式碼片段。

差壓感測器是多種工業應用(例如瓦斯鍋爐、燃料電池以及 HVAC 系統)常用的一種感測器。Sensirion 的SDP8xx 系列即為一例。此系列專為在大容量應用中測量空氣或非腐蝕性氣體的壓力所設計。SDP810 感測器是數位差壓感測器,能夠測量的壓力範圍為 +/- 500 Pa,準確度為 0.1 Pa。可透過 I2C 介面與主機 MCU 進行通訊。此感測器的功能方塊圖與圖片,如圖 8 所示。

Sensirion 的SDP810 的方塊圖與圖片

圖 8:Sensirion 的SDP810 方塊圖與圖片。

差壓感測器能夠用來測量氣體的流速,如圖 9 所示。在此例中,旁路流量會用來計算流過主要通道或管道的氣流。測量結果能夠以容積流量 (l/min) 或質量流量(每分鐘標準立方公分)的形式回報。後者通常用於加熱應用,並以特定的溫度與壓力做為基準點。

使用Sensirion的差壓感測器進行流量測量的示意圖。

圖 9:使用差壓感測器進行流量測量。

如同 BME280 感測器,SDP810 能夠以觸發或持續運行模式運作。使用簡易的通訊協定,透過 I2C 匯流排建構命令序列。此外也提供 SDP810 感測器的分支版本 SDP816,其具有類比輸出。類比輸出能夠設定為與差壓具線性或者平方根轉換關係。

結論

本文章僅探討了一小部分針對多類工業應用所設計的感測器模組。採用數位感測器模組進行設計,即無需應對離散方法所帶來的挑戰,如此能讓開發團隊節省可觀的時間和精力。

 
DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

歐洲編輯群

關於出版者

DigiKey 歐洲編輯群