秦立靜,劉 歡
(甘肅農(nóng)業(yè)大學(xué) 信息科學(xué)技術(shù)學(xué)院,甘肅 蘭州 730070)
準(zhǔn)確的人數(shù)統(tǒng)計信息對于學(xué)校、車站、地鐵、餐館、展覽館等公共場所進(jìn)行資源的合理分配和利用非常重要[1]?;谶@種需求,人數(shù)統(tǒng)計系統(tǒng)應(yīng)運(yùn)而生,盡管它的發(fā)展非常迅速,但是目前進(jìn)行人數(shù)統(tǒng)計的方式主要還是通過視頻監(jiān)控系統(tǒng)實現(xiàn)。相對于一些只要求記錄人數(shù)數(shù)據(jù)而不要求采集人的具體特征的場所而言,一套完整的視頻監(jiān)控系統(tǒng)的制作成本較高,造成了不必要的資源浪費(fèi)。利用STC89C52單片機(jī)技術(shù)和傳感器技術(shù)設(shè)計的人數(shù)監(jiān)控系統(tǒng)[2-6],集溫濕度環(huán)境測量、體溫檢測、時鐘顯示和人數(shù)統(tǒng)計于一體,以其成本低廉,準(zhǔn)度較高等優(yōu)勢,滿足了當(dāng)前市場的需求,可廣泛應(yīng)用于公共場所。
基于單片機(jī)技術(shù)與傳感器技術(shù)的智能人數(shù)統(tǒng)計系統(tǒng)主要以STC89C52單片機(jī)為中心進(jìn)行設(shè)計和擴(kuò)展,系統(tǒng)功能通過軟硬件結(jié)合的方式實現(xiàn),外圍主要包括電源電路、按鍵電路、時鐘電路、數(shù)據(jù)采集單元、數(shù)據(jù)處理與分析單元等。系統(tǒng)設(shè)計框圖如圖1所示。
圖1 系統(tǒng)整體設(shè)計框圖
選擇STC89C52單片機(jī)作為系統(tǒng)的核心,主要完成一些運(yùn)算并控制每個模塊電路的運(yùn)行。STC89C52單片機(jī)系統(tǒng)主要由供電電路、復(fù)位電路、時鐘電路等組成。
在單片機(jī)系統(tǒng)中,為電路供電的電源模塊是保證系統(tǒng)能夠穩(wěn)定工作的重要前提。USB電源可以提供5 V直流電源,確保系統(tǒng)正常工作。該設(shè)備能真正做到“即插即用”,具有速度快、連接靈活、及時補(bǔ)充電源等優(yōu)點(diǎn),且相比使用電池供電,USB輕巧便攜,更環(huán)保。
按鍵設(shè)計選用3個獨(dú)立按鍵實現(xiàn)電路的不同功能,按鍵的一端分別與單片機(jī)的25,26,27引腳連接,另一端接地。由于此設(shè)計采用STC89C52單片機(jī),而P2口有一個內(nèi)置的上拉電阻,因此無需再連接上拉電阻。當(dāng)手動按下其中某一個按鍵時,該按鍵對應(yīng)的單片機(jī)引腳被拉低,松開按鍵后,I/O口變?yōu)楦唠娖???筛鶕?jù)單片機(jī)引腳的高低電平變化判斷對應(yīng)的按鍵操作。
系統(tǒng)數(shù)據(jù)采集主要包括室內(nèi)溫濕度的采集和人數(shù)統(tǒng)計。
2.4.1 溫濕度信息采集技術(shù)
科學(xué)研究表明,當(dāng)室內(nèi)溫度處于19~24 ℃,濕度處于40%RH~60%RH時,室內(nèi)空氣較好,環(huán)境舒適,人的大腦運(yùn)轉(zhuǎn)和心理狀態(tài)最佳,思維反應(yīng)快,工作效率高[7],掌握室內(nèi)的溫濕度情況能夠為人們提供良好的工作環(huán)境。該設(shè)計選用DHT11傳感器檢測室內(nèi)的溫濕度變化情況。DHT11數(shù)字溫濕度傳感器是一種結(jié)合溫度和濕度測量的復(fù)合傳感器[8],只有4個引腳,接口簡單、體積小、響應(yīng)速度快、抗干擾性強(qiáng)、質(zhì)量好、價格低,為4針單排引腳封裝,采用單線制串行接口連接,相比其他電路而言比較簡單,可靠性和穩(wěn)定性高。
2.4.2 紅外光電傳感器
人數(shù)統(tǒng)計模塊選用E18-D80NK傳感器實現(xiàn),它是一種集發(fā)射與接收于一體的紅外數(shù)字反射傳感器[9],利用被檢測物體對紅外光束的遮擋或反射對物體進(jìn)行檢測。當(dāng)室內(nèi)有人員出入時,發(fā)射器發(fā)射的光線被遮擋后返回接收器端,然后在接收器內(nèi)部將光信號轉(zhuǎn)化為電信號,并在放大電路中對其進(jìn)行濾波、放大、解調(diào)等操作后輸出低電平信號,此時光電開關(guān)的指示燈被點(diǎn)亮;反之,無人員進(jìn)出時,紅外線反射的光不能使接收管達(dá)到飽和狀態(tài),光電開關(guān)的指示燈處于熄滅狀態(tài)。
2.4.3 時鐘模塊設(shè)計
選用DS1302時鐘芯片實時顯示時間,該芯片與單片機(jī)的連線較少,很大程度上節(jié)省了單片機(jī)的系統(tǒng)資源。單片機(jī)通過讀取DS1302中寄存器的數(shù)據(jù)就能得到正確的時鐘和日歷信息。
DS1302時鐘芯片性能好,功耗低,內(nèi)部有RAM實時時鐘電路,可以對年、月、日、時、分、秒進(jìn)行準(zhǔn)確計時,對閏年進(jìn)行補(bǔ)償,并設(shè)置時間模式(12小時制或24小時制)。除此之外,該芯片還有充電寄存器,可在斷電時工作。芯片工作電壓為2.5~5.5 V,在傳送數(shù)據(jù)時,只有將RST引腳端置為高電平,才能將命令字及數(shù)據(jù)送入寄存器,如果RST端為低電平,則終止數(shù)據(jù)的傳送,無法顯示時間。
2.4.4 紅外測溫設(shè)計
使用MLX90614紅外測溫傳感器進(jìn)行人體溫度檢測。人體熱量以熱輻射的形式散發(fā)到環(huán)境中,被測物體發(fā)出的能量匯集在光電探測器,將紅外信號轉(zhuǎn)換為對應(yīng)的電信號,經(jīng)過內(nèi)部放大器和A/D信號處理電路后送到單片機(jī)中處理[10]。將處理后的數(shù)據(jù)送到液晶顯示器中顯示,由此確定人體溫度是否正常。
相比傳統(tǒng)的體溫計而言,該系統(tǒng)進(jìn)行溫度測量時無需接觸,只需將探測窗口對準(zhǔn)臉的位置,即可安全、快速、準(zhǔn)確地測出人體溫度,操作簡單、便捷。
2.5.1 人數(shù)統(tǒng)計
選用2個紅外光電開關(guān)實現(xiàn)實時人數(shù)統(tǒng)計。將2個紅外傳感器并排安裝在每個教室的前門或后門,區(qū)分傳感器被先后觸發(fā)的順序,將光電信號轉(zhuǎn)換成單片機(jī)能夠讀取的高低電平信號,單片機(jī)分析處理中斷信號并計算,實現(xiàn)人數(shù)統(tǒng)計。
2.5.2 數(shù)據(jù)顯示模塊設(shè)計
LCD12864液晶顯示模塊主要由行驅(qū)動器/列驅(qū)動器及128×64全點(diǎn)陣液晶顯示器組成,能夠?qū)崿F(xiàn)多位運(yùn)行以及多線連接[11-12],可以將單片機(jī)輸出的參數(shù)顯示在界面,操作方便,安裝簡單,成本較低。通過單片機(jī)運(yùn)行處理電路,結(jié)合LCD12864液晶顯示器,將放大、濾波處理后的有效數(shù)據(jù)在顯示屏上使用阿拉伯?dāng)?shù)字顯示出來。
程序設(shè)計主要涉及數(shù)據(jù)檢測部分和數(shù)據(jù)實時顯示部分,其準(zhǔn)確性直接影響系統(tǒng)的準(zhǔn)確性與可靠性。將程序分解為獨(dú)立的子程序,進(jìn)行編程和調(diào)試。其中,數(shù)據(jù)檢測部分負(fù)責(zé)檢測來自光電開關(guān)電路的脈沖信號是否發(fā)生加減變化,并選擇性記錄數(shù)據(jù);顯示部分用來顯示輸出的數(shù)值變化。軟件實現(xiàn)流程如圖2所示。
圖2 軟件實現(xiàn)流程
通過LCD12864內(nèi)部的指令實現(xiàn)數(shù)據(jù)的寫入和讀取,并實時顯示、存儲[13]。顯示程序主要包括初始化、寫指令、讀指令等,程序運(yùn)行過程中其數(shù)據(jù)顯示流程如圖3所示。
圖3 數(shù)據(jù)顯示流程
無人經(jīng)過時,2個紅外傳感器接收器端均為高電平,不會產(chǎn)生脈沖信號,單片機(jī)計數(shù)保持不變。先判斷光電開關(guān)1和光電開關(guān)2的電平,如果檢測到光電開關(guān)1為低電平,之后檢測光電開關(guān)2也為低電平,則說明有人員進(jìn)入室內(nèi),人數(shù)加1;若光電開關(guān)2為高電平,則重新開始檢測。反之,如果先檢測到光電開關(guān)2為低電平,之后檢測光電開關(guān)1為低電平,則說明有人走出,人數(shù)減1;若光電開關(guān)2為高電平,則重新開始檢測并記錄人數(shù)。人數(shù)統(tǒng)計流程如圖4所示。
圖4 人數(shù)統(tǒng)計流程
接通電源時,STC89C52單片機(jī)自動復(fù)位,運(yùn)行程序,進(jìn)行紅外測溫并接收數(shù)據(jù),若測得的體溫值高于36.7 ℃,則報警;若低于36.7 ℃,則正常顯示溫度,之后再判定是否結(jié)束溫度測量程序。紅外測溫流程如圖5所示。
圖5 紅外測溫流程
本系統(tǒng)在設(shè)計過程中,對于軟件和硬件的設(shè)計均采用模塊化形式進(jìn)行[13],分工明確,可確保系統(tǒng)在出現(xiàn)異常時迅速進(jìn)行判斷和分析。先進(jìn)行硬件電路的設(shè)計和調(diào)試,再進(jìn)行軟件部分程序的編寫與運(yùn)行,完成每個模塊的設(shè)計后,將程序?qū)雴纹瑱C(jī)中運(yùn)行調(diào)試。
硬件電路是實現(xiàn)軟件電路的基礎(chǔ),系統(tǒng)設(shè)計中,從選型到完成設(shè)計所需模塊較多,涉及的電路較復(fù)雜,包含單片機(jī)微處理器、數(shù)據(jù)采集和分析模塊、數(shù)據(jù)顯示模塊、電源模塊、按鍵模塊等,因此硬件焊接和組裝的工作量較大。在制作硬件電路之前,需按照功能將電路劃分為小模塊,然后合理安排布線,理清元件中每個引腳的正負(fù)和功能。最后,在Altium Designer軟件中繪制出各模塊的原理圖,檢查無誤后在電路板上焊接。
本系統(tǒng)程序通過C語言編寫,不僅效率高,程序執(zhí)行速度也比較快,且容易理解,最重要的是它具有完善的模塊程序結(jié)構(gòu)。在編寫完每個模塊的程序后進(jìn)行調(diào)試,只有通過調(diào)試才能查找和修改代碼,起到矯正作用。選用目前較受歡迎的Keil軟件進(jìn)行程序的編寫和調(diào)試,生成.hex文件,通過串口燒錄進(jìn)單片機(jī)后上電即可運(yùn)行。
本文設(shè)計了一種以單片機(jī)為核心部件的室內(nèi)人數(shù)監(jiān)控系統(tǒng),實現(xiàn)了紅外信息采集、溫濕度檢測、人數(shù)統(tǒng)計、時鐘顯示等功能。該系統(tǒng)可用于車站、學(xué)校、餐館、城市公園等場所的人數(shù)統(tǒng)計和溫濕度提示,也可用于極端社會環(huán)境下的人員流動安全監(jiān)控與體溫檢測。