茍 海,劉 堯,李 杰,劉朝飛,陳 越,姜博文
(六盤水師范學院,貴州 六盤水 553000)
本系統(tǒng)包括以STC89C51單片機為核心的總控制模塊、電源供應模塊、熱釋紅外傳感器模塊、攝像頭模塊、光強度檢測傳感器模塊等。熱釋紅外傳感器模塊和攝像頭模塊主要用來感應人體信號,其中,攝像頭模塊主要用來幫助單片機更加精確地識別人體。光檢測模塊主要是用APDS-9930傳感器實現(xiàn)對環(huán)境光強度的檢測,并且把主要參數(shù)輸入STC89C51單片機,以實現(xiàn)對教室燈光的控制[1]。
本系統(tǒng)使用STC89C51單片機作為控制核心,通過其與人形檢測傳感器(熱釋紅外傳感器、ESP32-CAM攝像頭模塊)、環(huán)境光強度檢測傳感器(APDS-9930)等外界感知的相互配合來實現(xiàn)智能控制燈光的目的。
2.1.1 控制核心
本設計以STC89C51單片機為系統(tǒng)控制核心。STC89C51單片機由CPU、ROM、RAM、串行輸入/輸出口、2個定時計數(shù)器/計時器、時鐘電路及中斷系統(tǒng)組成。
STC89C51可對中央處理器與存儲器集成于一個芯片的系統(tǒng)進行可編程計算機控制,是一種將自定義程序代碼導入單片機的程序。這不但可以有效節(jié)省通用編程器的額外購買費用,而且可以讓STC89C51更快地接收信息。系統(tǒng)框架見圖1[2]。
圖1 系統(tǒng)框架
STC89C51單片機兼容8051單片機,是新一代低功耗8051高速單片機,具有新的流水線和簡化的指令結構[3],可以通過編程拷入單片機實現(xiàn)對教室區(qū)域內燈光的控制。
2.1.2 電源模塊
將220 V交流電通過減壓處理轉換為5 V的直流電,再通過LM7805輸出5 V的穩(wěn)壓電源后可直接供單片機使用。
2.1.3 熱釋紅外傳感器模塊
熱釋紅外傳感器由場效應管適配器、干涉濾光片和檢測元件組成。熱釋紅外傳感器的功能主要是通過插入場效應管完成阻抗轉換來實現(xiàn)的[4]。直接使用熱釋紅外傳感器時,需要在使用前將上述轉換切換為電壓模式。在熱釋紅外傳感器模塊中,人體被作為第一感知信息,根據(jù)晶體表面被檢測區(qū)域的溫度變化。如果測得的環(huán)境溫度穩(wěn)定,輸出低電平,則傳感器無輸出。由于人體溫度與測量溫度不同,進入人體測量區(qū)域時傳感器會輸入高電平,人體發(fā)射的紅外線通過信號放大器后傳輸給熱釋紅外傳感器,為控制電路提供電反饋信號。
2.1.4 攝像頭模塊
攝像頭模塊主要是輔助熱釋紅外傳感器進行人體探測,因為在人體進入檢測區(qū)域后不動的情況下溫度不會發(fā)生變化,傳感器也就沒有輸出。此時作為輔助部件的ESP32-CAM攝像頭模塊起著判斷該區(qū)域是否有人的作用,強制讓熱釋紅外傳感器有輸出。攝像頭模塊主要是以YOLO(實時目標檢測系統(tǒng))檢測環(huán)境中的人類移動。
YOLO通過深度學習實現(xiàn)了端到端的實時目標識別。YOLO的特點之一是速度,YOLO意味著最高級別的物體識別,能比其他生物檢測系統(tǒng)更快地收集各種監(jiān)視數(shù)據(jù);其二是安裝和使用簡單,編程時只需要4條命令就可以讓YOLO開始工作。程序寫入YOLO后可以直接接入ESP32-CAM模塊使其進行人體識別工作。
2.1.5 教室燈光感應模塊
光學傳感器模塊主要采用APDS-9930傳感器,包括A/D轉換器、放大器、CPU、通信接口、存儲器等[4]。
APDS-9930封裝有8個腳,電和地各一個腳,I2C通信一個數(shù)據(jù)腳一個時鐘腳,還有一個中斷腳,可以根據(jù)用戶設置的光照強度或接近閾值來觸發(fā)中斷,還有兩個腳LEDA和LEDK分別為芯片內部紅外發(fā)光二極管的陽極和陰極,陰極直接連接芯片的最后一個腳——LDR。這個腳會根據(jù)用戶的設置產生不同頻率的驅動信號來驅動發(fā)光二極管。APDS-9930采用A/D轉換電路、數(shù)字信號傳輸和數(shù)字濾波技術,大大提高了傳感器的穩(wěn)定性。在功能方面,APDS-9930一方面可以檢測周圍的亮度,另一方面可以基于紅外測距原理檢測物體的接近程度。在物聯(lián)網(wǎng)使用方面,APDS-9930使用了數(shù)字通信接口,可以直接接入計算機,也能與標準工業(yè)控制總線連接。
在本系統(tǒng)中,APDS-9930會通過感應投影儀和教室內其他光源的強度大小來控制燈光開關,它采用一個8引腳封裝的I2C兼容數(shù)字環(huán)境光傳感器和紅外發(fā)光二極管來接近傳感器。環(huán)境光傳感器使用2個光電二極管來實現(xiàn)接近度檢測,具有出色的弱光性能。系統(tǒng)電路仿真圖見圖2。
圖2 系統(tǒng)電路仿真圖
本系統(tǒng)使用Keil C51軟件創(chuàng)建和設計程序。Keil C51和Proteus的總體結構是一個Windows或Proteus C51集成開發(fā)環(huán)境(Integrated Development Environment,IDE),可以處理整個開發(fā)、編輯、編譯、鏈接、調試和仿真過程。開發(fā)人員可通過使用IDE或其他編輯器編輯C源文件或程序集,并使用C51和C51編譯器編譯它們來創(chuàng)建對象文件。
系統(tǒng)程序流程圖見第117頁圖3,該圖描述的是整個系統(tǒng)的流程控制情況。上電復位后系統(tǒng)進入自動控制狀態(tài),當有人進出教室時檢測模塊會自動記錄人數(shù)的加減情況,并且會根據(jù)人數(shù)的多少與光強的大小來控制教室區(qū)域內燈的開關。當按下控制模式轉換按鈕后系統(tǒng)進入手動控制狀態(tài),此時就要通過人來控制教室區(qū)域內燈的開關。
圖3 系統(tǒng)程序流程圖
整個系統(tǒng)的調試包括硬件調試和軟件調試,開始應對硬件部分進行靜態(tài)調試,同時對軟件部分進行初步調試,然后再對硬件部分和軟件部分進行動態(tài)調試[5]。
1)硬件調試。硬件調試主要是進行靜態(tài)調試,目的是排除硬件設備故障。
2)軟件調試。利用模擬軟件對單片機的硬件、指令、運行狀態(tài)進行模擬調試,繼而進行整個應用軟件的開發(fā)。
3)動態(tài)調試。對于整個控制系統(tǒng)來說,軟件系統(tǒng)和硬件系統(tǒng)是緊密相連的。對整個系統(tǒng)進行調試時,需要利用Keil和Proteus等仿真工具對軟件系統(tǒng)和硬件系統(tǒng)進行調試和診斷。調試過程中軟件系統(tǒng)中的用戶程序還需要與硬件系統(tǒng)連接起來進行聯(lián)合調試,同時能夠實現(xiàn)對軟件和硬件進行檢查和診斷的功能。
在各系統(tǒng)模塊電路調試完成后,將預編好的程序加載到仿真軟件中。軟件加載成功后就能使硬件執(zhí)行程序對應的系統(tǒng)指令了。
本設計實現(xiàn)了對區(qū)域內燈光的智能控制,同時不影響原來對燈光的手動控制,這樣,當智能控制系統(tǒng)不能正常工作時可以通過手動控制開關對燈光進行控制。通過系統(tǒng)內多任務模塊的實現(xiàn),提高了系統(tǒng)的整體工作效率。經(jīng)過現(xiàn)實生活中的使用證明,系統(tǒng)各部件具有良好的穩(wěn)定性。假設設備運行平穩(wěn)可靠,設備設計可以使用可降低整體成本的廉價組件。在軟件開發(fā)中,信號是多任務處理,以達到控制照明的最終目的。與現(xiàn)有教室照明系統(tǒng)配合使用時,該系統(tǒng)可智能控制教室照明,降低成本,無需大幅改變原有電源配置。