如何使用樹莓派測定顆粒物(PM 2.5)
我們在東南亞的學校定期測定空氣中的顆粒物。這裡的測定值非常高,尤其是在二到五月之間,乾燥炎熱、土地乾旱等各種因素都對空氣質量產生了不利的影響。我將會在這篇文章中展示如何使用樹莓派來測定顆粒物。
什麼是顆粒物?
顆粒物就是粉塵或者空氣中的微小顆粒。其中 PM10 和 PM2.5 之間的差別就是 PM10 指的是粒徑小於 10 微米的顆粒,而 PM2.5 指的是粒徑小於 2.5 微米的顆粒。在粒徑小於 2.5 微米的的情況下,由於它們能被吸入肺泡中並且對呼吸系統造成影響,因此顆粒越小,對人的健康危害越大。
世界衛生組織的建議顆粒物濃度是:
- 年均 PM10 不高於 20 µg/m³
- 年均 PM2.5 不高於 10 µg/m³
- 不允許超標時,日均 PM10 不高於 50 µg/m³
- 不允許超標時,日均 PM2.5 不高於 25 µg/m³
以上數值實際上是低於大多數國家的標準的,例如歐盟對於 PM10 所允許的年均值是不高於 40 µg/m³。
什麼是 空氣質量指數 (AQI)?
空氣質量指數是按照顆粒物的測定值來評價空氣質量的好壞,然而由於各國之間的計算方式有所不同,這個指數並沒有統一的標準。維基百科上關於空氣質量指數的詞條對此給出了一個概述。我們學校則以 美國環境保護協會 (EPA)建立的分類法來作為依據。
![空氣質量指數](/data/attachment/album/201805/08/235157sb3bhid8vti9wbmv.png "Air quality index")
空氣質量指數
測定顆粒物需要哪些準備?
測定顆粒物只需要以下兩種器材:
- 樹莓派(款式不限,最好帶有 WiFi)
- SDS011 顆粒物感測器
![顆粒物感測器](/data/attachment/album/201805/08/235158jqg9lzx8zhksq30b.jpg "Particulate sensor")
顆粒物感測器
如果是只帶有 Micro USB 的樹莓派 Zero W,那還需要一根連接到標準 USB 埠的適配線,只需要 20 美元,而感測器則自帶適配串列介面的 USB 適配器。
安裝過程
對於樹莓派,只需要下載對應的 Raspbian Lite 鏡像並且寫入到 Micro SD 卡上就可以了(網上很多教程都有介紹如何設置 WLAN 連接,我就不細說了)。
如果要使用 SSH,那還需要在啟動分區建立一個名為 ssh
的空文件。樹莓派的 IP 通過路由器或者 DHCP 伺服器獲取,隨後就可以通過 SSH 登錄到樹莓派了(默認密碼是 raspberry):
$ ssh pi@192.168.1.5
首先我們需要在樹莓派上安裝一下這些包:
$ sudo apt install git-core python-serial python-enum lighttpd
在開始之前,我們可以用 dmesg
來獲取 USB 適配器連接的串列介面:
$ dmesg
[ 5.559802] usbcore: registered new interface driver usbserial
[ 5.559930] usbcore: registered new interface driver usbserial_generic
[ 5.560049] usbserial: USB Serial support registered for generic
[ 5.569938] usbcore: registered new interface driver ch341
[ 5.570079] usbserial: USB Serial support registered for ch341-uart
[ 5.570217] ch341 1–1.4:1.0: ch341-uart converter detected
[ 5.575686] usb 1–1.4: ch341-uart converter now attached to ttyUSB0
在最後一行,可以看到介面 ttyUSB0
。然後我們需要寫一個 Python 腳本來讀取感測器的數據並以 JSON 格式存儲,在通過一個 HTML 頁面就可以把數據展示出來了。
在樹莓派上讀取數據
首先創建一個感測器實例,每 5 分鐘讀取一次感測器的數據,持續 30 秒,這些數值後續都可以調整。在每兩次測定的間隔,我們把感測器調到睡眠模式以延長它的使用壽命(廠商認為元件的壽命大約 8000 小時)。
我們可以使用以下命令來下載 Python 腳本:
$ wget -O /home/pi/aqi.py https://raw.githubusercontent.com/zefanja/aqi/master/python/aqi.py
另外還需要執行以下兩條命令來保證腳本正常運行:
$ sudo chown pi:pi /var/www/html/
$ echo '[]' > /var/www/html/aqi.json
下面就可以執行腳本了:
$ chmod +x aqi.p
$ ./aqi.py
PM2.5:55.3, PM10:47.5
PM2.5:55.5, PM10:47.7
PM2.5:55.7, PM10:47.8
PM2.5:53.9, PM10:47.6
PM2.5:53.6, PM10:47.4
PM2.5:54.2, PM10:47.3
…
自動化執行腳本
只需要使用諸如 crontab 的服務,我們就不需要每次都手動啟動腳本了。按照以下命令打開 crontab 文件:
$ crontab -e
在文件末尾添加這一行:
@reboot cd /home/pi/ && ./aqi.py
現在我們的腳本就會在樹莓派每次重啟後自動執行了。
展示顆粒物測定值和空氣質量指數的 HTML 頁面
我們在前面已經安裝了一個輕量級的 web 伺服器 lighttpd
,所以我們需要把 HTML、JavaScript、CSS 文件放置在 /var/www/html
目錄中,這樣就能通過電腦和智能手機訪問到相關數據了。執行下面的三條命令,可以下載到對應的文件:
$ wget -O /var/www/html/index.html https://raw.githubusercontent.com/zefanja/aqi/master/html/index.html
$ wget -O /var/www/html/aqi.js https://raw.githubusercontent.com/zefanja/aqi/master/html/aqi.js
$ 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:
這個頁面比較簡單而且可擴展,比如可以添加一個展示過去數小時歷史數據的表格等等。
總結
在資金相對緊張的情況下,樹莓派是一種選擇。除此以外,還有很多可以用來測定顆粒物的應用,包括室外固定裝置、移動測定設備等等。我們學校則同時採用了這兩種:固定裝置在室外測定全天顆粒物濃度,而移動測定設備在室內檢測空調過濾器的效果。
Luftdaten.info 提供了一個如何設計類似的感測器的介紹,其中的軟體效果出眾,而且因為它沒有使用樹莓派,所以硬體更是小巧。
對於學生來說,設計一個顆粒物感測器確實算得上是一個優秀的課外項目。
你又打算如何使用你的樹莓派呢?
via: https://opensource.com/article/18/3/how-measure-particulate-matter-raspberry-pi
作者:Stephan Tetzel 譯者:HankChow 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive