自製一個空氣質量/顆粒物質監測儀

並共享民間數據

0x00

本文深度參考了 這篇文章(英文),並由本文作者親自動手操作成功,隨寫成中文的教程,鼓勵更多的極(宅)客(男/女)、關注社會/環境人士/倡導者、行動者,收集真實準確的數據,以在環境問題上更有話語權。

0x01

這裏作者從深圳華強北買了兩樣東西:

以上兩樣在中國強大的電商網站都能買到,不貴,加起來 ¥300~400 左右。
其實還可以使用比樹莓派(等單板電腦)更小巧的衆多開發板/單片機(但性能感人了),以及其工作原理可以參考 這篇文章(中文)

0x02

給樹莓派安裝操作系統(通常是 Raspbian 或其他任何一種 Linux),這方面教程很多就不贅述了。 安裝好後,用root身份登錄並執行以下操作(用root要小心不要敲錯咯,你是被提醒過的)。

設置WIFI熱點
用 NetworkManager 或 hostapd 把機器上的無線設置爲 AP 模式(即熱點),這樣是爲了在戶外時無需連互聯網也能獲取到機器上的數據。(本步驟爲可選,配置方法網上也比較容易搜到)

安裝必要的軟件包
(若是Debian系的Linux系統)
apt install git-core python-serial python-enum nginx

把傳感器通過USB轉換線連接到樹莓派
連接前先在樹莓派上把內核日誌打開:
dmesg -w

連接後應該可以在終端屏幕上看到:

[19518.196577] usbserial: USB Serial support registered for generic				
[19518.205879] usbcore: registered new interface driver ch341      
[19518.205986] usbserial: USB Serial support registered for ch341-uart				
[19518.206065] ch341 1-1.2:1.0: ch341-uart converter detected        
[19518.212417] usb 1-1.2: ch341-uart converter now attached to ttyUSB0		

可以看到樹莓派識別到了傳感器。ttyUSB0 表示儀器的數據能傳送到樹莓派的這個接口上。這個代號下面還會用上。
接下來我們就可以用幾段小小的代碼來接受數據,並呈現出來了。

0x03

接下來就是從著名的 GitHub 上下載代碼,到樹莓派上(該命令會下載代碼倉庫到當前目錄;這裏的代碼在任何位置運行都可以;建議在 ~):
cd ~
git clone https://github.com/mdrights/aqi-share.git

運行 aqi 倉庫裏 python 文件夾下的 aqi.py:
cd ~/aqi-share/python/
./aqi.py

如果出現如下顯示就說明能工作咯:

PM2.5:  7.8 , PM10:  26.4
PM2.5:  7.7 , PM10:  26.0
PM2.5:  7.6 , PM10:  25.7
PM2.5:  7.6 , PM10:  26.0
Going to sleep for 1 hour...

該腳本默認每小時讀取一次數據(每次15組數據)。當然這是可以改的(在腳本的最後面)。(注意:該傳感器是有使用壽命的,約8000小時)
現在可以用手按下 Ctrl + C 把腳本退出。

如沒遇到問題,讓 aqi.py 開機自啓動:
echo "/root/aqi-share/python/aqi.py > /dev/null" >> /etc/rc.local
(各發行版略有不同。如以上行不通請自行解決)

0x04 呈現數據

做些準備工作:

echo [] > /var/www/html/aqi.json  
chown www-data:www-data /var/www/html

啓動 nginx:
service nginx start
update-rc.d nginx defaults

可以設爲定時任務,定時發送數據到 Matrix 上的特定羣組(网址见下面)。

0x05 查看數據

Posted on April 6, 2018