W14 - W18 System Integration & Final Project

實戰演練:真實模擬場景系統整合

將硬體控制、工業通訊與數據可視化整合為一體化解決方案。

場景實例:智慧自動化倉儲

在此模擬中,系統需自動監控環境(溫溼度)、偵測貨物位置(超音波/紅外線),並透過 RS-485 控制傳送帶馬達,最後將所有數據封裝為 JSON 格式,經由 MQTT 送往雲端中心進行邏輯判斷。

1
感測端:環境數據採集 (UART/RS-485)
2
閘道端:邏輯判斷與 MQTT 轉換 (Gateway)
3
遠端:異常告警與數據看板 (Grafana)
Factory Simulation Environment

整合驗證點 (Validation)

  • 端到端延遲: 從觸發感測到網頁更新不應超過 2 秒。
  • 斷線重連: 模擬 Wi-Fi 斷開,系統應具備自動重新連接 MQTT Broker 機制。
  • 資料一致性: 確保資料在庫存與看板上數值相同。

異常處理模擬 (Edge Case)

  • RS-485 雜訊: 模擬極端雜訊環境下,CRC 校驗錯誤時的重發機制。
  • Broker 宕機: 設定備用數據快取,確保數據不丟失。
  • 硬體故障告警: 設備心跳包 (Heartbeat) 遺失時觸發 Line Notify。

系統全鏈路資料流 (System Flow)

ESP32 + RS485
Field Device
MQTT Broker
Connectivity
InfluxDB
Time Series DB
Grafana
Dashboard UI

整合核心邏輯 (Python/MicroPython 範例)

def process_loop():

  # 1. 採集 RS-485 節點數據

  raw_data = rs485_master.read_holding_registers(addr=1, count=2)

  

  # 2. 封裝為標準 IoT 格式

  payload = { "temp": raw_data[0]/10, "status": "OK" }

  

  # 3. 發佈至 MQTT 主題

  client.publish("factory/line1/telemetry", json.dumps(payload))

  

  # 4. 本地邊緣邏輯 (Edge Logic)

  if payload["temp"] > 40: emergency_stop()

此邏輯展現了「邊緣計算」與「雲端通訊」的整合:在傳輸數據的同時,本地設備仍具備獨立處理緊急狀況的能力。