茍 海,劉 堯,李 杰,劉朝飛,陳 越,姜博文
(六盤水師范學院,貴州 六盤水 553000)
本系統包括以STC89C51單片機為核心的總控制模塊、電源供應模塊、熱釋紅外傳感器模塊、攝像頭模塊、光強度檢測傳感器模塊等。熱釋紅外傳感器模塊和攝像頭模塊主要用來感應人體信號,其中,攝像頭模塊主要用來幫助單片機更加精確地識別人體。光檢測模塊主要是用APDS-9930傳感器實現對環境光強度的檢測,并且把主要參數輸入STC89C51單片機,以實現對教室燈光的控制[1]。
本系統使用STC89C51單片機作為控制核心,通過其與人形檢測傳感器(熱釋紅外傳感器、ESP32-CAM攝像頭模塊)、環境光強度檢測傳感器(APDS-9930)等外界感知的相互配合來實現智能控制燈光的目的。
2.1.1 控制核心
本設計以STC89C51單片機為系統控制核心。STC89C51單片機由CPU、ROM、RAM、串行輸入/輸出口、2個定時計數器/計時器、時鐘電路及中斷系統組成。
STC89C51可對中央處理器與存儲器集成于一個芯片的系統進行可編程計算機控制,是一種將自定義程序代碼導入單片機的程序。這不但可以有效節省通用編程器的額外購買費用,而且可以讓STC89C51更快地接收信息。系統框架見圖1[2]。

圖1 系統框架
STC89C51單片機兼容8051單片機,是新一代低功耗8051高速單片機,具有新的流水線和簡化的指令結構[3],可以通過編程拷入單片機實現對教室區域內燈光的控制。
2.1.2 電源模塊
將220 V交流電通過減壓處理轉換為5 V的直流電,再通過LM7805輸出5 V的穩壓電源后可直接供單片機使用。
2.1.3 熱釋紅外傳感器模塊
熱釋紅外傳感器由場效應管適配器、干涉濾光片和檢測元件組成。熱釋紅外傳感器的功能主要是通過插入場效應管完成阻抗轉換來實現的[4]。直接使用熱釋紅外傳感器時,需要在使用前將上述轉換切換為電壓模式。在熱釋紅外傳感器模塊中,人體被作為第一感知信息,根據晶體表面被檢測區域的溫度變化。如果測得的環境溫度穩定,輸出低電平,則傳感器無輸出。由于人體溫度與測量溫度不同,進入人體測量區域時傳感器會輸入高電平,人體發射的紅外線通過信號放大器后傳輸給熱釋紅外傳感器,為控制電路提供電反饋信號。
2.1.4 攝像頭模塊
攝像頭模塊主要是輔助熱釋紅外傳感器進行人體探測,因為在人體進入檢測區域后不動的情況下溫度不會發生變化,傳感器也就沒有輸出。此時作為輔助部件的ESP32-CAM攝像頭模塊起著判斷該區域是否有人的作用,強制讓熱釋紅外傳感器有輸出。攝像頭模塊主要是以YOLO(實時目標檢測系統)檢測環境中的人類移動。
YOLO通過深度學習實現了端到端的實時目標識別。YOLO的特點之一是速度,YOLO意味著最高級別的物體識別,能比其他生物檢測系統更快地收集各種監視數據;其二是安裝和使用簡單,編程時只需要4條命令就可以讓YOLO開始工作。程序寫入YOLO后可以直接接入ESP32-CAM模塊使其進行人體識別工作。
2.1.5 教室燈光感應模塊
光學傳感器模塊主要采用APDS-9930傳感器,包括A/D轉換器、放大器、CPU、通信接口、存儲器等[4]。
APDS-9930封裝有8個腳,電和地各一個腳,I2C通信一個數據腳一個時鐘腳,還有一個中斷腳,可以根據用戶設置的光照強度或接近閾值來觸發中斷,還有兩個腳LEDA和LEDK分別為芯片內部紅外發光二極管的陽極和陰極,陰極直接連接芯片的最后一個腳——LDR。這個腳會根據用戶的設置產生不同頻率的驅動信號來驅動發光二極管。APDS-9930采用A/D轉換電路、數字信號傳輸和數字濾波技術,大大提高了傳感器的穩定性。在功能方面,APDS-9930一方面可以檢測周圍的亮度,另一方面可以基于紅外測距原理檢測物體的接近程度。在物聯網使用方面,APDS-9930使用了數字通信接口,可以直接接入計算機,也能與標準工業控制總線連接。
在本系統中,APDS-9930會通過感應投影儀和教室內其他光源的強度大小來控制燈光開關,它采用一個8引腳封裝的I2C兼容數字環境光傳感器和紅外發光二極管來接近傳感器。環境光傳感器使用2個光電二極管來實現接近度檢測,具有出色的弱光性能。系統電路仿真圖見圖2。

圖2 系統電路仿真圖
本系統使用Keil C51軟件創建和設計程序。Keil C51和Proteus的總體結構是一個Windows或Proteus C51集成開發環境(Integrated Development Environment,IDE),可以處理整個開發、編輯、編譯、鏈接、調試和仿真過程。開發人員可通過使用IDE或其他編輯器編輯C源文件或程序集,并使用C51和C51編譯器編譯它們來創建對象文件。
系統程序流程圖見第117頁圖3,該圖描述的是整個系統的流程控制情況。上電復位后系統進入自動控制狀態,當有人進出教室時檢測模塊會自動記錄人數的加減情況,并且會根據人數的多少與光強的大小來控制教室區域內燈的開關。當按下控制模式轉換按鈕后系統進入手動控制狀態,此時就要通過人來控制教室區域內燈的開關。

圖3 系統程序流程圖
整個系統的調試包括硬件調試和軟件調試,開始應對硬件部分進行靜態調試,同時對軟件部分進行初步調試,然后再對硬件部分和軟件部分進行動態調試[5]。
1)硬件調試。硬件調試主要是進行靜態調試,目的是排除硬件設備故障。
2)軟件調試。利用模擬軟件對單片機的硬件、指令、運行狀態進行模擬調試,繼而進行整個應用軟件的開發。
3)動態調試。對于整個控制系統來說,軟件系統和硬件系統是緊密相連的。對整個系統進行調試時,需要利用Keil和Proteus等仿真工具對軟件系統和硬件系統進行調試和診斷。調試過程中軟件系統中的用戶程序還需要與硬件系統連接起來進行聯合調試,同時能夠實現對軟件和硬件進行檢查和診斷的功能。
在各系統模塊電路調試完成后,將預編好的程序加載到仿真軟件中。軟件加載成功后就能使硬件執行程序對應的系統指令了。
本設計實現了對區域內燈光的智能控制,同時不影響原來對燈光的手動控制,這樣,當智能控制系統不能正常工作時可以通過手動控制開關對燈光進行控制。通過系統內多任務模塊的實現,提高了系統的整體工作效率。經過現實生活中的使用證明,系統各部件具有良好的穩定性。假設設備運行平穩可靠,設備設計可以使用可降低整體成本的廉價組件。在軟件開發中,信號是多任務處理,以達到控制照明的最終目的。與現有教室照明系統配合使用時,該系統可智能控制教室照明,降低成本,無需大幅改變原有電源配置。