第七章 即時監測平台與自動預警通知系統
7.1 邊坡擋土即時監測平台
7.1.1 ThingSpeak平台簡介
ThingSpeak 為 Matlab 公司旗下開發的一個開源物聯網應用程式平 台,其免費提供雲端資料儲存及分析應用,透過他提供之 API 服務 (Application Programming Interface),可以很容易將感測器收集的資料 傳到雲端資料庫。
閘道器與 ThingSpeak 平台主要採用超文本傳輸協定(Hyper Text Transfer Protocol,HTTP),由監測現場之閘道器發出請求(Request)給作 為網路伺服器(Sercer)之雲端平台,伺服器會響應並建立連線通道,兩 者以TCP 連線,並於指定序列埠(port)進行資料傳輸。HTTP 通訊協定 通常使用GET 與 POST 進行連線請求,當使用 GET 進行連線時,會將 表單資訊附加在網址(uniform resource locator,URL)後方,而以 POST 進 行連線則會將表單內各欄位及其內容放置於HTML HEADER 內一起傳
輸至 URL 地址,較為保密,ThingSpeak 可採用 GET 或 POST 進行資 料傳輸。
上傳至ThingSpeak 之數據會儲存於雲端資料庫中,並以圖示顯示 於雲端網頁中(圖 7.1),簡易之顯示介面可清楚展示各監測物理量變化 趨勢,使用者可進入頻道進行資料上傳、下載等動作。
圖
7.1 ThingSpeak 雲端即時顯示平台 7.1.2 雲端顯示平台架構
即時監測平台為雲端伺服器平台的延伸運用,目的讓使用者可以 在物聯網上更方便、快速了解監測場址的各項資訊,故而視覺化、直覺 式的平台為本次設計初衷。本研究使用的是 Flask 網頁框架,Flask 是 一種基於Python 撰寫的輕量型網頁框架,其輕量型特性可以讓開發者 專注在網站邏輯開發,此外,Flask 保留了擴增的彈性,可以加入表單、
資料下載、身分驗證等各項功能,使網站設計得以完善。
平台架構示意圖如圖7.2 所示,此平台整合了 IoT 資訊平台資訊、
衛星影像、與該場址之預警值,提供使用者一個完整的現地監測與預警
值資訊,並將網站架設於個人伺服器中。具體執行步驟如下:
1. 設定場址之基本資訊:於個人伺服器中設定場址感測器編號、
種類、讀取API、經緯度、預警值等後續程式使用的基本參數。
2. 於個人伺服器中建立資料庫:在個人伺服器中建立一數據資料 庫可以達到備份資料、快速提取數據的目的。本系統使用 Microsoft Access 為數據庫程式,Access 程式可以快速建立數 據庫框架,並通過 ODBC(Open Database Connectivity)達到資 料庫存取。
3. 即時更新伺服器資料庫:即時監測平台需即時更新資料庫數據。
本研究使用Python 撰寫一網路爬蟲,抓取 IoT 平台監測數據,
即時同步個人伺服器資料庫。
4. 提取資料庫數據,展示於監測平台:利用數據庫的監測數據、
與場址之預警值進行分析,並將分析結果視覺化、表格化展示 於監測平台。進入監測平台首頁為身分驗證系統,如圖7.2 所 示,使用者欲使用此平台必須先註冊帳戶,並待管理者開通後 即可使用,系統管理者可依需求定義帳戶為訪客、計畫成員、
系統管理者三種權限,使用不同權限帳戶登入監測平台,可使 用功能有依權限而有所不同。
圖