期末專題:Raspberry Pi 地震觀測站

基於 Raspberry Pi 與 MPU6050 之簡易地震觀測站與即時速報系統

返回課程回顧首頁

1. 專題概述與動機

傳統地震觀測站造價高昂,難以在校園等局部區域進行高密度的部署。本專題利用平價微型電腦 Raspberry Pi 結合 MPU6050 六軸感測器,建構低成本的微型地震觀測站,從「邊緣端感測」到「雲端警報派發」(Edge-to-Cloud),完成了完整的物聯網應用。

核心目標包含:

  1. 實踐物聯網與邊緣運算:於邊緣端直接完成資料採集、濾波與演算法運算。
  2. 軟硬體整合實作:深入學習 I2C 資料匯流排通訊,以及利用 UART (PL2303) 進行底層系統除錯。
  3. 建構即時預警系統 (EEW):實作 STA/LTA 演算法,結合 Discord Webhook 達成即時地震速報派發。

2. 製作過程紀錄

從硬體接線到軟體程式部署,整個過程充滿了挑戰與學習。以下是我們實作過程中的珍貴照片:

互動小工具:GPIO 接線指南

點擊下方的腳位按鈕,查看 Raspberry Pi GPIO 各個腳位的功能與在本專案中的接線方式。

Raspberry Pi GPIO 腳位定義圖

UART 接線腳位:

I2C (MPU6050) 腳位:

點擊上方的腳位按鈕來查看詳細說明!

互動小工具:STA/LTA 觸發模擬器

調整下方的滑桿參數,模擬地震波到達時 STA/LTA 演算法是如何偵測到地震事件的。觀察當「短時窗能量」急遽上升並超過「門檻值」的那一瞬間,系統就會觸發警報!

背景監測中...等待 STA/LTA 比值突破門檻

3. 核心技術解析

STA/LTA 觸發演算法

本系統採用 STA/LTA (Short-Term Average / Long-Term Average) 演算法進行事件觸發。該演算法計算短時窗(反映突發能量)的均值,與長時窗(反映背景雜訊)的均值,當兩者之比值突破門檻值(Threshold = 3.5)時,系統即判定發生異常震動並啟動記錄與推播。

最大地表加速度 (PGA)

將 X、Y、Z 三軸加速度向量進行合成:

PGAvector = √(ax² + ay² + az²)

扣除重力加速度後取最大絕對加速度,轉換為 Gal 單位,並依據中央氣象署 (CWA) 震度分級表估算震度。

快速傅立葉變換 (FFT)

透過 FFT 將時域訊號轉換至頻域,找出震波能量最集中的主頻率。通常構造地震的主頻較低(1~10 Hz),藉此可輔助過濾非地震的假觸發。

MPU6050 初始化程式碼

from mpu6050 import mpu6050 import time try: sensor = mpu6050(0x68) print("成功初始化 MPU6050 加速度計與陀螺儀!") while True: accel_data = sensor.get_accel_data() # m/s² gyro_data = sensor.get_gyro_data() # deg/s temp = sensor.get_temp() # Celsius print(f"X: {accel_data['x']:.2f}, Y: {accel_data['y']:.2f}, Z: {accel_data['z']:.2f}") time.sleep(0.5) except Exception as e: print(f"初始化錯誤: {e}")

4. 實測成果:Discord 即時速報

當 STA/LTA 觸發後,系統會在一秒內完成波形收集,並利用 Python 的 Matplotlib 渲染高品質圖表,最後透過 Webhook API 傳送至 Discord。測站名稱:DA-AN IoT Station(大安災害觀測一號站)

最大地表加速度
8.637 Gal
估算震度
CWA 3 級
主頻率
17.87 Hz
Discord 即時波形與數據推播結果

開發小插曲:意外的「測站」定位

在製作與測試儀器時,我們因為環境限制,全程都是連著同學的手機網路熱點進行開發。這時我們突發奇想,想看看能不能透過網路設定,把目前「測站」的位置自動標示出來,當作觀測點的座標:

「結果抓取產生的定位,竟然完全不是我們實際所在的教室位置,而是同學所使用的電信網路『中央基地台』的機房位置!」

這個有趣的插曲讓我們學到了一課:依賴手機網路 IP 進行地理定位時,往往只能抓到 ISP 業者的實體機房或基地台節點。若要架設高精度的地震觀測站,未來勢必還是得外加真實的 GPS 模組來獲取經緯度!

5. 結論與未來展望

本專題成功驗證了以 Raspberry Pi 結合 MPU6050 建構微型地震預警系統的可行性。我們克服了底層硬體的 UART 通訊排障、防止樹莓派掉壓死機等工程難題,也在軟體層面完整實作了 I2C 通訊與 STA/LTA 觸發演算法,最終整合 Discord 的即時繪圖推播功能。

未來展望:

  1. 校園觀測網建置:於校園內部署多個節點,建構高密度的微型地震觀測網。
  2. 演算法優化:引入卡爾曼濾波 (Kalman Filter) 降低 MPU6050 的固有高頻雜訊。
  3. 機器學習判讀:累積足夠觸發資料後,可透過 ML 模型替代純 STA/LTA 判斷,降低誤報率。

相關資源連結