自己搭建智能家居伺服器mqtt
A. Linux搭建MQTT伺服器(mosquitto)並使用
### MQTT與Linux環境搭建
MQTT(消息隊列遙測傳輸)是ISO標准下基於發布/訂閱範式的消息協議,適用於硬體性能受限、網路狀況不佳的遠程設備。它在TCP/IP協議族上運行,適用於物聯網(IoT)場景,如感測器通信、醫療設備、智能家居等。
**Linux上MQTT環境搭建**
為了在Linux系統中部署MQTT伺服器,以CentOS7為例,遵循以下步驟搭建環境。
**1. 安裝必備軟體**
確保系統具備基礎軟體包,為後續操作做准備。
**2. 下載Mosquitto**
選擇穩定版本1.6.8,避免因新版本的兼容性問題導致的依賴缺失。從官方網站mosquitto.org下載,或通過wget命令直接下載並傳輸至伺服器。
**3. 解壓、編譯與安裝**
解壓下載的包,執行編譯與安裝命令。遇到libmosquitto.so.1找不到的問題時,通過修改鏈接路徑,確保動態鏈接庫的可用性。
**4. 創建配置文件**
替換默認example配置文件,根據需求調整埠、密碼文件位置、監聽埠、綁定網卡及日誌記錄等參數。
**5. 創建用戶組與用戶**
創建mosquitto用戶組與用戶,確保程序運行許可權正確。如不需特定用戶,考慮修改配置文件以適應環境。
**6. 啟動、查看與關閉程序**
啟動mosquitto服務,使用命令行工具檢查進程狀態與執行關閉操作。默認後台運行,通過ps命令查看後台進程。
**7. 本地測試**
使用訂閱者與發布者工具,設置相同topic進行消息交換。發布者發送內容至訂閱者,驗證消息傳遞。
**8. 修改默認配置**
**1. 關閉匿名用戶登錄**
在mosquitto.conf中修改allow_anonymous節點,設置為false,禁用匿名登錄功能。
**2. 設置用戶密碼文件路徑**
在配置文件中指定password_file節點,配置用戶密碼文件路徑,確保密碼存儲安全。
**3. 創建自定義用戶**
通過命令行創建用戶,並設置密碼。注意用戶信息存儲於指定路徑的配置文件中,密碼已加密。
**4. 重啟mosquitto服務**
完成配置修改後,重啟mosquitto服務,確保新配置生效。
**Python實現訂閱與發布**
在Python環境中,使用MQTT庫實現訂閱者與發布者功能。啟動訂閱者並連接至MQTT伺服器,驗證連接狀態。通過發布者發送消息至指定topic,訂閱者接收並顯示消息內容。