設想一下,僅僅是輕點幾下,您就能實現燈光控制,同時實時監測室溫,行空板單板電腦結合 Nodemcu 的項目能幫您實現這個目標。
作為智慧中樞,行空板將成為項目的核心,通過高效的MQTT通信協議,連接三個按鈕用以控制三個LED燈,搭配Nodemcu實現精準操控。此外,該項目還將整合DHT11感測器,以全方位監測室內溫度變化。該項目被設計為初學者友好的家庭自動化門戶,通過簡單步驟和最少的組件,您將不可思議地發現您所創造的空間魔法將如此輕鬆融入生活中。讓我們一起深入探索,打造一個更加智慧的家。
項目所需硬體材料
一、行空板單板電腦
二、NodeMcu開發板
三、DHT11溫濕度感測器
四、三個LED燈
五、一塊麵包板
六、3V電池
七、跳線
首步:設置行空板與VScode
必備條件:
在電腦上安裝Visual Studio Code。在電腦和行空板上都安裝OpenSSH。
步驟:
安裝遠端SSH擴展:
打開Visual Studio Code,點擊左側邊欄的方形圖標進入擴展視圖(或按Ctrl+Shift+X快捷鍵)。
搜索“Remote - SSH”擴展並安裝。
打開遠端 SSH 擴展:
在VScode中按下F1或Ctrl+Shift+P打開命令面板。
輸入並選擇“Remote-SSH: Connect to Host…”命令。
輸入行空板的SSH連接字符串:root@10.1.2.3。
按提示配置文件,並指定作業系統類型為Linux,默認密碼為dfrobot。
連接成功後,VScode將打開一個新的窗口,通過SSH方式直接訪問Unihiker的文件系統和終端。
開始編程:
現在你可以在Visual Studio Code中像直接在設備上操作一樣編輯文件、運作命令並進行行空板項目的開發工作。
第二步:兩端使用的庫
NodeMcu端:
使用PubSubClient.h庫實現MQTT協議功能。
使用DHT.h庫處理DHT11感測器數據。
通過庫管理器搜索DFRobot提供的DHT感測器庫和PubSubClient庫並安裝。
行空板端(Python):
使用PyQT5庫創建圖形用戶界面(GUI)。
使用paho.mqtt.client庫實現MQTT通信。
其他必需庫如pinpong庫,用於訪問GPIO引腳和板載感測器。例如,本例中用到了板載光線感測器採集環境光強並根據預設指令更新文本顯示(這部分僅為測試目的,與主要代碼無關,但你可以為其分配特殊任務)。
安裝Python庫:
在終端輸入以下命令安裝所需的庫:
pip install PyQt5
pip install paho-mqtt
第三步:MQTT配置説明
Python端MQTT配置:
設置MQTT伺服器地址(MQTT_ADDRESS)為MQTT伺服器的IP地址或主機名。
提供MQTT用戶名和密碼,在MQTT_USER和MQTT_PASSWORD變數中分別填入,並確保這些憑據能安全地訪問你的MQTT伺服器。
配置訂閱主題和發佈主題,確保它們與ESP設備對應的主題匹配。
NodeMcu端MQTT配置:
設置MQTT伺服器地址(mqtt_server)為要連接的MQTT伺服器的IP地址或主機名。
配置發佈和訂閱的主題(one_topic和two_topic),確保它們與Python端對應的主題一致。
填寫MQTT的用戶名和密碼(mqtt_username和mqtt_password),以及客戶端ID(clientID),確保它們與MQTT伺服器中的設置相符。
第四步:Python代碼概覽
Python代碼結合了MQTT功能和PyQt5,構建了一個智慧家居控制界面,包括:
一、建立MQTT連接,使用憑據連接到MQTT伺服器並訂閱特定主題接收消息。
二、利用PyQt5創建帶有標簽按鈕的窗口,用於控制燈光和風扇,並載入不同狀態(ON/OFF)的圖片。
三、使用LCD小部件顯示溫度讀數。
四、按鈕交互:點擊按鈕時切換狀態,併發送對應的MQTT消息以控制連接到ESP8266的設備(如燈泡、風扇)。
五、光照感應:讀取環境光照強度,並更新標簽顯示“白天”或“夜晚”。
六、一體化:將 MQTT 客戶端功能與 PyQt5 的事件處理整合,以實現 MQTT 消息和圖形界面之間的無縫交互。
第五步:NodeMcu代碼概覽
NodeMcu基於ESP8266的代碼配置使其能通過MQTT伺服器控制智慧家居設備,關鍵部分包括:
一、Wi-Fi設置:使用指定SSID和密碼連接NodeMcu至Wi-Fi網路。
二、MQTT配置:設置MQTT伺服器詳情、發佈和訂閱的主題以及MQTT憑據。
三、感測器和輸出處理:整合DHT11溫濕度感測器獲取讀數,並定義GPIO引腳以控制輸出(如燈光和風扇)。
四、建立與MQTT伺服器的連接並訂閱特定主題接收消息;週期性發佈溫度讀數到指定主題;響應收到的MQTT消息,根據接收到的具體命令控制輸出設備(如燈光和風扇)。
第六步:硬體連接
DHT11感測器接線:
將DHT11感測器的VCC引腳連接到NodeMcu的5V引腳,GND引腳連接GND,DATA引腳連接數字引腳D2。
輸出設備(本例為LED燈):
定義輸出引腳,例如int Out1 = D4; int Out2 = D5; int Out3 = D1;。 將LED燈正極(陽極)連接到上述輸出引腳(D4、D5、D1),負極(陰極)或風扇連接到NodeMcu的GND引腳。 如果使用3V電池,則將其正極連接到Vin或5V線,負極連接到GND端子。
第七步:運作項目
從GitHub連結下載所有所需文件。
編程NodeMcu:打開Arduino代碼文件,更改憑證資訊,然後上傳代碼。
對於Unihiker端,將文件複製到根目錄,可以通過訪問Unihiker本地網頁完成這一操作。
打開Python主文件,修改憑證資訊。
修改完成後,可以直接在VScode終端內或通過Unihiker GUI運作Python代碼,啟動項目。
關於《利用行空板單板電腦打造智慧家居系統》活動的詳情,您可以訪問“DF創客社區”了解更多。
(推廣)
來源:東方網 | 撰稿:DF創客社區 | 責編:谷晟 審核:張淵
新聞投稿:184042016@qq.com 新聞熱線:135 8189 2583