用 RaspberryPi 偵測 pm2.5

因為有在用RaspberryPi偵測辦公室 溫 溼度、亮度等,想到現在很流行偵測 PM2.5,可以查查 LASS 專案。

我的目標就是把 PM2.5 的 sensor 裝到 RaspberryPi 上,所以參考 LASS 用的 PMS3003 G3 PM2.5 粉塵感測器 說明 這邊 還有 這邊 有。

因為接頭不一樣,所以要改裝一下,依照 LASS 安裝上面的接法 其中關鍵就是

>> 將 G3 PM2.5感測器的排線剪斷(沒錯,不要懷疑),並將第1,2,5根接線(分別為紫色、橘色、綠色)改裝成杜邦接頭
>> 將 G3 PM2.5感測器的第一根接線(紫)插入LinkIt One上的 5V 接腳,將第二根接線(橘)插入 GND 接腳,將第五根接線(綠)插入 RX 接腳 , 第四根(藍) 線插入TX接腳

但是 一句簡單的 "改裝成杜邦接頭" 真是太難了吧,不過 這就是 maker 的樂趣吧?? 怎麼做 去 youtube 找 例如 這個

接的時候,一樣重點是 第1,2,5根接線(分別為紫色、橘色、綠色)依序接到 5V 接腳, GND 接腳, RX 接腳。辛苦改裝後,可以用 Serial Console 測試看看!找到 usb serial 的線,也是可以找到 5v, GND and RX。

接接看

usb serial gpio

接到電腦之後會看到 /dev/ttyUSB0 之類的裝置,hexdump /dev/ttyUSB0 就看到一堆資料跑出來摟

我的接法

測試好了後,可以接到 RaspberryPi 上,一樣接到 5v, GND and RX。

我有寫一隻 python 可以處理 G3 資料 放在這邊

主要用法就是

git clone https://github.com/Thomas-Tsai/pms3003-g3.git
apt-get install python-pip python-serial
python g3.py

以上,預設是從 /dev/ttyAMA0 讀資料,有需要可以自己改

print air.read("/dev/ttyAMA0")

變成

print air.read("/dev/ttyUSB0")

其中,注意dmesg會看到很多sysrq的訊息,建議disable掉

echo 0 > /proc/sys/kernel/sysrq

可以把上面那行放進 rc.local 會比較方便吧?!

以上 g3 只能跑一次,無感... 建議放到 thingspeak, 細節就自己了解 thingspeak 和 monitor.py

跑出來會是這樣

我目前有三台,放在辦公室、客廳、小房間 辦公室

房間

客廳

Comments