[App Inventor] LASS 測站資料查詢
LASS(Location Aware Sensing System)是一套開源和公益的「環境感測器網路系統」,是一群熱情的朋友針對空氣污染所建置的系統。由於空氣品質是小範圍的變化,例如校園內與十字路口可能只差50公尺,但空氣品質應該差很多吧!LASS就是讓有意願盡一份力的朋友,都能將感測器的資訊丟上LASS server,完全是 bottom-up 的概念,在一年多的時間之內就已經是相當知名的專案了。
LASS 針對許多物聯網開發板(Arduino、Raspberry Pi、LinkIt ONE、Realtek Ameba等等)都有現成的程式碼可以套用,裝置上線之後就能在LASS空汙地圖 看到各個測站的狀態。也可以購買套件包喔!
本文將說明如何使用 App Inventor 取得 LASS 各測站的資料,格式為JSON,網址為http://nrl.iis.sinica.edu.tw/LASS/last-all-airbox.json
接著點選[選擇站點]就可以看到各個測站的內容。請注意App Inventor 會把JsonTextDecode結果按照字母排序,而非原本定義的順序。我覺得有點多餘啦,但總之它是這樣做了。
點一個喜歡的站吧!以下是三組測站的執行結果,分別是在台中南屯、加拿大與台北市河堤國小。測站名稱為自訂,所以不一定可由測站名稱看出所在地,但是透過Google Map定位就很方便囉
程式說明
App功能很簡單,取得資料之後把 JSON 轉成陣列(list)放入 Listpicker,點選某個站之後會把該站的資料顯示在畫面上,並可將該測站開啟於手機的 Google Map (透過 App Inventor 的 ActivityStarter 把測站經緯度資料傳給 Google Map)| {
"gps_lat": 25.04, "gps_num": 9, "s_t0": 24.75, "SiteName": "74DA3895C458", "timestamp": "2016-11-29T09:36:32Z", "gps_lon": 121.614, "s_d0": 40, "s_h0": 73, "device_id": "74DA3895C458" } |
緯度 GPS衛星數量 溫度 測站名稱(可自由設定) 時間戳記 精度 PM2.5濃度 濕度 裝置ID |
Designer頁面
介面排版方式沒有特別規定,本app重點元件有- web:取得指定網頁內容,並將 JSON格式轉為陣列
- ActivityStarter:將測站經緯度資料傳給手機上的 Google Map 來檢視該測站位置。並設定其屬性:
- Action: android.intent.action.VIEW
- ActivityClass: com.google.android.maps.MapsActivity
- ActivityPackage: com.google.android.apps.maps
Blocks頁面
- 宣告一個 temp 用來儲存 JsonTextDecode 之後的陣列。按下按鈕去取得LASS JSON網頁內容。Web元件會在爬完網頁之後,呼叫 Web.GotText事件,在此我們將 reponseContent(就是網頁文字)轉為陣列之後存入 temp。完成之後會把 Screen.Title 設為OK,代表做完了。
- 指定 ListPicker內容
- 點選後取出相關資訊
操作
初始畫面如下,請點選[更新資料]按鈕,完成之後會在 Screen.Title 顯示OK,代表資料都爬回來了。![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |








留言 💬 (0)
還沒有留言,來當第一個。