台灣地震發生頻繁,有一些廠商就針對這種狀況,推出了地震預警的設備,像美麗蓮股份有限公司就推出了整合了地震預警,居家安全照顧的相關功能的產品(早知道預警機)。在台灣,有關於地震的訊息,由氣象局所提供的資訊是最正確的,而氣象局也有提供地震發生時的即時警訊的服務,不過好像目前只提供給跟氣象局有簽合約的單位使用。

氣象局所提供的即時地震資訊是以XML存放於接收電腦中的硬碟中,所以必須在硬碟特定目錄中有進來新的XML檔案時做即時的資料處理,讀取出相關的地震資訊以進行後續的動作(詳細作法可參考監控目錄中的檔案以簡易的方式來解析XML中的資訊)。在取得地震資訊後就可進行後續的預警資訊發送,以下是我所規劃的預警資訊發送架構

在我所規劃的架構中,取得地震資訊後,可將對於所有用戶都需發送的整體預警資訊,發佈至MQTT的伺服器上,關於MQTT的架設、資料的公佈與訂閱、驗證,可參考MQTT的架設與測試MQTT資料的抓取啟用MQTT的身份驗證,相關程式大概長這樣

在向資料庫伺服器取得用戶設備的經度與緯度後,就可計算用戶與震央距離、場址值、PGA值、由震央到達時間、預估到達時間、預估地震等級等數值。算出相關數值後,可根據地震等級的大小,針對不同的用戶產生對應的預警控制碼,一起發佈至MQTT的伺服器上,相關程式大概長這樣

與震央距離的計算方式

PGA與地震等級的計算方式

由震央到達時間的計算方式

在即時整體與個別預警資訊都發佈至MQTT伺服器後,個別預警資訊會被用戶預警設備主動接收,並進行依其中的預警控制碼所設定的動作。而預警系統伺服器會接收整體預警資訊,對所有用戶發送LINE預警資訊。打完了,感覺肚子有一點餓!