歡迎光臨
每天分享高質量文章

如何使用樹莓派測定顆粒物(PM 2.5) | Linux 中國

使用兩個簡單的硬體裝置和幾行程式碼構建一個空氣質量探測器。
— Stephan Tetzel


致謝
編譯自 | https://opensource.com/article/18/3/how-measure-particulate-matter-raspberry-pi 
 作者 | Stephan Tetzel
 譯者 | Hank Chow (HankChow) ? ? 共計翻譯:4 篇 貢獻時間:118 天

使用兩個簡單的硬體裝置和幾行程式碼構建一個空氣質量探測器。

我們在東南亞的學校定期測定空氣中的顆粒物。這裡的測定值非常高,尤其是在二到五月之間,乾燥炎熱、土地乾旱等各種因素都對空氣質量產生了不利的影響。我將會在這篇文章中展示如何使用樹莓派來測定顆粒物。

什麼是顆粒物?

顆粒物就是粉塵或者空氣中的微小顆粒。其中 PM10 和 PM2.5 之間的差別就是 PM10 指的是粒徑小於 10 微米的顆粒,而 PM2.5 指的是粒徑小於 2.5 微米的顆粒。在粒徑小於 2.5 微米的的情況下,由於它們能被吸入肺泡中並且對呼吸系統造成影響,因此顆粒越小,對人的健康危害越大。

世界衛生組織的建議顆粒物濃度[1]是:

◈ 年均 PM10 不高於 20 µg/m³
◈ 年均 PM2.5 不高於 10 µg/m³
◈ 不允許超標時,日均 PM10 不高於 50 µg/m³
◈ 不允許超標時,日均 PM2.5 不高於 25 µg/m³

以上數值實際上是低於大多數國家的標準的,例如歐盟對於 PM10 所允許的年均值是不高於 40 µg/m³。

什麼是空氣質量指數Air Quality Index(AQI)?

空氣質量指數是按照顆粒物的測定值來評價空氣質量的好壞,然而由於各國之間的計算方式有所不同,這個指數並沒有統一的標準。維基百科上關於空氣質量指數[2]的詞條對此給出了一個概述。我們學校則以美國環境保護協會Environment Protection Agency[3](EPA)建立的分類法來作為依據。

空氣質量指數

測定顆粒物需要哪些準備?

測定顆粒物只需要以下兩種器材:

◈ 樹莓派(款式不限,最好帶有 WiFi)
◈ SDS011 顆粒物感測器

顆粒物感測器

如果是隻帶有 Micro USB 的樹莓派 Zero W,那還需要一根連線到標準 USB 埠的適配線,只需要 20 美元,而感測器則自帶適配序列介面的 USB 配接器。

安裝過程

對於樹莓派,只需要下載對應的 Raspbian Lite 映象並且寫入到 Micro SD 卡[4]上就可以了(網上很多教程都有介紹如何設定 WLAN 連線,我就不細說了)。

如果要使用 SSH,那還需要在啟動分割槽建立一個名為 ssh 的空檔案。樹莓派的 IP 透過路由器或者 DHCP 伺服器獲取,隨後就可以透過 SSH 登入到樹莓派了(預設密碼是 raspberry):

  1. $ ssh pi@192.168.1.5

首先我們需要在樹莓派上安裝一下這些包:

  1. $ sudo apt install git-core python-serial python-enum lighttpd

在開始之前,我們可以用 dmesg 來獲取 USB 配接器連線的序列介面:

  1. $ dmesg

  2. [ 5.559802] usbcore: registered new interface driver usbserial

  3. [ 5.559930] usbcore: registered new interface driver usbserial_generic

  4. [ 5.560049] usbserial: USB Serial support registered for generic

  5. [ 5.569938] usbcore: registered new interface driver ch341

  6. [ 5.570079] usbserial: USB Serial support registered for ch341-uart

  7. [ 5.570217] ch341 11.4:1.0: ch341-uart converter detected

  8. [ 5.575686] usb 11.4: ch341-uart converter now attached to ttyUSB0

在最後一行,可以看到介面 ttyUSB0。然後我們需要寫一個 Python 指令碼來讀取感測器的資料並以 JSON 格式儲存,在透過一個 HTML 頁面就可以把資料展示出來了。

在樹莓派上讀取資料

首先建立一個感測器實體,每 5 分鐘讀取一次感測器的資料,持續 30 秒,這些數值後續都可以調整。在每兩次測定的間隔,我們把感測器調到睡眠樣式以延長它的使用壽命(廠商認為元件的壽命大約 8000 小時)。

我們可以使用以下命令來下載 Python 指令碼:

  1. $ wget -O /home/pi/aqi.py https://raw.githubusercontent.com/zefanja/aqi/master/python/aqi.py

另外還需要執行以下兩條命令來保證指令碼正常執行:

  1. $ sudo chown pi:pi /var/www/html/

  2. $ echo '[]' > /var/www/html/aqi.json

下麵就可以執行指令碼了:

  1. $ chmod +x aqi.p

  2. $ ./aqi.py

  3. PM2.5:55.3, PM10:47.5

  4. PM2.5:55.5, PM10:47.7

  5. PM2.5:55.7, PM10:47.8

  6. PM2.5:53.9, PM10:47.6

  7. PM2.5:53.6, PM10:47.4

  8. PM2.5:54.2, PM10:47.3

自動化執行指令碼

只需要使用諸如 crontab 的服務,我們就不需要每次都手動啟動指令碼了。按照以下命令開啟 crontab 檔案:

  1. $ crontab -e

在檔案末尾新增這一行:

  1. @reboot cd /home/pi/ && ./aqi.py

現在我們的指令碼就會在樹莓派每次重啟後自動執行了。

展示顆粒物測定值和空氣質量指數的 HTML 頁面

我們在前面已經安裝了一個輕量級的 web 伺服器 lighttpd,所以我們需要把 HTML、JavaScript、CSS 檔案放置在 /var/www/html 目錄中,這樣就能透過電腦和智慧手機訪問到相關資料了。執行下麵的三條命令,可以下載到對應的檔案:

  1. $ wget -O /var/www/html/index.html https://raw.githubusercontent.com/zefanja/aqi/master/html/index.html

  2. $ wget -O /var/www/html/aqi.js https://raw.githubusercontent.com/zefanja/aqi/master/html/aqi.js

  3. $ wget -O /var/www/html/style.css https://raw.githubusercontent.com/zefanja/aqi/master/html/style.css

在 JavaScript 檔案中,實現了開啟 JSON 檔案、提取資料、計算空氣質量指數的過程,隨後頁面的背景顏色將會根據 EPA 的劃分標準而變化。

你只需要用瀏覽器訪問樹莓派的地址,就可以看到當前顆粒物濃度值等資料了: http://192.168.1.5:

這個頁面比較簡單而且可擴充套件,比如可以新增一個展示過去數小時歷史資料的表格等等。

這是Github上的完整原始碼[6]

總結

在資金相對緊張的情況下,樹莓派是一種選擇。除此以外,還有很多可以用來測定顆粒物的應用,包括室外固定裝置、移動測定裝置等等。我們學校則同時採用了這兩種:固定裝置在室外測定全天顆粒物濃度,而移動測定裝置在室內檢測空調過濾器的效果。

Luftdaten.info[7] 提供了一個如何設計類似的感測器的介紹,其中的軟體效果出眾,而且因為它沒有使用樹莓派,所以硬體更是小巧。

對於學生來說,設計一個顆粒物感測器確實算得上是一個優秀的課外專案。

你又打算如何使用你的樹莓派[8]呢?


via: https://opensource.com/article/18/3/how-measure-particulate-matter-raspberry-pi

作者:Stephan Tetzel[10] 譯者:HankChow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂