我們在東南亞的學校定期測定空氣中的顆粒物。這里的測定值非常高,尤其是在二到五月之間,干燥炎熱、土地干旱等各種因素都對空氣質量產生了不利的影響。我將會在這篇文章中展示如何使用樹莓派來測定顆粒物。
什么是顆粒物?
顆粒物就是粉塵或者空氣中的微小顆粒。其中 PM10 和 PM2.5 之間的差別就是 PM10 指的是粒徑小于 10 微米的顆粒,而 PM2.5 指的是粒徑小于 2.5 微米的顆粒。在粒徑小于 2.5 微米的的情況下,由于它們能被吸入肺泡中并且對呼吸系統造成影響,因此顆粒越小,對人的健康危害越大。
世界衛生組織的建議 顆粒物濃度 是:
年均 PM10 不高于 20 μg/m3
年均 PM2.5 不高于 10 μg/m3
不允許超標時,日均 PM10 不高于 50 μg/m3
不允許超標時,日均 PM2.5 不高于 25 μg/m3
以上數值實際上是低于大多數國家的標準的,例如歐盟對于 PM10 所允許的年均值是不高于 40 μg/m3。
什么是 空氣質量指數 Air Quality Index (AQI)?
空氣質量指數是按照顆粒物的測定值來評價空氣質量的好壞,然而由于各國之間的計算方式有所不同,這個指數并沒有統一的標準。維基百科上關于 空氣質量指數 的詞條對此給出了一個概述。我們學校則以 美國環境保護協會 Environment Protection Agency (EPA)建立的分類法來作為依據。
空氣質量指數
測定顆粒物需要哪些準備?
測定顆粒物只需要以下兩種器材:
樹莓派(款式不限,最好帶有 WiFi)
SDS011 顆粒物傳感器
顆粒物傳感器
如果是只帶有 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:
這個頁面比較簡單而且可擴展,比如可以添加一個展示過去數小時歷史數據的表格等等。
這是 Github上的完整源代碼 。
總結
在資金相對緊張的情況下,樹莓派是一種選擇。除此以外,還有很多可以用來測定顆粒物的應用,包括室外固定裝置、移動測定設備等等。我們學校則同時采用了這兩種:固定裝置在室外測定全天顆粒物濃度,而移動測定設備在室內檢測空調過濾器的效果。
Luftdaten.info 提供了一個如何設計類似的傳感器的介紹,其中的軟件效果出眾,而且因為它沒有使用樹莓派,所以硬件更是小巧。
對于學生來說,設計一個顆粒物傳感器確實算得上是一個優秀的課外項目。
你又打算如何使用你的 樹莓派 呢?
評論
查看更多