但堂詠 張國慶 張紅亮
摘要:為解決教室無人時電器仍在使用,學校用電量大的問題,從用電時間方面進行研究,設計出一個系統。該系統會在預選設定的時間或紅外人體感應識別不到人體信號時返回對應信息至服務器,使用MQTT協議發送控制指令至通信單元,并在教室內使用ZigBee協議進行指令轉發驅動控制單元,達到控制電器的目的。實踐表明,該系統可以根據課表上下課時間自動控制電器開關或人為控制開關。
關鍵詞:自動化;人工智能;軟件開發;分布式
中圖分類號:TP274 文獻標志碼:A
文章編號:1009—9492(2021)03—0120—03
0引言
為了解決學校教室無人時電器仍在使用,導致學校用電量大及人力維護成本高的問題,本文從用電時間人手,開發一個智能系統以降低用電時間。目前的智能教室系統,有的只能人工操作,無法達到自動化控制電器;有的能自動化控制,但是缺少數據采集用來分析。本系統針對上述短板,采用了MQTT&ZigBee的物聯網M2M(Machine to Machine)模式,在達到自動化控制的同時,采集相關的數據進行分析,并按照對應的時間點或相關環境實現完全自動化,無需人員參與管理。該系統的使用不局限于高校的教學樓環境,類似于工廠、商場等高度集中的用電區域也可使用,從而達到自主管理,使更多的場合實現節能的理念。
1系統整體結構
系統整體結構設計主要有軟件端、硬件端以及服務器,通過以太網的方式搭建通信橋梁,構成一整個完整系統。
系統是由運行在Linux或Windows操作系統上的軟件端,通過讀取數據庫中的對應課表排表,形成判斷是否啟用或關閉用電設備的數據,并通過MQTT&Tomcat服務器與硬件端STM32控制板和CC2530通信板達成通信,將數據通過TCP/IP的網絡連接方式進行接收發,從而實現用控制板自動控制和監控教室中的空調、多媒體、電燈等用電設備,避免在無課或無人預約使用的時候造成教室用電浪費,達到高效節能的目的。系統整體結構如圖1所示。
系統的整體設計中考慮到模塊化因素,如紅外人體的檢測、智能門鎖感應等可根據相關需求自主添加相應模塊,軟件端也能適應性地識別相關模塊的添加,對該模塊進行匹配,實現指令接收發。
整套系統考慮到多級別調用,采用分布式設計,通過多級調用實現上層控制機對下層控制機的管理,并且所用軟件所搭建的框架也能夠多系統運行,對微型計算機的要求較低且兼容性更高。該設計有著利于管理和多兼容的特點,是對多間、多層、多棟的教學樓統一管理的最佳設計方案。
為順應現代智能移動設備的發展,該套系統還有對應的小程序、App版本,通過系統移植的手段,讓教室的管理人員和預約人員都能用移動電話等移動設備做到遠程控制、遠程監控或遠程申請。直接點觸控制的方式使用戶更加便捷地使用該系統,同時也符合現代科技發展的趨勢。
2硬件端結構
硬件方面,使用搭載LAN8720芯片,帶有以太網口的STM32單片機,運用MQTT協議接收并解析服務器發送的指令,可以控制繼電器等模塊或者將指令從串口發送出去。CC2530通信板使用串口連接STM32單片機,使用ZigBee協議,負責將從STM32單片機發出的指令傳到其他連接CC2530通信板的單片機,用來控制其他電器。
2.1指令接收和發送
該系統采用MQTT協議,系統信息流向過程:控制端發布指令到代理服務器,代理服務器將信息再發布到其中一塊STM32單片機上,該單片機作為教室指令傳輸中轉站,然后該單片機通過CC2530使用ZigBee協議將指令發送到其他終端。
2.1.1基于MQTT協議的信息收發
MQTF是基于客戶端/服務器的傳輸協議,受控終端不必知道控制端的IP和端口,控制端也不必知道受控端的IP和端口,受控端和控制端只要連接到代理服務器上,終端訂閱了相應的主題,只要有終端使用這個主題發布消息,訂閱者就會收到信息。
基于MQTT協議的特性,STM32需要使用以太網連接到代理服務器,然后訂閱相關的主題,當控制端需要使用相關主題發布指令來控制電器,單片機就可以接收并解析指令,從而選擇控制電器或者再將指令繼續發送。如圖2所示。
2.1.2基于ZigBee協議的信息收發
ZigBee是低速短距離的無線傳輸協議,在一定范圍內,使用該協議的設備會自動進行組網,一般會組成星狀拓撲結構。該網絡中的設備會以3種形式存在:(1)路由器,負責將信息轉發;(2)協調器,負責組網和管理網絡;(3)終端,是信息傳輸終點。
基于ZigBee協議的特性,當MQTT服務器將指令發送到其中一塊STM32單片機上,經過解析后,若發現該指令不是該單片機所需,則STM32單片機通過串口將指令傳到CC2530通信板。通信板作為ZigBee網絡中的路由器,將指令發送到ZigBee網絡中的其他終端,當其他終端收到指令后,根據指令執行操作。如圖3所示。
2.2用電器控制
控制系統使用的是STM32單片機和繼電器模塊。STM32單片機是主要控制系統,接收從MQTF代理服務器或者CC2530通信板傳送來的指令。單片機連接繼電器,當收到指令后,單片機控制相關10口,進而控制繼電器,繼電器本身連接在電器的電線上,從而達到由單片機間接控制電源開關。
2.3總體結構
每間教室里有多個由STM32單片機和CC2530通信板組成的整體。其中一個整體里的STM32連接通過以太網連接MQTT代理服務器,稱為總機,CC2530在ZigBee網絡中作為路由節點。
當指令從控制端通過代理服務器發布到總機,總機接收并解析指令,然后將指令由串口發送到CC2530路由節點,路由節點再將指令發送到各個終端,然后以控制繼電器的開關間接控制電器的開關。如圖4所示。
3軟件端結構
在軟件設計上,采用Qt框架對整套軟件做可視化設計,通過可后臺運行和圖形用戶界面人為控制的設計以及數據庫的建立,構成整個軟件結構。軟件與硬件互相配合,實現遠程控制管理的模式。
3.1圖形用戶界面與內部邏輯
運用Qt圖形用戶界面開發框架開發可視化界面,并在后臺做相關數據的處理。例如在監控用電器是否為工作狀態時,回傳數據的分析和判斷;將電源啟動指令發送等。
軟件的界面設計主要對用電器監控視圖與用電器開關控制視圖2個界面做開發。
(1)用電器監控界面中,其主要形式為監控視圖。大屏監控模式可具體到每個教室用電器的情況,管理員可觀察用電器的工作狀態,此界面可與用電開關控制視圖在同一界面上顯示,也可單獨顯示,但只有監控畫面,無法做到控制其用電器的開關。
(2)用電開關控制視圖中,有各個教室用電器的開關按鈕,也有整個教室的所有用電器的開關按鈕和單個用電器按鈕的開關或其他組合開關,該界面也可單獨顯示,做到一鍵開關的功能。軟件界面如圖5所示。
同時,軟件內部本身有著相關邏輯的實現,如指令的轉換識別、數據的遍歷排序等,采用C++的代碼風格實現基本的運算處理和算法設計。
3.2數據庫搭建與數據接收發
為了與學校原先的數據庫匹配且相關數據不交叉,需要重新搭建數據庫,并在數據庫的數據中插入學校原先的課程數據安排。
在聯合數據庫的作用下,在軟件內部通過相關邏輯代碼將數據轉化互通,形成時間排序表,利用軟件內部時鐘跟國家授時中心標準時間的北京時間做核對,在對應時間段內對不同的用電器發送指令;同時可視化界面可隨意控制某一特定用電器的工作狀態,達成人工可控、并行自動化的效果,意味著如果軟件在失去了可控面板不能人為調節的情況下,也能根據課表自動化運行,不受影響。
3.3軟件匹配與IP尋址
在軟件運行后,需要自適應的匹配。匹配過程類似于密鑰連接,通過廣播信號的方式與路由器或相關網絡設備獲取許可,得到數據接收發的權限。
將軟件運行在一計算機內,并將其跟一服務器連接,服務器中有著各個教室路由器的IP地址,通過IP地址的匹配對應到相應的教室,通過以太網并能將數據指定傳輸到某一單片機,讓單片機執行控制任務。其中數據庫中的課表也會隨著預約教室、調課等情況作出調整。IP尋址方式如圖6所示。
4軟硬端間通信橋梁
在軟件和硬件的搭橋上,考慮到實際情況的數據通信情況,固采用多級分布式路由,通過匯總的方式與服務器之間進行訪問,再由服務器與軟件客戶端之間的API調用形成整個數據的回路。
服務器為整個橋梁的一個中轉站,用戶在客戶端或者小程序執行了相關有效操作時,要先將數據調用服務器的相關接口通過Session在前端、后端之間傳輸數據,同時服務器在收到前端、客戶端的相關指令后,會進行對應的操作。例如尋址,找到要執行當前任務對象對應的IP,再通過硬件部分的多級路由內部尋址,多次級別傳輸最終找到目標對象,如某教學樓某教室的燈,通過找到該對象后再對其進行對應的指令操作,如開燈、關燈、返回目標的狀態信息。
硬件部分考慮到安全等相關因素,所有用電器的啟動、關閉、信息返回都由服務器的后臺程序自動調用以及客戶端或小程序人為操控,硬件單體無法自主調用。在服務器發送相關的指令并在對應的用電器接收到后,硬件部分會通過一系列的有線、無線數據傳輸技術,將需要的數據(如燈的狀態、空調的狀態)回傳給服務器。上述的硬件信息獲取過程只有在客戶端或者小程序聯網后,主動或被動向服務器發送請求下才會執行。軟硬件連接方式如圖7所示。
5實驗測試與分析
本項目完成系統的軟硬件設計和系統搭建,完成實驗和功能調試,在相關教學樓教室現場測試,滿足要求。管理界面如圖8~10所示。
6結束語
本文介紹了基于STM32與Qt框架的智能教室節能管理系統,該系統為減少學校教室用電量及人力成本,從用電時間著手,主要是控制電器開關,設計出此自動化系統。與傳統的智能教室系統不同,該系統將服務器和路由器建立聯系,在預選設定的時間或紅外人體感應識別不到人體信號時,返回對應信息至服務器,通過服務器發送指令控制教室電器,大大降低了教室用電成本以及人力維護成本。本設計成果也可以應用到其他場所,具有一定的經濟和社會效益。