移至主內容

 🔍 全台最大壓力錶・溫度計・壓差計權威知識庫|HVAC・半導體・冷凍空調專家選型指南・完整技術資料・工業儀表監測教學平台 

台灣工業儀表領域少數長期深耕技術內容的平台,累積超過 2,400篇壓力錶、壓差計、溫度計選型、校正與製程應用深度文章,由資深工程師團隊持續更新

 
 

Modbus轉TCP/IP到AWS雲端:大型設施儀表監測系統完整導入指南

核心重點:昶特ATLANTIS提供Modbus儀表與邊緣網關採集解決方案,從現場測點到邊緣計算層完全負責。AWS雲端部署、應用層開發與整合由客戶自行負責。本指南提供完整的技術銜接範例,讓您的開發團隊無縫整合。

系統架構四層分責說明

層級功能說明ATLANTIS負責客戶自行負責
第一層:儀表層壓力錶、溫度計、流量錶等Modbus儀表✅ 設備供應、規格選型、校正認證
第二層:採集層(邊緣網關)讀取Modbus儀表,協議轉換,本地邏輯處理✅ 網關供應、RS485配線、Modbus輪詢配置、本地緩存、故障診斷
第三層:網路傳輸層邊緣網關→AWS之間的網路連線、協議選擇、加密傳輸✅ 提供HTTP/MQTT兩種接口,協議文件與認證方式✅ 網路環境配置、防火牆開放、VPN設置(如需要)
第四層:雲端處理層AWS Lambda、DynamoDB、數據存儲、預警邏輯、API開發✅ 完全由客戶負責。我們提供API對接文件與範例代碼
第五層:應用層Drupal儀表板、Google Chart圖表、SMS/Line預警✅ 完全由客戶負責。我們提供API格式與集成範例

🔴 重要:應用層責任邊界
 

ATLANTIS提供的邊緣網關只負責「數據採集與本地處理」。若您需要雲端監測、預警通知、儀表板展示,這些完全由您的開發團隊透過AWS服務自行建置。我們提供API文件與Python範例代碼供參考,但不提供云端部署或應用開發服務。

第一部份:ATLANTIS負責範疇——邊緣網關架構

1.1 典型的三層邊緣網關架構

第一層:感測器側(您的現場儀表)

  • Modbus RTU儀表(壓力錶、溫度計、流量錶等)
  • RS-485通訊線,最多127個儀表並聯
  • 每10秒輪詢一次全部感測器

第二層:邊緣網關(ATLANTIS提供)

  • 採集所有Modbus數據
  • 執行本地異常檢測(隔離森林演算法)
  • 本地快取72小時數據(網路中斷時補償)
  • 決定哪些數據上傳,降低雲端流量

第三層:網路傳輸(由客戶配置網路環境)

  • 邊緣網關透過企業LAN/WAN連接網際網路
  • 支援HTTP/HTTPS或MQTT over TLS兩種協議
  • 所有數據加密傳輸,支援VPN

1.2 邊緣網關的關鍵功能

功能說明好處
Modbus RTU輪詢每10秒讀取一次所有RS485儀表實時性強,延遲<1秒
本地緩存若網路中斷,自動存儲72小時數據網路恢復後自動補傳,無數據遺失
孤立森林異常檢測在邊緣層執行ML異常檢測不依賴雲端,故障秒級檢出
智能上傳策略正常數據5分鐘上傳一次,異常數據即時上傳降低AWS流量成本50~70%
雙重備援雙SIM卡、雙網口、電池備份99.5%可用性保證

1.3 邊緣網關上傳數據格式(ATLANTIS標準)

邊緣網關每5分鐘向您的AWS發送一次標準JSON格式。您需要在AWS後端建立HTTP/MQTT接收端點來解析此數據。

📤 邊緣網關上傳的JSON結構說明:

欄位名稱型別說明範例值
gateway_idString邊緣網關的唯一識別碼"GW-001"
timestampISO 8601UTC時間戳,所有測點的同步時間"2026-09-09T14:35:00Z"
readings[]Array所有感測器的測值陣列[{...}, {...}]
readings[].sensor_idInteger感測器編號(1~127)1
readings[].sensor_nameString感測器名稱,便於識別"熱水系統壓力"
readings[].valueFloat測量值3.5
readings[].unitString測量單位"bar" / "°C" / "L/min"
readings[].statusEnum邊緣層判斷的狀態"normal" / "warning" / "alarm"
edge_metricsObject邊緣網關自身狀態(CPU、內存、網延){"cpu_usage": 28.5, ...}

📡 HTTP傳輸細節:

  • 🔒 認證方式: Authorization 頭使用 Bearer Token 或 API Key
  • 🔒 簽名驗證: X-Signature 頭包含 HMAC-SHA256(body, SECRET_KEY) — 客戶需驗證簽名防止偽造
  • 🔒 Content-Type: application/json(UTF-8編碼)
  • 🔒 上傳頻率: 預設5分鐘一次(客戶可自行調整)
  • 🔒 超時設定: 網關等待AWS回應最多10秒,若超時則本地緩存,下次重傳

👉 AWS側需建立的接收端點:

  • ✅ HTTP端點:POST /api/v1/data/push
  • ✅ 驗證簽名:解析X-Signature,用HMAC-SHA256驗證
  • ✅ 解析JSON:提取gateway_id、timestamp、readings陣列
  • ✅ 寫入DynamoDB:插入sensor_readings表
  • ✅ 檢查預警:與sensor_config比較閾值,觸發預警邏輯
  • ✅ 返回HTTP 200:確認收訊成功

第二部份:客戶自行負責——AWS雲端整合範例

⚠️ 以下代碼由客戶開發團隊負責實現。ATLANTIS僅提供參考實現。
請確保您的開發團隊具備AWS、Python、Node.js或其他雲端開發經驗。

2.1 AWS Lambda函數邏輯 — 接收與驗證邊緣數據

AWS Lambda是無伺服器運算服務,完全由客戶部署與維護。以下是Python實現的關鍵邏輯流程:

🐍 Lambda函數的五大步驟:

  • 步驟1:簽名驗證 — 從HTTP頭取出X-Signature,用HMAC-SHA256驗證邊緣網關身份(防止偽造數據)
  • 步驟2:解析JSON — 提取gateway_id、timestamp、readings陣列
  • 步驟3:閾值檢查 — 逐筆讀取sensor_config表,比較測值與high_threshold / low_threshold
  • 步驟4:觸發預警 — 若超過閾值,寫入alarm_logs表,調用AWS SNS發送簡訊
  • 步驟5:存儲數據 — 將完整數據寫入sensor_readings(DynamoDB時序表),記錄received_at時間戳

技術棧要求:

  • Python 3.9+ + boto3(AWS SDK)
  • DynamoDB表:sensor_readings、alarm_logs、sensor_config
  • 環境變數:GATEWAY_SECRET_KEY(用於HMAC驗證)
  • IAM角色:允許Lambda讀寫DynamoDB與調用SNS
  • Lambda記憶體:512MB起(時序數據處理)
  • 逾時設定:60秒

偽代碼邏輯示意:

def lambda_handler(event):
  1. 驗證簽名 = HMAC-SHA256(body, SECRET_KEY)
  2. IF 簽名無效 THEN 返回 403
  3. data = parse_json(event.body)
  4. FOR 每個 reading IN data.readings:
      config = DynamoDB_get(sensor_id)
      IF reading.value > config.high_threshold THEN
          DynamoDB_insert(alarm_logs)
          SNS_publish_SMS(config.phone_number)
  5. DynamoDB_insert(sensor_readings) # 存儲全數據
  6. return HTTP 200 success

2.2 REST API設計 — 前端Drupal查詢儀表板數據

Drupal前端通過REST API從AWS後端拉取實時數據與歷史趨勢。API可用Flask、FastAPI或AWS API Gateway實現,由客戶自行開發。

🌐 兩個核心API端點:

端點A:查詢特定感測器數據

  • 📍 URL: GET /api/v1/dashboard/sensor/{sensor_id}
  • 📍 參數: hours=24 (可選,預設24小時)
  • 📍 返回格式: JSON,包含current_value、data_points陣列
  • 📍 流程:
      (1) 接收sensor_id與hours參數
      (2) 從DynamoDB查詢過去N小時的記錄(使用分區鍵 + 排序鍵)
      (3) 提取timestamp、value、unit三個欄位
      (4) 按時間排序,返回最新值與歷史點

端點B:查詢最近預警事件

  • 📍 URL: GET /api/v1/alarms/recent
  • 📍 參數: hours=24 (可選)
  • 📍 返回格式: JSON,包含alarm_logs表的預警清單
  • 📍 流程:
      (1) 掃描alarm_logs表過去N小時的紀錄
      (2) 返回alarm_type、sensor_name、actual_value、threshold、alarm_time
      (3) 按alarm_time倒序排列

技術棧建議:

  • Backend框架:Flask、FastAPI 或 AWS Lambda + API Gateway
  • 資料庫:Amazon DynamoDB(時序優化)
  • 認證:API Key / Bearer Token
  • 回應時間:< 500ms(前端不卡頓)
  • 快取:CloudFront CDN(降低DynamoDB查詢次數)

2.3 Drupal儀表板集成 — Google Chart圖表

在Drupal節點中嵌入JavaScript,透過REST API拉取數據並用Google Chart繪製實時圖表。由客戶的Drupal開發人員實現。

📊 Drupal前端的五大步驟:

  • 步驟1:載入Google Chart庫 — 從googleapis CDN下載chart loader
  • 步驟2:調用REST API — 使用fetch()呼叫/api/v1/dashboard/sensor/{sensor_id}?hours=24
  • 步驟3:轉換數據格式 — 將API回傳的data_points轉換為Google Chart認可的二維陣列
  • 步驟4:設定圖表選項 — 配置標題、軸標籤、顏色、刻度等
  • 步驟5:繪製圖表 — LineChart / ColumnChart / AreaChart取決於業務需求

技術細節:

  • 圖表類型:LineChart(趨勢)、ColumnChart(對比)、AreaChart(累積)
  • 資料刷新頻率:每5分鐘自動重繪一次(setInterval)
  • 互動功能:滑鼠懸停顯示數值、可縮放時間軸、下載PNG功能
  • 響應式設計:自適應手機、平板、桌面螢幕(使用Drupal主題)
  • 暗主題支援:背景#0a0e27、文字#e8eef5、線條#ffa500

Drupal模組建議:

  • 💻 Views模組 — 用於查詢與展示DynamoDB數據
  • 💻 REST API模組 — Drupal原生支援,提供JSON序列化
  • 💻 Custom Twig Template — 自訂前端佈局,嵌入JavaScript
  • 💻 Block系統 — 將各個監測點分組為多個Block,靈活組合

2.4 預警通知整合 — Line與SMS

當感測器超過預警閾值時,系統自動發送通知。Line與SMS由AWS服務整合,客戶負責API金鑰與通道設置。

💬 兩種通知方式的實現邏輯:

方式A:AWS SNS發送簡訊(SMS)

  • 📱 觸發條件: Lambda檢測到高預警或低預警
  • 📱 呼叫方式: boto3.client('sns').publish(PhoneNumber=config['phone_number'], Message=...)
  • 📱 訊息格式: "⚠️ [感測器名稱]異常\n現值:[值]\n預警值:[閾值]\n時間:[時間戳]"
  • 📱 延遲時間: Lambda觸發 + SNS排隊 + 電信商送達 ≈ 2~10秒
  • 📱 成本: AWS SNS約NT$1~2/條(取決於區域與量級)
  • 📱 配置需求:
      (1) AWS SNS主題建立(SNS Topic)
      (2) Lambda IAM權限允許PublishToTopic
      (3) 電話號碼格式:+886912345678(國際格式)

方式B:Line Messaging API發送訊息

  • 💬 觸發條件: 同上,Lambda偵測到異常
  • 💬 呼叫方式: requests.post('https://api.line.biz/v2/bot/message/push', json={...})
  • 💬 訊息格式: JSON結構,支援文字、按鈕、卡片等豐富格式
  • 💬 延遲時間: Lambda觸發 + Line API ≈ 5~15秒
  • 💬 成本: Line官方帳號免費(訊息推播按月計費)
  • 💬 配置需求:
      (1) Line Official Account(Line官方帳號)
      (2) Channel Access Token(保存在Lambda環境變數)
      (3) User ID(客戶提供,用於指定接收者)

預警邏輯的虛擬流程:

IF reading.value > config.high_threshold:
  message = "⚠️ [sensor_name]超溫\n現值: [value]°C\n警值: [high_threshold]°C"
  send_SMS(config.phone_number, message)
  send_Line(config.line_id, message)
  log_alarm_to_DynamoDB(alarm_logs)

IF reading.value BACK_TO_NORMAL:
  message = "✅ [sensor_name]已恢復正常\n當前: [value]°C"
  send_SMS_and_Line(message) # 通知已恢復

技術要點:

  • 🔐 安全性: 將Channel Access Token、API Key存在AWS Secrets Manager,勿硬編碼
  • 🔁 重試機制: SNS/Line發送失敗時,Lambda應重試3次
  • 防誤報: 同一感測器在5分鐘內超過閾值僅發一條預警,避免轟炸
  • 📊 通知追蹤: 記錄sms_status、line_status到alarm_logs表,追蹤推播是否成功

第三部份:真實案例研究

北台灣運動中心監測升級案例

客戶背景:北台灣某縣市運動中心,年均客流180萬人次,需監測熱水、冷卻、泳池等系統。

ATLANTIS負責的部分:

  • ✅ 供應25個Modbus RTU儀表(壓力錶12個、溫度計8個、流量錶3個、電表2個)
  • ✅ 工業網關1台,支援16埠並行Modbus輪詢
  • ✅ RS-485配線與現場安裝
  • ✅ 邊緣層孤立森林異常檢測演算法
  • ✅ 本地72小時數據緩存
  • ✅ 提供HTTP API與認證方式文件

客戶(或合作開發商)自行負責的部分:

  • ☁️ AWS EC2 t3.small執行個體租賃
  • ☁️ AWS Lambda函數開發(數據接收、驗證、存儲)
  • ☁️ DynamoDB時序數據庫設計與優化
  • ☁️ REST API開發(給前端查詢)
  • ☁️ Drupal儀表板模組開發
  • ☁️ Google Chart圖表整合
  • ☁️ AWS SNS + Line Messaging API預警邏輯

成效(6個月後):

  • 故障停機次數:2~3次/月 → 0.3次/月(↓ 85%)
  • 平均停機時間:2~3小時 → 15~20分鐘(↓ 85%)
  • 月均故障成本:NT$20,000 → NT$2,000(↓ 90%)
  • 年度人力巡檢節省:NT$195,000
  • 投資回本週期:4.2個月
4.2個月
投資回本時間

實施費用與責任清單

項目提供方說明費用性質
Modbus儀表ATLANTIS壓力錶、溫度計等,依規格報價報價制
邊緣網關ATLANTIS工業網關1台,16埠Modbus RTU報價制
現場安裝ATLANTISRS-485配線、Modbus位址設置、測試報價制
邊緣層軟體ATLANTISModbus輪詢、異常檢測、本地緩存含在網關費用中
AWS雲端費用客戶EC2、Lambda、DynamoDB、SNS等客戶承擔(月均NT$200~500)
後端API開發客戶開發團隊Lambda函數、REST API客戶自行開發或外包
前端Drupal開發客戶開發團隊儀表板、圖表、預警邏輯客戶自行開發或外包
第一年維保ATLANTIS邊緣層故障排查、固件更新報價制/年
💰 成本節省對比
• 傳統人工巡檢:NT$240,000/年
• 停機成本:NT$260,000/年
• ATLANTIS邊緣層投資:報價制(通常NT$80,000~150,000)
• AWS月費:NT$200~500/月
• 首年投資回本率:4~6個月

常見問答

❓ Q1:ATLANTIS為什麼不提供完整的雲端+應用層解決方案?

我們專注於工業儀表與邊緣計算,這是我們31年累積的核心競爭力。雲端開發與應用層涉及千變萬化的業務邏輯,應由您的開發團隊或雲端合作夥伴(如AWS認證商)來負責。這樣分工反而更專業、更靈活。

❓ Q2:邊緣網關發送的API格式能改嗎?

標準JSON格式已優化,建議保持。但若您有特殊需求(如增加自訂欄位),可在簽單前與我們討論,進行客製化修改(可能需額外工程費用)。

❓ Q3:提供的Python範例代碼可以直接用嗎?

代碼是參考實現,展示基本邏輯。生產環境需要加強錯誤處理、日誌記錄、性能優化、安全認證等。強烈建議由您的開發團隊Review與改善。

❓ Q4:如果客戶沒有開發團隊怎麼辦?

您可以:(1)向AWS認證合作夥伴洽詢雲端開發服務,(2)尋找Drupal或AWS顧問公司協助,(3)我們可介紹合作的系統整合商。費用另計,不在ATLANTIS報價內。

❓ Q5:邊緣網關可以離線運作嗎?

可以。邊緣網關內建72小時本地快取。若無網路連線,仍可獨立運作,繼續採集與異常檢測。恢復網路後自動補傳所有數據。

❓ Q6:支援MQTT協議嗎?

支援。邊緣網關可選擇HTTP/HTTPS或MQTT over TLS兩種協議。MQTT特別適合IoT環境,發布/訂閱模式更靈活。我們可提供MQTT配置文件。

❓ Q7:儀表故障時會影響整個系統嗎?

不會。網關自動檢測故障儀表(無應答),該測點標記為離線,但其他測點繼續正常工作。系統會記錄故障事件供維修參考。

❓ Q8:預警通知延遲有多久?

完整路徑:邊緣檢測(< 1秒) → 上傳AWS(< 2秒) → Lambda處理(< 1秒) → SNS/Line API(< 30秒) = 總計約30~40秒。即時性很高。

❓ Q9:能否與現有的SCADA或PLC系統並行?

可以。邊緣網關只負責Modbus數據採集,不影響既有系統。若要整合SCADA,需額外開發。建議咨詢系統整合商。

❓ Q10:三年內總投資成本大約多少?

ATLANTIS部分:報價制初投 + 年度維保費
客戶承擔:AWS月費(NT$200~500×36個月) + 人力或外包開發費用(取決於項目規模)
典型案例:首年回本,2~3年內總收益>初投10倍。

聯絡與後續步驟

準備升級您的設施監測系統?

第一步:聯絡昶特評估您的現場環境
第二步:我們提供邊緣層方案報價與技術規格
第三步:您評估雲端/應用層開發預算,選擇開發廠商
第四步:邊緣層部署上線,開發與整合並行

業務聯絡
電話:02-2820-3405
信箱:service@re-atlantis.tw
官網:re-atlantis.tw
地址:台北市北投區致遠一路二段109號

線上快速詢價
re-atlantis.tw/zh-hant/node/add/businesspartners

技術支援資源

  • 📘 邊緣網關技術文件:提供完整API規格、認證方式、JSON格式說明
  • 🐍 Python範例代碼:Lambda、Flask、異常檢測、通知邏輯
  • 🌐 Drupal整合示例:前端查詢API、Google Chart圖表、權限管理
  • 📊 客戶案例庫:5+個真實客戶的架構配置與成本分析
  • 💬 技術顧問:免費30分鐘諮詢,幫您評估是否適合這套方案

🎯 昶特ATLANTIS的承諾

我們提供「邊緣層到AWS API接口」的完整解決方案,讓您的開發團隊無縫銜接。不追求「一站式服務」,而是專注於邊緣計算與工業儀表——這是我們31年的專業所在。與我們合作的客戶,將獲得穩定可靠的數據源,剩下的創新空間交給您的團隊。