不用靠 Google,你也可以做自己的空氣品質監測

評論
評論

關於作者 Mike Rylee 是英特爾公司的軟體工程師,背景為開發嵌入式系統,和 Android*, Windows*, iOS*, and Mac*上的應用程式。他現在目前主要工作致力於 Android 和物連網。
本文受 Intel 官方授權翻譯,本文譯自 使用英特爾 ® Edison 探索空氣品質監測

 

MICHAEL R. (Intel) 於 April 10, 2015 提交

空氣品質監測是一個有趣的主題,這個研究領域主要包括汙染的增長、過敏、健康與健身的意識,以及技術創新。消費市場顯示,市場上推出的創新產品提高了人們監測家庭空氣品質的意識。其中有一類產品為智慧量表。這些智慧量表可監測各種與健康相關的參數,以及空氣品質。空氣品質資訊傳送到雲端,手機應用程式能提醒您空氣質量的變化,以便讓您了解哪個區域需要注入新鮮的空氣。具備空氣品質的意識有助於改善生活品質。本文將探討如何利用 Arduino* 生態系統測量二氧化碳、揮發性有機化合物和灰塵的濃度,並將資料傳送到雲端的服務供應商來進行空氣品質監測。

英特爾® Edison 平台配置了快速處理器、大容量的記憶體,以及整合了 WiFi 和藍芽 的連結性,非常適合於啟動新型設計,或遷移既有的原型。Arduino 生態系統提供了一系列硬體與韌體函式庫讓使用者來體驗英特爾® Edison 計算模組和英特爾® Edison Arduino Breakout 開發板。

如果想了解更多有關英特爾 Edison 平台的資訊,請參照如下連結:

http://www.intel.com/content/www/us/en/do-it-yourself/edison.html

 

硬體元件:

這個專案的空氣品質監測系統主要使用以下硬體元件:

  • 英特爾® Edison 計算模組
  • 英特爾® Edison Arduino Breakout 開發板
  • 共陰極 RGB LED + 3 x 1kΩ 電阻
  • GP2Y1010AU0F 光學灰塵感測器+ 150Ω 電阻 + 220 µF 電解電容
  • MQ-135 氣體感測器
  • K-30 二氧化碳感測器
  • PIR 移動感測器
AirQualityMonitor_bb
圖 1 – 硬體連接圖

 

操作原理:

圖 1 所示為硬體元件與英特爾® Edison Arduino Breakout 開發板的連接。這個系統將 RGB LED 用作為簡單的目測指示系統來顯示空氣品質。

為了確定某區域的整體空氣品質,這個系統使用三個感測器:

  1. 一個光學灰塵感測器: 用來測量某區域的灰塵。
  2. 一個氣體感測器: 用來測量煙霧等揮發性有機化合物
  3. 一個二氧化碳感測器: 接在 I2C 介面,用來量測二氧化碳濃度

此外,這個系統配置移動感測器,藉由過濾掉由移動所引起的暫時性灰塵濃度上升以及由於人們接近感測器呼吸所引起的暫時性二氧化碳濃度上升,以最大程度的真實反映某區域的整體空氣品質。

當沒有檢測到任何的移動,韌體會讀取空氣品質感測器、分析感測器的資料、更新目測指示系統,並將空氣品質資料傳送雲端。有關這個系統的詳細內容將會在韌體的章節進一步探討。

如欲了解更多有關感測器的內容,請參考下列連結中的資料表:

http://www.kosmodrom.com.ua/pdf/MQ135.pdf

https://www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf

http://www.co2meter.com/collections/co2-sensors/products/k-30-co2-sensor-module

http://www.ladyada.net/media/sensors/PIRSensor-V1.2.pdf

 

配置 I2C 時鐘頻率:

請注意,在編寫本文的時候,英特爾® Edison 的預設 I2C 時鐘頻率高於 100kHz,超過了 K-30 二氧化碳感測器的規格。K-30 二氧化碳感測器所支援最高的 I2C 時鐘頻率 (SCL) 為 100kHz。英特爾® Edison I2C 時鐘頻率可通過下列幾個步驟更改為 100kHz:

-確認安裝了最新的英特爾® Edison Yocto 韌體映像檔:

http://www.intel.com/support/edison/sb/CS-035180.htm

-打開 Edison Linux 終端機,並以管理者身分登錄:

https://software.intel.com/en-us/articles/getting-started-with-the-intel-edison-board-on-windows

-cd /sys/devices/pci0000:00/0000:00:09.1/i2c_dw_sysnode

-echo std > mode

-cat mode

如欲了解有關® Edison 計算模組和 I2C 周邊的更多訊息,請參考下列連結:

http://www.intel.com/support/edison/sb/CS-035274.htm?wapkw=intel+edison+compute+module+hardware+guide

 

韌體:

下列程式碼顯示了空氣品值系統包含的標頭檔、巨集和函數。下面將討論初始化、主迴圈、讀取移動感測器、讀取空氣品質感測器、分析整體空氣品質、更新目測指示 LED,以及將資料傳送到雲端服務提供商的函數。

標頭檔:

2015-08-11 17.01.45

巨集:

2015-08-11 16.47.48

函數:

初始化: 該函數可初始化串列偵錯介面,I/O 腳位和 I2C 介面。

2015-08-11 17.03.10

主迴圈: 這個主迴圈初始化系統、檢查移動、讀取空氣品質感測器、分析整體空氣品質、更新指示 LED,並將資料傳送到雲端服務。

2015-08-11 17.04.11

讀取移動感測器: 透過移動感測器的數字輸出腳位可讀取移動感測器。如果檢測到移動,感測器輸出腳會將變成高電位。該函數嘗試過濾故障,並回傳是否偵測到移動。

2015-08-11 17.05.22

讀取空氣品質感測器: 這個函數呼叫單獨的氣體、二氧化碳和灰塵感測器函數。函數將指標傳入整數陣列,以保存各個感測器的空氣品質結果。

2015-08-11 17.07.27

讀取氣體感測器: 氣體感測器可檢測 NH3、NOx、乙醇、苯,煙霧等氣體。氣體感測器包含一個類比電壓輸出,該輸出與空氣中的氣體濃度成正比。執行 A/D 換算可讀取這個感測器。這個函數可讀取感測器,算出讀取值的平均值,分析感測器資料,並傳回感測器的空氣品質。

2015-08-11 17.08.17

讀取灰塵感測器: 灰塵感測器包含光學感測系統,這個系統藉由數位輸出腳位通電。通電後執行 A/D 轉換可對感測器的類比電壓輸出 (與空氣中的灰塵成正比) 進行採樣。這個函數可以讀取感測器、算出讀取值的平均值、分析桿測資料,並回傳 這個感測器的空氣品質。

2015-08-11 17.09.26

讀取二氧化碳感測器: 二氧化碳感測器傳回二氧化碳的濃度值 (單位: ppm)。二氧化碳感測器經由 I2C 介面讀取。這個函數可以讀取感測器、算出讀取值的平均值、分析感測器資料,並回傳感測器的空氣品質。

2015-08-11 17.10.24

分析整體空氣品質: 這個函數可以藉由分析傳來的氣體、二氧化碳和灰塵等空氣品質確保該地區的整體空氣品質。這個函數可回傳該地區的整體空氣品質程度。

2015-08-11 17.11.20

更新目測指示 LED: 這個函數可將指示 LED 更新至與所傳來的空氣品質相對應的顏色。LED 變成藍色表示空氣品質程度達到最佳、綠色表示空氣品質良好、紅色表示空氣品質差。如果偵測到移動,LED 將變成洋紅色。

2015-08-11 17.12.37

傳送資料到雲端服務供應商 :

欲連接英特爾® Edison 至無線網路,請參考如下連結:

http://www.intel.com/support/edison/sb/CS-035342.htm

xively_pic
圖 2 – xively.com 饋送

在這個例子中,xively.com 是一個接收空氣品質資料的雲端服務供應商。圖 2 顯示出四個通道組成的饋送例子。函數章節將進一步介紹這些通道。整合 xively.com 須將 Http Client 和 Xively 函式庫加到 Arduino IDE。請參考如下連接中更多關於 xively.com,新增帳號、Arduino 教學、以及 Arduino IDE 函數庫整合的更多資訊。

https://xively.com/dev/tutorials/arduino_wi-fi/

下列程式碼顯示了可增加到空氣品質系統的標頭檔、巨集和函數範例,這可以擴增 xively.com 支援程度。

標頭檔:

2015-08-11 17.14.59

巨集:

2015-08-11 17.15.58

全域變數 :

2015-08-11 17.17.54

函數 :

更新數據流: 呼叫這個函數可以更新 xively.com 通道數據流的值。通道 ID 和數據流的值可傳送到此函數。如圖 2 所示,這個系統使用四個數據流。數據流可更新為汽體、二氧化碳和灰塵感測器的原始感測器資料。此外,主迴圈中的數據流還可以更新為整體空氣品質。

2015-08-11 17.19.43

傳送數據流到 Xively: 這個函數執行 PUT 操作饋送給 xively.com。這個函數回傳成功或失敗代碼狀態。主迴圈呼叫這個函數。

2015-08-11 17.20.44

總結 :

希望您會喜歡使用英特爾 Edison 平台研究空氣品質監測。可以挑戰自己試著增加其他顯示各感測器的指示,增加針對空氣品質變化的警告觸發器增強雲端服務體驗,並找尋機會將空氣品質監測與其他系統互相整合。

 

++這個簡易的原始碼是根據英特爾簡易原始碼許可證所發佈

聲明本文不代表英特爾公司或其他機構向任何人明確或隱含的授權任何智慧產權。

英特爾明確拒絕所有明確或隱含的擔保,包括但不侷限於適售性、特定用途適用性和不侵犯任何權利的隱含單保,以及任何對於履約習慣、交易習慣或貿易習慣的擔保。

本文包含尚處於開發階段的產品、服務和/或流程的資訊。這裡所提供的所有資訊隨時可以更改,恕不另行通知。請聯絡您的英特爾代表,了解最新的預測、時間表、規格和線路圖。

本文所描述的產品和服務可能包含與宣稱的規格不符的缺陷或錯誤。目前勘誤表已經準備就緒歡迎索取。

如欲獲取本文所提及的訂購編號的文件複本可撥打 1-800-548-4725 或者是瀏覽

www.intel.com/design/literature.htm.

英特爾和 Intel 商標是英特爾在美國和/或其他國家的商標。

*其他的名稱和品牌可能是其他所有者的資產。

英特爾公司© 2015 年版權所有

更多精選文章.....

 

 

歡迎加入"Inside" Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

評論