pico W 管理與狀態監控系統
本專案包含兩部分:
- 基於 pico W 的硬體設備管理與狀態監控系統。
- 基於 Python 的主控端程式,用於管理多個 pico W 設備的通信與指令控制。
該系統使用 WiFi 和 UDP 通信協議,實現設備的連線狀態監控、指令傳輸(如啟動、停止)、以及心跳信號檢測。
- 通過 HTTP 和 UDP 與伺服器進行通信。
- 支援接收 "start", "stop", "heartbeat" 等指令。
- 透過 LittleFS 進行數據存儲。
- 發送廣播訊息到所有設備。
- 接收設備回傳的狀態資訊。
- 支援指令輸入(start, stop, exit)。
- 動態顯示設備狀態。
- 硬體需求:
- pico W
- 軟體需求:
- 安裝 Arduino IDE。
- 安裝以下庫:
WiFi.h
HTTPClient.h
WiFiUdp.h
LittleFS.h
ArduinoJson.h
- 設定:
- 修改以下變數,根據您的網路環境調整:
ssid
:WiFi 名稱。password
:WiFi 密碼。responseAddress
:Python 廣播端的 IP 地址。localPort
和responsePort
:用於通信的埠。
- 修改以下變數,根據您的網路環境調整:
- 燒錄代碼到 Arduino 開發板。
- 硬體需求:
- 電腦。
- 軟體需求:
- Python 版本 >= 3.6。
- 安裝以下依賴庫:
socket
time
threading
curses
- 配置:
- 修改
broadcast_address
和port
變數,根據網段進行調整。
- 修改
- 燒錄程式後,開發板會自動連接到 WiFi。
- Arduino 程式將監聽指定的 UDP 埠號,並等待廣播指令。
- 執行 Python 程式。
- 使用指令控制設備:
- 輸入
start
:向所有設備發送啟動指令。 - 輸入
stop
:向所有設備發送停止指令。 - 輸入
exit
:結束程式。
- 輸入
- 程式將動態顯示設備的狀態,包括:
- 設備 ID
- IP 地址
- 任務狀態
- 最近回應時間
- HTTP 通信:支持 GET 和 POST 請求,可用網址控制 pico W。
- UDP 通信:接收並處理廣播指令。
- 設備狀態保存:使用 LittleFS 保存資料。
- 廣播訊息:發送啟動、停止和心跳指令。
- 設備監控:接收並解析設備的回應訊息。
- 用戶界面:動態顯示設備狀態,並接受指令輸入。
- 確保設備與 Python 程式處於同一網段。
- 廣播地址和埠號需根據您的網絡環境調整。
- 心跳訊號間隔和設備回應超時時間可根據需求調整。
- 若無法正常工作,檢查防火牆設置是否阻擋了 UDP 通信。