Raspberry Pi DIY Seismometer — Full Implementation Guide
從 UART 終端機接線、Windows 驅動排錯、Wi-Fi 設定,到 MPU-6050 三軸加速度計程式撰寫, 完整記錄樹莓派地震儀的建置歷程,並展示期末實驗的量測成果。
Step-by-Step Tutorial
依照老師教學網站整理的六大步驟,從接線到 MPU6050 實作一步到位,
適用 Raspberry Pi 3 / 4 / 5。
標準的 6 芯 FTDI / PL2303 線路中,每根杜邦線顏色對應固定訊號。 與樹莓派通訊時,僅需接 3 條線即可運作。
| 顏色 | 訊號 | 樹莓派腳位 | 備註 |
|---|---|---|---|
| 黑色 | GND | Pin 6 (GND) | 必接 |
| 白色 | RXD | Pin 8 (TXD / GPIO 14) | 必接(交叉) |
| 綠色 | TXD | Pin 10 (RXD / GPIO 15) | 必接(交叉) |
| 黃色 | RTS | — | 懸空不接 |
| 藍色 | CTS | — | 懸空不接 |
| 紅色 | 5 V | Pin 2 (5V) | ⚠ 通常懸空;僅無外接電源時才接 |
若系統顯示「USB-Serial Controller D 驅動程式錯誤」或「裝置無法啟動(代碼 10)」,依序嘗試以下方法:
.exe驅動正常載入後,系統會分配一個通訊埠(如 COM4)。在 MobaXterm 的 Session → Serial 選單中設定:
| 設定項目 | 值 |
|---|---|
| Serial port | 對應的 COM(例:COM4) |
| Speed (bps) | 115200 |
| Flow Control | None |
成功連線後終端機顯示:
Debian GNU/Linux 13 raspberry1 ttyS0 raspberry1 login: sysop Password: ********
當輸入電壓跌破 4.63 V 安全底線時,系統會持續提示此警告,可能造成降頻、死機或記憶卡毀損。
在沒有顯示器時,透過以下三種方式快速連上 Wi-Fi:
sudo nmtui
最適合新版系統(Bookworm+),具備視覺化文字選單,不易打錯密碼。
sudo raspi-config
可設定國家代碼(如 TW),避免 5 GHz 連線問題。
sudo nmcli device wifi
password 參數,否則會報錯 key-mgmt: property is missing。
sudo raspi-config # → Interface Options → I2C → Enable
sudo i2cdetect -y 1
pip install mpu6050-raspberrypi
import time
from mpu6050 import mpu6050
# 初始化 MPU6050,預設 I2C 位址 0x68
try:
sensor = mpu6050(0x68)
print("成功初始化 MPU6050!")
except Exception as e:
print(f"無法初始化:{e}")
exit()
print("開始讀取資料,按 Ctrl+C 結束...\n")
try:
while True:
accel = sensor.get_accel_data() # 三軸加速度 (m/s²)
gyro = sensor.get_gyro_data() # 三軸角速度 (deg/s)
temp = sensor.get_temp() # 晶片溫度 (°C)
print("=" * 50)
print(f"加速度 → X:{accel['x']:.2f} Y:{accel['y']:.2f} Z:{accel['z']:.2f} m/s²")
print(f"角速度 → X:{gyro['x']:.2f} Y:{gyro['y']:.2f} Z:{gyro['z']:.2f} deg/s")
print(f"溫度 → {temp:.1f} °C")
time.sleep(0.5) # 每秒採樣 2 次
except KeyboardInterrupt:
print("\n程式已停止。")System Architecture
從感測到警報,全自動化執行,無需人工介入。
Hardware
以麵包板快速搭建原型,無焊接即完成感測電路,Raspberry Pi 透過 GPIO I²C 直接驅動 MPU-6050。
Experimental Results
當合力加速度 ≥ 1.0 g 時觸發警報,系統自動記錄前後 10 秒歷程並輸出時序圖與 3D 力向量圖。
X:+0.10g、Y:+0.24g、Z:+1.00g。
合力向量幾乎垂直指向 Z 軸(重力方向),水平分量甚小,
顯示此次觸發事件為垂直方向近場振動所引起。
本專案依照老師教學步驟,成功完成 UART 接線、驅動排錯、Wi-Fi 設定與 MPU-6050 實作, 並在此基礎上開發即時地震監測程式,實現聲光警報、滾動緩衝記錄與自動化數據視覺化功能。 量測結果顯示系統能正確辨識垂直方向近場振動,驗證了硬體電路與軟體演算法的正確性。
未來方向:換用高靈敏度 MEMS 地震計、接入 TSMIP 即時資料流進行比對, 或部署至戶外固定點進行長時間環境背景噪聲研究。