隨身空氣監測模組

模組介紹

WF8266R AIR

提供了隨身感測 PM2.5 及溫濕度的能力, 同時支援 USB 或 18650 電池供電, 輕便的設計讓你在戶外也能隨手查看空氣品值.

注意:設定時必須在區網操作

感測器

  • PLANTOWER PMS 系列
PMS3003
PMS5003
PMS5003T
PMS5003S
PMS5003ST
PTQS1005
  • 神榮 Shinyei PPD42NS
  • SHT31 溫濕度感測器
  • DHT22 溫濕度感測器


雲端服務器

  • ThingSpeak :透過物聯雲 APP 設定好 ThingSpeak 相關參數,立即上傳雲端平台。
  • 自訂伺服器 : 你也可以自行架設資料服務,將 AIR 資料上傳到自己的資料庫中,再做二次分析。

AIR 核心板

AIR 服務可選擇 2 種核心板

  1. WF8266R
  2. WF8266RS

使用腳位

PM25 POWER 14

DHT 12 / APRS Tx

LED 2

PM25 3

SDA 4

SCL 5

LED R 16

LED G 15

LED B 13

WF8266R 使用 ESP12S 晶片,天線則是 PCB 天線,在訊號強度會較為弱。

如果您的基地台離放置位置較遠,建議選用 WF8266RS 可外接天線,以確保傳輸和連線品質。

架構

快速上手

WF8266R AIR 是以 WF8266R 為基礎的擴增式應用,所以它是以層板的型式使用,以下2部影片示範了 組裝 和 第一次使用時需先完成 WF8266R 綁定 物聯雲 APP 的動作,這樣才能透過物聯雲 APP 中的應用商店將韌體替換成 AIR 版本。

物聯雲 APP

物聯雲 APP 提供了簡易監控和設定的介面,可到 Apple Store 或 Google Play 輸入 WF8266R 就可以找到或是這裡


成功更新為 AIR 版本的服務後,你會看到如左圖示,這個畫面只要你有網路連線,不管身在何處,都能掌握每台設備情況,預設 10 秒會自動更新一次。


WF8266R AIR 更新後將失去 WF8266R.js 的所有 API 功能,但 AIR 本身也有提供專用的 API,可以讓開發者很方便的獲取及操作。

WFCloud

https://cloud.wf8266.com

文字命令

AIR 同樣的也整合到了 WFCloud 平台的語音和文字命令,你可以建立一組文字命令,例如:空氣品質,並在 REST 指令填入 APP,CMD,TEMP 你就能在 LINE 或 FB 或是語音問說 : 空氣品質如何

文字命令中的 REST 指令可查看 開發者手冊 的 REST MQTT 分頁

APP,CMD,{CMD} 其中 {CMD} 可置換為以下指令

TEMP : 溫濕度和 PM2.5 PM10
AIR : {0} 警示語, {1} PM2.5, {2} 溫度, {3} 濕度, {4} PM10, {5} 二氧化碳(CO2), {6} 揮發性TVOC, {7} 甲醛HCHO, {8} 電量 

APP,CMD,AIR 自訂回應語句

當你需要自訂回應語和參數時,可利用 AIR 命令,並自行將參數 {0} ~ {n} 填入回應語句中。這些參數會自動替換為該對應數值。

氣象站套件

包含了風向 風速 雨量 溫度 濕度 氣壓 感測可以廣泛應用於農業,工業,氣候研究領域。

接線

  • APRS Tx 接 WF8266R AIR 12
  • APRS 5V 接 WF8266R AIR VCC
  • APRS GND 接 WF8266R AIR GND

氣象站控制板(原始數據)

c000s000g000t086r000p000h53b10020 

每秒輸出37個字元,包括換行符號CR/LF

c000:風向角度,單位:度。
s000:前1 分鐘風速,單位:英里每小時
g000:前5 分鐘最高風速,單位:英里每小時
t086:溫度(華氏)
r000:前1小時雨量(0.01 英寸)
p000:前24小時內的降雨量(0.01 英寸)
h53:濕度(00%= 100%)
b10020:氣壓(0.1 hpa)

整合性

WF8266R 預定支援了 LASS 平台服務,如果你願意將感測資料分享到 LASS 和 空汙地圖,那麼只需要在物聯雲 APP 的設定中指定好地圖座標即可完成整合。

AIR API

WF8266R AIR 提供了 RESTful API 做為操作介面,只需要利用簡單的 http 協定就能整合及運用,以下 API 為服務名稱,例如想要設定 AIR 的網路連線可資網址列輸入

IP

http://你的 AIR IP 位址/scan

這樣就可以設定了。所以你需要知道 IP 位址和要操作的服務名稱及參數,IP 位址可以在物聯雲 APP 中看到,同時在 AIR 的顯示器第4頁同時也有目前的 IP 及版本資訊。

mDNS

除了使用 IP 以外,你可以利用 mDNS 服務,AIR 預設的位址是

http://myairXXXX.local

Windows 用戶需要安裝 Bonjour Print Services : https://support.apple.com/kb/DL999?locale=en_US


AIR 顯示器換頁

換頁方式有 3 種

  1. 利用物聯雲 APP 的 《 及 》操作
  2. 按下白色鍵, 或是將 GPIO0 碰一下 GND
  3. 使用 RESTful API 服務


網路連接及更新

/scan : 連接路由器

使用 UI 來填寫 SSID 及密碼

/user/set : 設定 Wi-Fi 連接

參數 : ssid 連接基地台名稱, password 密碼

/firmware : 韌體上傳

手動上傳 BIN 檔更新


設備操作

/oled/next : 顯示器切下一個畫面

/oled/previous : 顯示器切上一個畫面

/oled/on : 打開顯示器

/oled/off : 關閉顯示器

/pm25s : 讀取神榮感測資料

/pm25g : 讀取 PLANTOWER 感測資料

{"PMCF10":113,"PMCF25":163,"PMCF100":198,"PMAT10":75,"PMAT25":108,"PMAT100":131,"PMCount03":5076,"PMCount05":105,"PMCount10":28928,"PMCount25":1400,"PMCount50":0,"PMCount100":0}

/sleep : 休眠

/rst : 重開機

/ap/on : 打開 AP

/ap/off : 關閉 AP

/dht : 讀取 DHT 系列溫濕度感測資料

參數 : pin 腳位, type 型號 (11,21,22)

/sht31 : 讀取 SHT 系列溫濕度感測資料

/aprs : 讀取氣象站

WindDir 風向, WindSpeedAvg_min 平均每分鐘風速 m/s, WindSpeedMax 最大風速 m/s, Rain_hour 時雨量 mm, Rain_day 日雨量 mm, C 溫度, H 濕度, BarPressure 氣壓 hPa

{"WindDir":225,"WindSpeedAvg_min":0.00,"WindSpeedMax":1.34,"Rain_hour":0.00,"Rain_day":0.00,"C":29.44,"H":64,"BarPressure":1008.90}


設定

/geo : 地點

參數 : lat 緯度, lon 經度

/config : 上傳更新頻率(秒)

參數 : timer 更新頻率, sleep 休眠時間

/oled/config : OLED 圖表更新頻率(秒)

參數 : timer 更新頻率

/temp/config 溫濕度感測設定

參數 : type 感測器種類(0 : DHT, 1: SHT)

/pm25/config 空氣品質感測設定

參數 : type 感測器種類 (0 : 神榮, 1: PLANTOWER A1/G3/G5/G7, 2:PTQS1005, 3:PMS5003T, 4:PMS5003S, 5:PMS5003ST)

/server/config : 資料上傳服務設定

參數 : url 主機網址, data 服務名稱及資料

資料參數 : {1} PM2.5, {2} 溫度, {3}  濕度, {4} PM10, {5} 風向, {6} 風速(分), {7} 時雨量, {8} 氣壓, {9} 二氧化碳(CO2), {10} 揮發性 TVOC, {11} 甲醛 HCHO 

例如 : 上傳到 http://yoursite/get.php?a=1&b=2&c=3, 其中 & 符號要換成 %26

url = http://yoursite
data = get.php?a={1}%26b={2}%26c={3}

/led/config : 彩色指示燈開關

參數 : state 狀態(0: 關, 1: 開)

/aprs/config : APRS 氣象站開關

參數 : state 狀態(0: 關, 1: 開)


其他

/payload : 上傳到 LASS 的資料格式

/app/info : 設備設定值及狀態

/app/scan : 取得設備附近 AP 清單

事件

提供簡易 IO 控制, 呼叫服務不帶參數時清空監聽值

參數 : value 判斷值, pin 觸發腳, out 輸出值 1 或 0, op 運算元 [0] = [1] < [2] >

pin 建議 13, 15, 16

/watch/temp 溫度監聽

溫度 > 29 將腳位 13 設為 1, 反之 設為 0
http://ip/watch/temp?value=29&pin=13&out=1&op=2

/watch/h 濕度監聽

濕度 = 80 將腳位 15 設為 1, 反之 設為 0
http://ip/watch/h?value=80&pin=15&out=1&op=0

/watch/pm25 PM2.5監聽

PM2.5 < 100 將腳位 16 設為 0, 反之 設為 1
http://ip/watch/pm25?value=100&pin=16&out=0&op=1

/watch/pm100 PM10監聽

PM10 < 100 將腳位 16 設為 0, 反之 設為 1
http://ip/watch/pm100?value=100&pin=16&out=0&op=1

警示

2017.06.29 增加

整合IFTTT Webhooks服務,當監聽條件發生時通知你

https://ifttt.com/maker_webhooks

/ifttt/maker IFTTT KEY

http://ip/ifttt/maker?key=XXX

/ifttt/alarm 警示條件

alert : 預警值
occur : 發生值
kpi : 監聽指標 [0]溫度 [1]濕度 [2]PM2.5 [3]PM10
event : IFTTT 事件名稱 正常事件,預警事件,發生事件

IFTTT Maker 參數 : Value1 監聽值, Value2 設備編號

例如 : 已設置事件 PM25A 和 PM25O ,當 PM2.5 值 〉70 時發送 PM25A, PM2.5 值 〉100 時發送 PM25O, 〈 70 發送 PM25G

http://ip/ifttt/alarm?alert=70&occur=100&kpi=2&event=PM25G,PM25A,PM25O

資料操作方式

如果想要將 AIR 整合到自行開發的系統你可以有以下方式

  1. 使用 RESTful 獲取 JSON 物件
  2. 使用 WF8266R.js 的 Web Component 程式庫,利用 JavaScript 操作
  3. 使用 PHP / ASP.NET / Node.js 等程式處理 AIR 經由 POST 過來的資料流

WF8266R.js

線上實作環境,將 AIR IP 填入即可利用 GPIO.pm25g 獲取資料

http://wf8266.com/wf8266r/Code?templateName=PM25G.html

歷史圖表

使用雲端服務器後,你便可以用這些資料來分析及查看相關趨勢。AIR 預設使用 ThingSpeak 做為資料平台,ThingSpeak 目前在合理使用範圍內是免費的,這個限制對一般使用者來說是相當夠用的。

圖表嵌入

取得你的 ThingSpeak Channel ID, 便可以在 WF8266R 平台查看相關圖表

 http://wf8266.com/wf8266r/air/view?cid=你的ID