王潔松
(江蘇航運職業技術學院,江蘇 南通 226010)
在網絡時代下物聯網技術誕生,現已逐漸滲透到學校領域,為創客教育的開展提供更加有力的技術支持。以樹莓派為代表,以此為基礎進行人體紅外感應系統開發與設計,可更好地將技術應用于實踐,使系統開發難度降低,并在智能家居等多個領域中得到廣泛應用。
樹莓派即微型電腦,主要用于計算機編程教育之中。該電腦體積較小,與信用卡類似,在Linux基礎上設計而成,在Windows10發布后可在Windows中運行樹莓派。該設備雖然體積較小,但內在卻十分龐大,具有視頻、音頻等多種功能,受到許多創客與計算機愛好者的認可和青睞。樹莓派電腦 B型Rev1如圖1所示。

圖1 樹莓派電腦 B型Rev1
隨著信息技術更新換代,新硬件加快了發展步伐。樹莓派、Arduino等設備逐漸應用到院校創客教育之中,使底層硬件得以封閉,降低對物聯網的開發難度。從硬件配置角度來看,與Arduino相比樹莓派更具優勢。樹莓派作為微型電腦,其性能指標為:三代B型內存為1 GB,帶有1.2 GHz四核處理器,GPU為VideoCore IV處理器,具有存儲卡拓展槽,可依靠藍牙、網線與WiFi等進行通信。該設備由英國組織開發而成,以miecroSD卡為硬盤,Python為編程語言,操作系統功能較為健全,不但具有主控制器的功能,可與傳感器直接相連,實現物聯網控制;還可借助網線、鍵盤與顯示器等實現常規電腦的功能[1]。
在樹莓派基礎上研究人體紅外感應開燈,為物聯網應用創造更加良好的實踐案例,主要包括系統安裝、硬件配置與軟件實現等方面,具體內容如下。
樹莓派的功能在于學習計算機編程,其外表尺寸與信用卡相似,帶有完善的傳輸接口,可與多種類型傳感器相互連接,如光感應、LED、溫濕度與人體紅外等等。在實際操作中,只需輸入簡單的代碼便可對相關設備進行控制。對此,在本文研究中以樹莓派為主控器。該設備自身不具備操作系統,需要增加SD卡。在插入后便可正式進行系統安裝,主要流程如下。
步驟一:登錄官方網站,下載NOOBS,由其提供簡易可用的界面進行系統安裝;
步驟二:將剛剛下載的NOOBS文件進行解壓,存儲到SD卡中;
步驟三:將SD卡從電腦上彈出,安裝到樹莓派上;
步驟四:將樹莓派接通電源,根據與其相連的屏幕逐一設置選項,最后便可正式完成系統安裝。
人體紅外傳感器是在紅外線技術基礎上的自控模塊,具有較強的可靠性、靈敏性特點,適用于非接觸開關、防盜報警等方面。在本次研究中,通過調整傳感器中的距離與延時電位器,可對其感應距離與延時進行設置。利用杜邦線將傳感器的正極與樹莓派的5 V相連,將負極與Ground引腳相連,將輸出與BCM4相連。在接線完畢后,傳感器可調整到工作狀態,一旦有物體接近便會反饋電信號,BCM4引腳進行接收。各項設備的連接線路如圖2所示[2]。

圖2 設備線路連接
2.3.1 編程語言
樹莓派以Pythin為編程語言,相對簡單,學習難度較低,且功能較為強大,屬于高級程序語言。在Sublime Text環境下,更有助于對該編程語言和程序的開發與應用。對于Python文件來說,可縮寫為.py,其帶有一定的限制,即利用4個空格縮進方式編寫成塊代碼。在Python版本下,程序運行的方式為:首先啟動cmd進入命令行模式,然后輸入指令“Python3[filename].py”便可以執行相應的程序,最后對執行結果進行顯示。
2.3.2 代碼設置
在Python版本下對該系統中的硬件進行操控。技術原理為:一旦檢測到BCM4引腳有所輸入時,訪問連接在LED燈上的引腳便會接通,根據True的數值判斷結果實現開燈操作,反之則利用Flase取值實現關燈操作。
(1)Python對樹莓派的接口類庫進行控制,一般在微型電腦中已經預裝完畢,還需要將import導入其中。
(2)對各項指標進行初始化設置;一旦有人接近感應設備時,LED燈便會處于開啟狀態,待人走后便會自動關閉。
(3)設置相應的代碼:setmode(mode)代表的是命名方式。其中,mode共有兩個數值,BCM是指程序可以根據GPIO號尋找相應的針;BOARD則是根據物理位置針腳號探尋GPIO針。Mode參數將對后續output函數中的參數取值產生較大影響;.setup代表的是傳輸,可將標號為channel的針設置成state的模式。Channel便是利用針對相應指令進行傳輸。
(4)明確程序部署流程。首先,將顯示器與鍵盤等硬件與樹莓派相連,開啟樹莓派;其次,啟動文本編輯器,將以上代碼輸入其中,并將存儲文件命名為LED.py文件;輸入指令開始執行LED.py程序;最后,要想達到LED燈開燈閃爍效果,可通過增加代碼的方式拓展實驗,可將時間模塊引入其中,對閃爍時間進行控制,利用秒數函數設置燈光開啟與休眠的時間,且是以秒為單位,支持小數如0.5 s休眠時間,即燈光的休眠時間為500 μs。
在采集模塊實現方面,可通過紅外傳感器檢驗是否有人經過。當其人體發出波長為10 μm的紅外線,且被傳感器感應到時,輸出口可保持高電平。待延時結束后,可重復觸發。如若再次感應到紅外線,則仍然保持高電平,在延時完畢后傳輸口改為低電平。在本文研究的系統中,為了確保信息采集的合理性,當探測器感應到人時,便可開啟LED燈,這樣便可減少無效信息的采集,節約存儲空間。
在分析模塊實現方面,該模塊的功能在于檢驗人員與傳感器之間的距離。在該設計中采用特征算法,在PCA基礎上對主成分進行分析,即在高維空間中映射到低維空間,將數據中的關鍵內容提取出來。該算法的應用流程為:首先,對訓練數據進行讀取,對平均距離進行計算;其次,對協方差矩陣與特征矢量進行計算;最后,將待識別圖像投入特征空間,如若距離相對較小則閾值識別成功。在該模塊中,先對人員圖像進行訓練后構建驗證模型,在采集模塊中獲取相應的數據信息,通過特征算法檢驗人員與傳感器間的距離是否與事先設定相符,如若相符則LED燈亮起,如若不相符則不會亮,以此達到節能環保的效果。
在控制模塊實現方面,本系統主要采用的是樹莓派3B,以SD卡為內存,帶有音視頻插孔、藍牙模塊與10/100以太網接口,可提供充足的接口,雖然體積較小但功能豐富,適用于系統平臺的開發與LED燈的開關與閃爍。在系統測試中,在對相關指標進行設置后,對人員與感應設備間的距離進行訓練。通過模擬人們在燈前經過,判斷LED燈是否能夠準時亮起。測試結果表明,紅外探測模塊具有較強的準確性,能夠實現對LED等的開關控制[3]。
綜上所述,在本文研究的系統中,采用簡易方式將樹莓派與傳感器接通,再在Python編程語言的支持性便對傳感器數據進行檢測,由此實現對燈光的開關控制。通過本文研究可知,紅外探測模塊具有較強的準確性,能夠實現對LED等的開關控制。在信息技術教育中,將樹莓派與Python結合起來,更易在計算機技術教育中推廣應用。