MQTT
MQTT 是一種輕量級的通訊協定,適合應用於物聯網(IoT)設備之間的通訊。與 Telnet 和 Web Serial 的被動訪問方式不同,MQTT 允許 RS232 伺服器主動將 COM 連接埠上的訊息發送至 MQTT 伺服器。這樣的特性使得使用者能夠即時地從遠端監控和控制設備。我們還準備了一個 MQTT 模擬 Serial 的 Python 腳本,您可以從 這裡 取得,來實現透過 MQTT 遠程訪問 RS232 伺服器的功能。
什麼是 MQTT
MQTT(Message Queuing Telemetry Transport)是一個基於發布/訂閱模式的網路協定,廣泛用於物聯網系統中進行設備之間的通訊。它是一種非常輕量級的協定,設計目的是為了在不穩定或低頻寬的網路環境中有效地進行消息傳遞。
在 MQTT 中,有三個主要的角色:
- Publisher(發布者):負責將訊息發布到某個主題(Topic)。
- Broker(中繼站):負責接收並分發訊息到訂閱了相應主題的客戶端。
- Subscriber(訂閱者):訂閱特定主題並接收訊息。
透過這樣的架構,MQTT 可以有效地處理許多設備之間的即時數據交換,適合用於 RS232 伺服器和其他物聯網設備之間的通訊需求。
使用 MQTT 進行遠程訪問
透過 MQTT,RS232 伺服器可以主動將 COM 連接埠的數據發送至 MQTT 中繼站(Broker),使得遠程的設備能夠接收到這些數據,並進一步進行操作。這樣的設置不需要所有設備在同一個內部網路環境中,因為 MQTT 中繼站可以作為中央節點來中繼訊息。
以下是如何透過 MQTT 進行遠程訪問的概念說明:
- RS232 伺服器作為 Publisher:RS232 伺服器將 COM 連接埠的數據發布到特定的 MQTT 主題上。
- 遠程設備作為 Subscriber:遠程設備(例如一台使用 Python 腳本的電腦)可以訂閱相應的 MQTT 主題,並接收來自 RS232 伺服器的數據。
- 不受網路限制:由於 MQTT 通過中繼站來交換訊息,設備可以在不同的網路環境中進行通訊,而不必局限於同一個內部網路中。
這樣的架構大大增加了靈活性和可擴展性,使得使用者可以從遠端進行 RS232 伺服器的管理和控制。
安全性提示
透過 MQTT 操作 RS232 伺服器時,請務必注意安全性。在本設備中,MQTT 通訊並不要求任何存取密碼或專用密碼來進行安全性保護,因此強烈建議使用者不要使用公共的 MQTT 中繼伺服器,因為這樣會導致您的數據暴露在公共網路中,存在相當大的安全風險。
重要提示:
- 強烈建議自行搭建 MQTT 中繼伺服器,並對其進行妥善的安全配置。
如何進行 MQTT 設定
在主選單中,您可以找到並選擇 MQTT Settings 來進行 MQTT 的配置,進入後將看到如下子選單:
---
MQTT Configuration Menu
---
1. MQTT Server :
2. MQTT Port : 1883
3. MQTT Login :
4. MQTT Password :
5. MQTT Topic :
B. Back to Main Menu
以下是每個功能項的詳細說明:
-
MQTT Server
-
這項設定用於指定 MQTT 中繼站的 IP 位址或域名。這是 RS232 伺服器要連接的 Broker 所在位置。
-
MQTT Port : 1883
-
這是 MQTT 中繼站的通訊端口,預設為
1883
。您可以根據實際的中繼站配置修改此端口,例如使用8883
來進行加密連接。 -
MQTT Login
-
這是 MQTT 中繼站的登入帳號,取決於您的 MQTT 伺服器是否設定了認證。輸入正確的帳號可以保護 MQTT 訊息的安全。
-
MQTT Password
-
對應於 MQTT Login 的登入密碼。建議使用強密碼來確保安全性,避免被未授權的使用者獲取存取權限。
-
MQTT Topic
-
這是 RS232 伺服器發布數據的主題名稱。遠端設備只需要訂閱相同的主題,便可以接收到來自伺服器的數據。
-
B. Back to Main Menu
-
完成設置後,可以按下
B
返回主選單,若進行了更改,請記得重啟設備以使設定生效。