







摘 要:當前,我國提出了深層次工程教育改革的新工科建設理念,建設合適的實踐平臺對于培養學生的創新意識、工程意識、工程興趣、工程能力和應用能力具有重要意義。以大連海事大學物聯網工程專業為例,以智能家居為背景,以ESP8266作為傳感器節點,以樹莓派4B作為服務器,搭載HomeAssistant智能平臺,利用內網穿透技術實現智能家居系統內外網的訪問與控制,進而實現對家居環境的全面監測與控制。最后,通過網絡技術接入智能家居產品作為拓展。通過測試,系統功能滿足了預計的設計需求,具有良好的可拓展性與實用性,對學生進一步掌握物聯網技術、強化工程實踐能力具有重要意義。
關鍵詞:實踐平臺;智能家居;物聯網;ESP8266;HomeAssistant;網絡技術
中圖分類號:TP368.1 文獻標識碼:A 文章編號:2095-1302(2025)02-0-04
0 引 言
當前,我國提出了深層次工程教育改革新工科建設,努力探索和實踐中國特色工程教育模式,進一步打造多學科交叉融合模式,而實踐教育是工程教育改革的重要環節[1-2]。教師以實際項目作為實踐教育平臺,對培養學生的創新意識、工程意識、工程興趣、工程能力和應用能力具有重要
意義[3-4]。
智能家居是物聯網的典型應用領域之一。隨著智能產品的普及和5G技術的發展,物聯網技術在智能家居系統中的應用也得到了更大范圍的普及[5]。本文以大連海事大學物聯網工程專業為例,通過智能家居實踐平臺開發讓學生真實感受到物聯網技術在實際生活中發揮的巨大作用,從而打開物聯網的視界,進一步強化學生的工程實踐能力。
1 智能家居實踐平臺建設分析
智能家居系統涵蓋了物聯網工程專業中數據采集與處理、智能控制、嵌入式系統、網絡技術、通信原理等相關課程的知識體系[6]。通過實踐平臺的搭建,能培養學生設計、開發和應用物聯網設備和系統的能力,使其全面了解物聯網技術的發展趨勢。
本文旨在設計一款易于實現、能夠體現物聯網技術發展水平的智能家居系統。平臺使用樹莓派4B作為智能家居服務器,ESP8266作為傳感器節點,借助WiFi網絡技術與智能家居服務器通信。通過智能家居服務器接收處理數據并發出控制命令,實現對家居環境的監測以及對家中智能電器的遠程控制。此外,還可根據需求將市面上已有的智能家居設備接入本系統,對已有的智能家居產品進行功能拓展,并實現語音控制。
經過分析,本智能家居實踐平臺設計實現的功能如下:
(1)傳感器節點能夠讀取傳感器檢測數據,控制傳感器;并且傳感器節點可通過繼電器控制部分電子設備。
(2)建立智能家居服務器,實現服務器與傳感器節點間的通信。服務器能夠讀取和分析傳感器信息,向傳感器節點發送控制命令用來控制傳感器。
(3)通過Web界面、智能手機APP等,對家中情況進行實時查看和控制。
(4)能夠實現自定義功能,如:在可燃氣體傳感器檢測到可燃氣體體積分數超標時發出警報。
(5)能夠按照使用者的需求增加其他器件,如:智能門鎖、監視器等。
2 智能家居實踐平臺功能實現
根據上述功能,使用樹莓派4B搭建本系統的服務器,在樹莓派中安裝并開發基于Python的開源項目HomeAssistant。樹莓派處理能力強,工作穩定,功耗低,能夠完成智能家居服務器相關部分的工作[7-8]。Python是當今最流行的編程語言,具有良好的跨平臺開發特性,被人們廣泛使用。在開源項目基礎上,平臺既能更加方便快捷地實現智能家居所需要的功能,又能夠擁有自定義功能空間。通過ESP8266搭建傳感器節點。ESP8266是一款使用WiFi通信的小型控制器,它體積小巧且工作穩定,很適合用于家中[9]。
在傳感器選擇上使用低成本的硬件模塊,通過將傳感器模塊化能更方便快捷地增加、減少所需要(放棄)的功能。將所有設備通過智能家居服務器連接到互聯網,即使人不在家中,也能使用手機通過互聯網查看傳感器狀態,了解家中的情況。通過繼電器、紅外遙控等智能設備控制家中設備的停止與運行,并且能夠通過樹莓派自定義控制方法,當光照強度較低且有人經過時會自動開燈。
在本智能家居實踐平臺,基于樹莓派搭建可供訪問、控制的智能家居控制頁面,使用者可通過Web網頁、APP訪問控制平臺中的傳感器以及電子器件。同時,樹莓派通過WiFi無線網絡,采用MQTT協議與傳感器節點ESP8266通信,監控傳感器節點的數據及被控對象的實時狀態,并將其顯示在控制頁面上。樹莓派在顯示信息的同時,還將對接和處理收到的信息,并按照程序設定的邏輯,對特定信息進行響應。智能家居實踐平臺系統結構如圖1所示。
根據上述功能及結構可知,本系統功能的實現主要依靠傳感器節點采集與控制、智能家居服務器搭建、智能家居系統通信、外接設備與API接口。
2.1 傳感器節點采集與控制
在智能家居系統中,傳感器節點ESP8266模塊如圖2所示。通過I/O口連接傳感器以及電子開關等設備實現環境檢測和設備控制,然后通過MQTT協議,經由同一WiFi下的局域網,將數據發送到智能家居服務器中,并且通過MQTT協議,查詢是否有改變電子器件狀態的命令,以控制電子器件改變家居環境的狀態。由于ESP8266只有1路ADC端口,設計時可通過AD/DA模塊拓展模擬量通道數,通過I2C與ESP8266連接。
ESP8266搭載的所有傳感器采用輪詢方式進行數據更新。為了合理分配傳感器節點的能耗,設置ESP8266每隔10 s輪詢一次搭載的所有傳感器,并在獲得相關信息后延時一段時間。在這期間,ESP8266與樹莓派的MQTT通信協議不會停止,仍需確保控制繼電器報警的及時性。同時,ESP8266實時監測繼電器等設備狀態。當到輪詢時間時,ESP8266將從傳感器讀取的數據存儲到JsonData數據包中,通過client.publish()函數將數據發送到指定主題(topic)中。傳感器節點程序流程如圖3所示。
2.2 智能家居服務器
樹莓派4B(智能家居服務器)如圖4所示。在安裝樹莓派系統之后,安裝Python以及開源項目HomeAssistant所需要的軟件或程序,最后安裝HomeAssistant。通過安裝開源的MQTT實現Mosquitto平臺,借助MQTT協議與傳感器節點通信。基于開源項目,通過修改配置文件得到智能家居控制頁面。開發者能夠訪問控制頁面,從控制頁面查看傳感器信息和實現控制傳感器的功能;設置自定義功能,實現自動化控制。智能家居服務器主要完成以下工作:接收從各傳感器節點發送而來的信息,并對這些信息進行分析、顯示,之后基于這些信息發送合理的控制信號給傳感器節點,比如:當接收到的可燃氣體體積分數超標時,通過發送報警命令給傳感器節點,控制蜂鳴器報警,從而實現可燃氣體體積分數超標報警功能。
樹莓派上的HomeAssistant通過配置文件進行配置,使用YAML語言規范編寫,完成設備連接、信息處理、自動化控制等操作。需要注意的是,配置文件的語言格式、內容必須正確,這樣HomeAssistant平臺才能夠正常啟動,ESP8266發送的信息才能被正確顯示。
2.3 智能家居系統通信
傳感器節點通過WiFi與智能家居服務器通信。樹莓派使用HomeAssistant作為MQTT客戶端,通過配置MQTT服務器相關信息,正確連接到對應的MQTT服務器,否則將無法正常發送和接收消息。在樹莓派目錄下的配置文件中配置MQTT服務的代理、端口、用戶名與密碼,其中用戶名與密碼為配置Mosquitto時使用的賬號密碼[10]。樹莓派能通過HomeAssistant連接各種使用MQTT協議的設備,在樹莓派與傳感器節點通信之前,需要它們的主題位置與信息內容達成一致,即在樹莓派的配置文件中與ESP8266保持一致。只要傳感器節點與樹莓派連接在同一WiFi局域網下,它們就可以通過MQTT協議通信。同時,HomeAssistant開源平臺集成了現有大部分主流智能家居產品接口。傳輸的數據使用JSON格式,便于連接傳感器節點與智能家居服務器,并能夠將傳感器數據實時顯示在控制頁面上。
由于基于HomeAssistant搭建的智能家居平臺無法使用外網訪問,因此在平臺開發過程中,使用花生殼內網穿透服務,將原先只能在同一局域網下訪問的樹莓派產生的控制頁面進行了內網穿透,使控制頁面即使不在同一局域網下也能夠進行訪問操作,使得用戶隨時隨地都能通過手機或者電腦使用移動網絡訪問控制頁面,以此實現遠程控制。內網穿透流程如圖5所示。
2.4 外接設備與API接口
智能家居系統通過ESP8266接入傳感器,再由MQTT將數據傳入樹莓派,還能使用樹莓派中的HomeAssistant直連其支持的設備,如圖6所示。在本設計中采用接入溫濕度模塊DHT11的方式。除了溫濕度模塊,市面上大部分的智能家居產品,如:小米臺燈、飛利浦燈具等都能夠使用該方法直接接入樹莓派。此連接方式基于前人開發的驅動進行連接和控制,能夠方便快捷地連接市面上已有的產品,有利于系統今后的功能拓展。
在https://www.home-assistant.io/integrations/中搜索需要的電子產品后,將實例寫入樹莓派配置文件中,即可在HomeAssistant平臺檢測到電子產品并顯示在控制頁面當中。將配置文件中的內容傳入驅動程序中,以此控制傳感器的工作方式。
為了不通過傳感器就能夠得知外界的溫度信息,需要使用氣象網站提供的API接口,將京東天氣提供的API接口接入到樹莓派中,再通過HomeAssistant顯示氣象信息。在HomeAssistant的配置目錄下創建文件夾custom_components及Python文件,用于編寫京東萬象API接口的驅動程序。之后訪問京東萬象,注冊登錄獲取APPKEY,并將APPKEY寫入到配置文件中。在驅動程序中獲取配置文件中的信息后訪問京東天氣,并將獲得的氣象信息顯示在控制頁面中。
3 智能家居實踐平臺功能實現
根據上述設計,為了驗證本次智能家居系統各部分功能是否正常,在面包板上搭建智能家居系統硬件結構,如
圖7所示。檢測系統能否對各Web端、手機端的控制頁面進行讀取、控制。
通過MQTT將處于同一WiFi環境下的樹莓派與ESP8266連接在一起,從而實現了“無線”智能家居分布模式,并且完成了各子模塊的設計與功能實現,之后將其連接到智能家居系統中。訪問控制界面如圖8所示。
4 結 語
本平臺基于樹莓派和ESP8266,設計了一款易于實現且實用的智能家居系統,能夠從手機和電腦端控制家中電器、檢測傳感器數據。經測試,設計實現的智能家居系統功能滿足了設計需求。通過智能家居實踐平臺,能夠提高物聯網工程專業學生的創新實踐能力,促進理論知識與實踐相結合,提高學生對專業的認可度以及教師的實踐教學水平,達到實踐教學資源的整合和共享。
參考文獻
[1]姚威,毛笛,李飛,等.新工科建設中的“中國特色”探索—基于“新工科研究與實踐”項目文本的扎根分析[J].高等工程教育研究,2021(6):17-23.
[2]徐曉飛,沈毅,鐘詩勝,等.新工科模式和創新人才培養探索與實踐—哈爾濱工業大學“新工科‘Ⅱ型’方案”[J].高等工程教育研究,2020(2):18-24.
[3]趙生慧,陳桂林,劉進軍,等.應用型高校物聯網工程專業人才創新能力培養的探索與實踐[J].滁州學院學報,2017,19(5):115-118.
[4]周梅,張登銀,李養群,等.新工科人才創新創業能力培養實踐與研究—以物聯網工程專業為例[J].軟件導刊,2020,19(11):262-267.
[5]閆一航.物聯網驅動的智能家居發展現狀及前景展望[J].通訊世界,2019,26(2):216-217.
[6]張美平,吳德平,王燦杰,等.基于樹莓派的智能家居設計與實現[J].計算機系統應用,2019,28(8):109-114.
[7]張欣.基于樹莓派的智能家居控制系統設計研究[D].大慶:東北石油大學,2018.
[8]祝朝坤,王顯然.基于樹莓派與ESP8266的溫室環境智能監控系統的設計與實現[J].電子產品世界,2023,30(1):40-43.
[9]沈晨航,周俊.基于ESP8266 WiFi模塊和MQTT協議的游泳館水質監測系統設計[J].數字技術與應用,2020,38(5):148-151.
[10]方霞.基于MQTT協議的農業物聯網消息推送系統[J].計算機技術與發展,2018,28(9):168-171.
作者簡介:柳麗川(1987—),男,碩士,高級實驗師,研究方向為嵌入式系統開發、機器人運動控制。
林師江(1998—),男,研究方向為嵌入式系統開發。
收稿日期:2024-01-22 修回日期:2024-02-28
基金項目:大連海事大學2022年校級教學改革項目創新創業專項(2022Y127);遼寧省普通高等學校本科教育教學改革研究項目(遼教通[2022]166號-366);大連海事大學研究生教育教學改革項目(YJG2023509)