[Arduino / Genuino] 細懸浮粒子檢測 PMS7003 連線實作

漂浮在空氣中的粒子在好幾年前就已經有人提出 (想當年(約民國 94 年左右)當兵時就有聽這個名詞),只是不知道真實的涵意是什麼?直到看了「柴靜霧霾調調:穹頂之下」的影片之後,才真正了解到 懸浮粒子 (Particlate Matter: PM) 是這麼可怕文明產物。

目前在臺灣各處設置空氣品質監測站 (但並非很密集),收集到的數據即時提供在網站上給民眾查詢:

http://taqm.epa.gov.tw/taqm/tw/AqiMap.aspx

許多的學校(幼兒園、國中小、高中 … 等) 會參考這個網站提供的數據,來宣佈今日是否適合在戶外活動。另外還有一個全球性的空氣品質監測網站:

http://aqicn.org/city/taiwan/changhua/

無論是臺灣政府的空氣品質監測網站,還是全球性的空氣品質監測網站,不止提供 PM 的監測數據,還有綜合其它的氣體數據,如:臭氣 O3、二氧化氮 NO2、二氧化硫 SO2、一氧化碳 CO … 等;這些數據會納入 AQI 的評量中,評量後的結果就是空氣品質的狀況。

一台可以檢測 PM 數據的儀器不便宜,如果同時又能檢測甲醛等有害物質,價格就又更高。雖然說已經是在販售的成品,是比較方便又好看,但還是忍不住想要自己 DIY 一組檢測器看看。

網路上有許多創客利用 Sharp 出的 GP2Y1010AU0F 灰塵/粉塵 感測器,價格上很便宜,約新臺幣 220 左右。目前查到的資料是 GP2Y1010AU、GP2Y1014AU、GP2Y1050AU、GP2Y1051AU 都為灰塵/粉塵 感測器,以 GP2Y1051AU 為新型號。

由於有人不推薦使用 Sharp 感測器,據說是因為這系列型號都是使用紅外線的方式感測,再經由公式換算而得到數據,精準度普通。隨後推薦 G3 系列的產品,經查之後才知道,這是由攀藤科技所推出的產品,是間中國大陸的公司。

他們所推出的產品有 PMS 1003、PMS 5003、PMS 6003、PMS 7003、PMS A003 等系列,功用差不多,差在體積、風扇位置及提供的連接介面。

在臺灣的網拍賣 850 左右 (不含運)、電子零件網站賣 950 左右 (不含運)、在淘寶的官網賣 670 左右 (含運)。當然是直接從淘寶買,雖然需要花比較多的時間等待,但還是可以省下來的費用,還可以再買一些需要的零件回來。

但是收到商品的時候還挺讓人傻眼:

  1. 沒有附規格說明文件、連線說明文件,最後是利用 Google 查到相關的文件。
  2. 沒有連接線,只有一個針腳延長器
  3. 最慘的是到電子材料行、網拍上查詢,都找不到 1.25mm 的轉接線
  4. 後來在淘寶的官網查詢,才發現原來攀藤科技也有在賣轉接板。但已經焊接好了,就不用買了

最後,只好拿出錫線、焊槍、杜邦線,慢慢的一條一條焊接上去。焊接之前需要先參考說明文件上標示的接腳位置:第一排(左至右, 9 7 5 3 1)、第二排(左至右, 10 8 6 4 2),位置如果看錯了!很可能會讓 PMS7003  因為短路而燒掉。

1.25mm 的間距不太好焊接,後來找到順手的焊接方式:

  1. 先在線上焊上錫
  2. 再去焊接在針腳延長器

最後的顏色定義:

  • Pin1 = Pin2 = 紅色 = VCC
  • Pin3 = Pin4 = 黑色 = GND
  • Pin5 = 棕色 = Reset
  • Pin6 = Pin8 不焊接
  • Pin7 = 紫色 = Rx
  • Pin9 = 綠色 = Tx
  • Pin10 = 藍色 = Set

接著就是利用麵包板,將線路跟 Arduino 連接。我的連接方式:

  1. VCC – 接到 5V
  2. GND – 接到 Arduino GND
  3. Rx – 接到 Pin 9
  4. Tx – 接到 Pin 10 (如果不下達指令的話,這個可以不用接)

目前的測試結果,Arduino 不需要額外連接電源,直接利用 USB 的電力就行。接下來就是要理解 PMS7003 會傳送出來的資料格式長怎樣,才能做解析 (Parse)。

資料傳輸規格 (在附件說明書裡面可以找得到)

經過許多小時的測試,較為穩定版本的 Arduino 程式碼終於出爐 ^_^

輸出結果 (地點:房間內)

PMS7003 產品說明文件 (271 downloads)

4 comments

  • erkan

    is there a little error in parsing?
    got a long period of const count, and time to time really big counts and than again const periode of counts.

  • kaleaves

    你好,我是剛剛接觸Esp8266 amica 的mcu,近期我也買了pms 7003 ,但是我找不到用ardiuno IDE的去制作的方法,可以給我一些指導嗎?

    • Nick Mason

      PMS7003 官網 (http://www.plantower.com/content/?129.html) 上標示這項產品有 UART、PWM、I2C 等不同的通訊規格。我是買 UART 的版本,因此只需要將 Tx/Rx 接通,基本上就能讀到 PMS7003 偵測到的數據。我不知道你買到的是哪個通訊規格,這個你得要先確認。

      另外,我不太明白你的意思,是不知道如何使用 arduino ide 去燒錄程式到 ESP8266 內?還是不知道如何寫 arduino 的程式?

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *