天天看點

利用行空闆單闆計算機打造智能家居系統

作者:趣業分享

設想一下,僅僅是輕點幾下,您就能實作燈光控制,同時實時監測室溫,行空闆單闆計算機結合 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連接配接字元串:[email protected]

按提示配置檔案,并指定作業系統類型為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本地網頁(http://10.1.2.3/pc/file-upload)完成這一操作。

打開Python主檔案,修改憑證資訊。

修改完成後,可以直接在VScode終端内或通過Unihiker GUI運作Python代碼,啟動項目。

關于《利用行空闆單闆計算機打造智能家居系統》活動的詳情,您可以通路“DF創客社群”了解更多。

繼續閱讀