當(dāng)前位置:首頁(yè) >  科技 >  IT業(yè)界 >  正文

利用行空板單板計(jì)算機(jī)打造智能家居系統(tǒng)

 2024-04-29 15:20  來(lái)源: 互聯(lián)網(wǎng)   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

設(shè)想一下,僅僅是輕點(diǎn)幾下,您就能實(shí)現(xiàn)燈光控制,同時(shí)實(shí)時(shí)監(jiān)測(cè)室溫,行空板單板計(jì)算機(jī)結(jié)合 Nodemcu 的項(xiàng)目能幫您實(shí)現(xiàn)這個(gè)目標(biāo)。

作為智慧中樞,行空板將成為項(xiàng)目的核心,通過(guò)高效的MQTT通信協(xié)議,連接三個(gè)按鈕用以控制三個(gè)LED燈,搭配N(xiāo)odemcu實(shí)現(xiàn)精準(zhǔn)操控。此外,該項(xiàng)目還將整合DHT11傳感器,以全方位監(jiān)測(cè)室內(nèi)溫度變化。該項(xiàng)目被設(shè)計(jì)為初學(xué)者友好的家庭自動(dòng)化門(mén)戶(hù),通過(guò)簡(jiǎn)單步驟和最少的組件,您將不可思議地發(fā)現(xiàn)您所創(chuàng)造的空間魔法將如此輕松融入生活中。讓我們一起深入探索,打造一個(gè)更加智能的家。

項(xiàng)目所需硬件材料

一、行空板單板計(jì)算機(jī)

二、NodeMcu開(kāi)發(fā)板

三、DHT11溫濕度傳感器

四、三個(gè)LED燈

五、一塊面包板

六、3V電池

七、跳線

第一步:設(shè)置行空板與VScode

必備條件:

在計(jì)算機(jī)上安裝Visual Studio Code。在計(jì)算機(jī)和行空板上都安裝OpenSSH。

步驟:

安裝遠(yuǎn)程SSH擴(kuò)展:

打開(kāi)Visual Studio Code,點(diǎn)擊左側(cè)邊欄的方形圖標(biāo)進(jìn)入擴(kuò)展視圖(或按Ctrl+Shift+X快捷鍵)。

搜索“Remote - SSH”擴(kuò)展并安裝。

打開(kāi)遠(yuǎn)程 SSH 擴(kuò)展:

在VScode中按下F1或Ctrl+Shift+P打開(kāi)命令面板。

輸入并選擇“Remote-SSH: Connect to Host…”命令。

輸入行空板的SSH連接字符串:root@10.1.2.3。

按提示配置文件,并指定操作系統(tǒng)類(lèi)型為L(zhǎng)inux,默認(rèn)密碼為dfrobot。

連接成功后,VScode將打開(kāi)一個(gè)新的窗口,通過(guò)SSH方式直接訪問(wèn)Unihiker的文件系統(tǒng)和終端。

開(kāi)始編程:

現(xiàn)在你可以在Visual Studio Code中像直接在設(shè)備上操作一樣編輯文件、運(yùn)行命令并進(jìn)行行空板項(xiàng)目的開(kāi)發(fā)工作。

第二步:兩端使用的庫(kù)

NodeMcu端:

使用PubSubClient.h庫(kù)實(shí)現(xiàn)MQTT協(xié)議功能。

使用DHT.h庫(kù)處理DHT11傳感器數(shù)據(jù)。

通過(guò)庫(kù)管理器搜索DFRobot提供的DHT傳感器庫(kù)和PubSubClient庫(kù)并安裝。

行空板端(Python):

使用PyQT5庫(kù)創(chuàng)建圖形用戶(hù)界面(GUI)。

使用paho.mqtt.client庫(kù)實(shí)現(xiàn)MQTT通信。

其他必需庫(kù)如pinpong庫(kù),用于訪問(wèn)GPIO引腳和板載傳感器。例如,本例中用到了板載光線傳感器采集環(huán)境光強(qiáng)并根據(jù)預(yù)設(shè)指令更新文本顯示(這部分僅為測(cè)試目的,與主要代碼無(wú)關(guān),但你可以為其分配特殊任務(wù))。

安裝Python庫(kù):

在終端輸入以下命令安裝所需的庫(kù):

pip install PyQt5

pip install paho-mqtt

第三步:MQTT配置說(shuō)明

Python端MQTT配置:

設(shè)置MQTT服務(wù)器地址(MQTT_ADDRESS)為MQTT代理服務(wù)器的IP地址或主機(jī)名。

提供MQTT用戶(hù)名和密碼,在MQTT_USER和MQTT_PASSWORD變量中分別填入,并確保這些憑據(jù)能安全地訪問(wèn)你的MQTT代理服務(wù)器。

配置訂閱主題和發(fā)布主題,確保它們與ESP設(shè)備對(duì)應(yīng)的主題匹配。

NodeMcu端MQTT配置:

設(shè)置MQTT服務(wù)器地址(mqtt_server)為要連接的MQTT代理服務(wù)器的IP地址或主機(jī)名。

配置發(fā)布和訂閱的主題(one_topic和two_topic),確保它們與Python端對(duì)應(yīng)的主題一致。

填寫(xiě)MQTT的用戶(hù)名和密碼(mqtt_username和mqtt_password),以及唯一客戶(hù)端ID(clientID),確保它們與MQTT代理服務(wù)器中的設(shè)置相符。

第四步:Python代碼概覽

Python代碼結(jié)合了MQTT功能和PyQt5,構(gòu)建了一個(gè)智能家居控制界面,包括:

一、建立MQTT連接,使用憑據(jù)連接到MQTT代理服務(wù)器并訂閱特定主題接收消息。

二、利用PyQt5創(chuàng)建帶有標(biāo)簽按鈕的窗口,用于控制燈光和風(fēng)扇,并加載不同狀態(tài)(ON/OFF)的圖片。

三、使用LCD小部件顯示溫度讀數(shù)。

四、按鈕交互:點(diǎn)擊按鈕時(shí)切換狀態(tài),并發(fā)送對(duì)應(yīng)的MQTT消息以控制連接到ESP8266的設(shè)備(如燈泡、風(fēng)扇)。

五、光照感應(yīng):讀取環(huán)境光照強(qiáng)度,并更新標(biāo)簽顯示“白天”或“夜晚”。

六、一體化:將 MQTT 客戶(hù)端功能與 PyQt5 的事件處理集成,以實(shí)現(xiàn) MQTT 消息和圖形界面之間的無(wú)縫交互。

第五步:NodeMcu代碼概覽

NodeMcu基于ESP8266的代碼配置使其能通過(guò)MQTT代理服務(wù)器控制智能家居設(shè)備,關(guān)鍵部分包括:

一、Wi-Fi設(shè)置:使用指定SSID和密碼連接NodeMcu至Wi-Fi網(wǎng)絡(luò)。

二、MQTT配置:設(shè)置MQTT服務(wù)器詳情、發(fā)布和訂閱的主題以及MQTT憑據(jù)。

三、傳感器和輸出處理:集成DHT11溫濕度傳感器獲取讀數(shù),并定義GPIO引腳以控制輸出(如燈光和風(fēng)扇)。

四、建立與MQTT代理服務(wù)器的連接并訂閱特定主題接收消息;周期性發(fā)布溫度讀數(shù)到指定主題;響應(yīng)收到的MQTT消息,根據(jù)接收到的具體命令控制輸出設(shè)備(如燈光和風(fēng)扇)。

第六步:硬件連接

DHT11傳感器接線:

將DHT11傳感器的VCC引腳連接到NodeMcu的5V引腳,GND引腳連接GND,DATA引腳連接數(shù)字引腳D2。

輸出設(shè)備(本例為L(zhǎng)ED燈):

定義輸出引腳,例如int Out1 = D4; int Out2 = D5; int Out3 = D1;。 將LED燈正極(陽(yáng)極)連接到上述輸出引腳(D4、D5、D1),負(fù)極(陰極)或風(fēng)扇連接到NodeMcu的GND引腳。 如果使用3V電池,則將其正極連接到Vin或5V線,負(fù)極連接到GND端子。

第七步:運(yùn)行項(xiàng)目

從GitHub鏈接下載所有所需文件。

編程N(yùn)odeMcu:打開(kāi)Arduino代碼文件,更改憑證信息,然后上傳代碼。

對(duì)于Unihiker端,將文件復(fù)制到根目錄,可以通過(guò)訪問(wèn)Unihiker本地網(wǎng)頁(yè)(http://10.1.2.3/pc/file-upload)完成這一操作。

打開(kāi)Python主文件,修改憑證信息。

修改完成后,可以直接在VScode終端內(nèi)或通過(guò)Unihiker GUI運(yùn)行Python代碼,啟動(dòng)項(xiàng)目。

關(guān)于《利用行空板單板計(jì)算機(jī)打造智能家居系統(tǒng)》 活動(dòng)的詳情,您可以訪問(wèn)“DF創(chuàng)客社區(qū)” 了解更多。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
智能家居系統(tǒng)

相關(guān)文章

熱門(mén)排行

信息推薦