郝潔 趙凌峰 梁毓豪 西北民族大學電氣工程學院
近年來,物聯網逐漸成為全球關注的熱點領域,作為物聯網中重要的一環,智能家居以物聯網為依托,將家中各類電器關聯在了一起,具有了多組件聯動、暖氣定時通斷、遠程控制、自動定時等功能。同時,因為其功能的復雜多樣,傳統鎖具已經無法完成一些比較復雜場景下的用戶對被控對象的查看,使用等權利。
應運而生的就是智能開關控制系統。該系統作為一個控制和管理平臺,不僅可以展示產品所處的環境溫度及濕度,而且還能通過配置開關狀態來實現遠程控制,提高了原有系統的靈活性和可維護性。可以看出,智能開關系統在智能家居中極具重要性。在我們日常生活中,方便可行成為我們所希望智能家居所應該具有的功能,本文以方便可行為前提,以物聯網為依托,通過手機APP遠程控制ESP-12F引腳的高低電平,該引腳與繼電器相連,繼電器作為開關,控制所嵌入設備的通斷。
經過各階段的全面分析,智能開關控制系統由以下幾個模塊構成。ESP-12F模塊,繼電器模塊,DHT11模塊,OLED 屏幕等模塊。在項目實現過程中,首先用IDEA軟件進行APP程序編寫,利用百度云物聯網核心套件檢測APP是否在線,直到成功在線表明軟件方面正常,再使用Eclipse軟件編寫ESP-12F上的程序,同樣利用百度云物聯網核心套件檢測ESP8266是否在線,直到成功在線表明硬件方面正常。最后我們根據畫出的原理圖導出PCB圖,進行合理的排版后交給工廠進行打印,最后嵌入到所需控制的家電等設備中。智能開關控制系統采用百度云的規則引擎進行消息流轉,將APP端的消息轉發到ESP8266,然后ESP8266通過改變引腳的高低電平來改變繼電器的狀態,從而控制所嵌入設備的通斷。智能開關控制系統具備良好的通用性,靈活性,實時性及易于操作性。
智能開關控制系統設計的總體設計框圖如圖1所示,本系統以ESP8266為主控制器模塊,將溫濕度傳感器所收集的數據經過IIC通訊傳給OLED屏幕顯示出來,同時ESP8266一直在等待APP發送電源開關指令,一旦檢測到發送的指令,立刻判斷是否與當前狀態相反,如果相反則執行操作,相同則保持不變。

圖1 總體設計框架
本系統采用有安信可科技公司開發的ESP-12F作為主控制器,處理消息的流傳以及控制引腳的高低電位。ESP-12F擁有業界領先的超低功耗32位MCU,并將其封裝在該模塊的核心處理器中。這使該模塊在體積小于普通MCU的同時,性能也得到了進一步提升。該模塊擁有的16位精簡模式使其操作方式更為簡單,方便使用者進行二次開發,同時也可接入到云端服務器,實現遠程控制。
ESP-12F Wi-Fi 模塊支持規范的 IEEE802.11 b/g/n 協議,完整的 TCP/IP 協議棧。以提供較大的實用性,為ESP-12F WiFi設備嵌入其它系統提供可能。
本系統采用DHT11模塊監測設備所處環境溫濕度情況,DHT11是一款能夠直接讀出數字信號的溫濕度傳感器。 其濕度的精度+-5%RH,溫度+-2℃,濕度所測范圍20-90%RH, 溫度所測范圍0~50℃。能夠滿足大部分環境下的要求,對于極端環境,我們也設有提示,希望使用者在操作時注意當前環境是否具有可操作性。
本系統采用0.96寸的OLED顯示器模塊顯示DHT11所采集的溫濕度數據。OLED 屏幕具有可視角度大、功耗低、具有自發光、不需要背光源,而OLED的功耗低使其更加適合應用于本系統,使整體能耗下降。
本系統還存在電源電路,按鍵指示燈電路,USB轉TTL電路,復位電路,外設接口電路。這些共同構成了本系統的控制電路。
電源電路模塊使用18650鋰電池,該電池具備重量輕、容量大、無記憶效應等長處,因此得到了廣泛應用。本項目采用兩節18650鋰電池,該電池一節輸出3.7V,經過端口時整合為5V。通過Micro USB接口輸入電壓。同時當需要修改一些系統參數時Micro USB接口也可以充當數據傳輸接口。
復位電路可以處理突發事件,防止程序跑飛、停止運轉等情況的出現。外設接口用于擴展,本系統將DHT11接入到外設接口。按鍵指示燈電路及USB轉TTL電路與燒錄程序相關。
本系統的數據收集及顯示模塊如圖2所示。

圖2 數據收集及顯示模塊
本系統使用Android Studio進行編程與導入到手機中,Android Studio 提供了集成的 Android 開發工具用于開發和調試。
APP界面主要包括4大區域,最上面的圖片文字展示區域,中間的電源開關區域,下面的溫濕度數據區域,最下面的繼電器狀態區域。具體如圖3所示。

圖3 APP界面展示圖
在AndroidManifest.xml文件里面設置網絡權限,使APP允許訪問網絡權限和打開網絡套接字。在activity_main.xml文件中設置APP界面布局及其ID名稱便于與ESP-12F所傳數據進行綁定。在MainActivity.java文件里面接收和發送數據,通過百度云物聯網平臺進行消息流傳,使ESP-12F收到改變繼電器狀態的消息。
本系統使用Eclipse進行編程,然后將.c文件編譯生成.hex文件導入到ESP-12F。其中mqtt_config.h為存放百度云的ID,用戶名,用戶密碼等配置信息,user_main.c存放設置百度云物影子MQTT的相關參數,以及收到APP端所發消息后的應對反應等。
本系統采用百度云物聯網核心套件 IoTCore,IoTCore具有強大的競爭優勢,用戶可依靠核心套件能力疾速創建物聯網服務的實例,實現唯一命名空間億級設備接入與管理,安全可靠地連接設備與云端而不必再為設備操心。核心套件提供包括上報采集數據、計算函數、流式計算、AI推理在內的一系列功能支撐,并可實現多數據多目的地的云端消息流轉,達到邊云融合一體的處理方案。
IoTCore的物可視功能可以使用拖拽式編程,只需將核心控件如儀表盤與物聯網流式數據進行對接,即可實現數據可視化,具體界面如圖4所示。

圖4 網頁端展示界面
程序流程圖如圖5所示:

圖5 程序流程圖
系統測試的目的在于判斷預期結果與實際結果是否相符,本文從三方面入手,包括實時數據上報的準確性、初始化狀態是否正常、APP遠程控制功能是否正常。最終測試結果如表1所示。

表1 系統測試方案及結果
根據測試結果,本項目實物設計基本符合預期設計目標。
受限于服務器的消息刷新頻率,網頁端及APP端溫濕度數據無法與設備端完全同步。目前,智能開關系統還無法全場景使用,仍需要對部分特殊環境進行進一步適配。但面對大部分環境已能夠達到遠程控制的效果,目前也隨著智能家居逐漸融入到百姓家中,為使用者帶來方便和快捷。