宋瑞博, 張 妍, 連夢慧
(大連海洋大學(xué) 信息工程學(xué)院, 遼寧 大連 116023)
家居環(huán)境是我們室內(nèi)活動的重要場所,一個好的家居環(huán)境,能夠讓人感到有很高的舒適度,同時能保持很好的情緒,所以人們越來越重視家居環(huán)境的改善。隨著物質(zhì)生活水平的提高,人們消費理念也在發(fā)生改變,追求更加個性、舒適、環(huán)保的產(chǎn)品,也更易接受酷炫和富有科技感的智能產(chǎn)品。對家居環(huán)境造成影響的因素:一個是隨著當(dāng)今社會的經(jīng)濟發(fā)展,地球環(huán)境污染日益嚴(yán)重,導(dǎo)致空氣質(zhì)量急劇下降;二是家里裝修,由于選用的裝修材料不夠環(huán)保,也會造成室內(nèi)空氣污染;三是天然氣泄漏、室內(nèi)溫濕度不適應(yīng)人體的需要等因素。針對以上原因,本文設(shè)計一款以物聯(lián)網(wǎng)為基礎(chǔ)的智能家居系統(tǒng)。本系統(tǒng)利用STM32 單片機來做主控芯片,利用各種傳感器監(jiān)測室內(nèi)環(huán)境參數(shù)的狀況,通過控制電路控制家電動作,同時通過通信模塊實現(xiàn)遠程控制,從而為人們營造出更美好的生活環(huán)境。
系統(tǒng)的主控制板和各外圍芯片進行防水封裝后可以放置于一個帶兩個輪子的載體中。載體高度不宜太高,有利于保持穩(wěn)定度、方便通過較為低矮的空間,減少轉(zhuǎn)向。該系統(tǒng)主要利用微處理器(STM32 單片機)和機器視覺模塊(OpenMV)模塊在室內(nèi)自動巡航,并利用各種傳感器對各類環(huán)境參數(shù)進行檢測,并定時將各種傳感器數(shù)據(jù)傳入巴法云服務(wù)器以及在終端可視化展示,動態(tài)觀測各種環(huán)境參數(shù)變化、接收報警、打開特定電器或手動改變載體方向。主控制器選用STM32單片機,其內(nèi)核是Cortex-M3,是由ST(意法半導(dǎo)體)公司推出的一種ARM芯片。該芯片具有價格低、外設(shè)多、實時性能優(yōu)異、低功耗控制以及低開發(fā)成本等優(yōu)點[1]。系統(tǒng)總體結(jié)構(gòu)圖見圖1。
圖1 系統(tǒng)總體結(jié)構(gòu)
考慮到環(huán)保節(jié)能的問題,本次設(shè)計采取太陽能板與鋰電池協(xié)同供電。在鋰電池電量不足時,利用太陽能板或市電為鋰電池充電;當(dāng)太陽能所供的電壓不足時,鋰電池利用電阻降壓為其他模塊供電。
太陽能方案是利用太陽能板和CN3816 太陽能控制芯片,該芯片具有自動跟蹤太陽能板的最大功率點的功能,可以最大限度地利用太陽能板的輸出功率。市電方案是利用變壓器進行降壓,利用場效應(yīng)三極管整流,減少了對二極管的功耗,能夠更加高效地利用電能,設(shè)計如圖2 所示。
圖2 市電為鋰電池充電電路
監(jiān)控模塊主要是通過選取不同類型的傳感器來監(jiān)測各種環(huán)境參數(shù)。傳感器又叫電五官,是獲取環(huán)境信息的主要途徑和手段,其具有高精度、穩(wěn)定性好、處理方便等特點,本系統(tǒng)主要由主控芯片STM32 控制不同的傳感器,機器視覺模塊配合這些傳感器獲得不同房間的環(huán)境參數(shù)。傳感器主要包括:
1)溫濕度傳感器DHT11,該傳感器可實現(xiàn)對信號自動校準(zhǔn),具有較高的測試準(zhǔn)確性[2],它的2 腳與STM32PB7 相連。
2)甲烷傳感器MQ-4,它是一種SnO2 半導(dǎo)體氣體傳感器,能較好地完成對煤氣泄漏的監(jiān)測。
3)空氣質(zhì)量傳感器MQ-315,它可以測量空氣污染的主要成分,如二氧化碳,氮氧化物,氨氣,酒精,苯類等。MQ-4 和MQ-315 這兩個傳感器是將成分含量轉(zhuǎn)換成不同的電壓值,利用與STM32 的PA4、PA5 相連并利用其封裝的AD 模塊檢測電壓,在STM32 將數(shù)據(jù)進行轉(zhuǎn)換,利用通信模塊,實現(xiàn)STM32 與云服務(wù)器相連,實現(xiàn)遠程檢測與控制。
為了實現(xiàn)更加智能的家居系統(tǒng),本系統(tǒng)中還載有紅外發(fā)射接收模塊,將此模塊的輸出引腳與STM32的PA1 相連,若將遙控器對準(zhǔn)紅外接收管,紅外接收管將紅外信號轉(zhuǎn)換成不同高低電平時長的信號,使用STM32 定時器TIM2 捕獲功能,獲得高低電平的時長,即是紅外編碼,并將該編碼存儲到內(nèi)存中。利用STM32 定時器TIM3,實現(xiàn)定時監(jiān)測環(huán)境數(shù)據(jù),然后根據(jù)其手冊計算出環(huán)境參數(shù)與電壓值的關(guān)系,根據(jù)經(jīng)驗設(shè)定閾值,并將接收到的數(shù)據(jù)與閾值比較,如果超過則控制STM32 的定時器TIM2 在PA1 引腳輸出對應(yīng)編碼(高低電平時長),使紅外發(fā)射管控制家電開關(guān),同時檢測到煤氣泄漏、火災(zāi)等報警利用通信模塊遠程通知業(yè)主。這樣可以充分利用STM32 的控制存儲優(yōu)勢,并利用云平臺儲存數(shù)據(jù),在手機終端進行接收。
本系統(tǒng)選擇12864LCD 作為顯示屏。12864LCD是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器、列驅(qū)動器及128×64 全點陣液晶顯示器組成。12864LCD顯示屏利用I2C 協(xié)議與STM32 通信,數(shù)據(jù)時鐘引腳分別與PB8、PB9 相連,并實時顯示傳感器的值,同時利用8266Wi-Fi 模塊獲得時間與日期,天氣等與空氣情況一起顯示。同時系統(tǒng)調(diào)節(jié)閾值的過程中也可以通過12864LCD 顯示閾值,方便觀察調(diào)節(jié)的進度。閾值硬件調(diào)節(jié)是通過對普通的矩陣鍵盤稍作修改,拓展4×4 矩陣鍵盤,利用二極管的單向?qū)щ娦?,?gòu)造一個如圖3 的矩陣鍵盤,節(jié)約了4 個I/O 口,對于保留的4個I/O 口分別與STM32 的PB10-PB13 相連,對于第五列的按鈕單獨查詢,再對左邊3×4 的按鈕通過拉高其中三個引腳,置零另外一個引腳,依次識別得到按鈕坐標(biāo)。相關(guān)代碼如下:
圖3 鍵控電路
實現(xiàn)硬件對閾值的調(diào)整。
當(dāng)某一參數(shù)超過閾值,控制STM32 的PA6 引腳進而控制蜂鳴器報警煤氣泄漏、火災(zāi)報警,以及識別成功地提醒。即利用TIM4 功能輸出不同頻率的PWM波控制三極管的開閉,高電平導(dǎo)通,低電平閉合,進而使無源蜂鳴器接收到不同頻率的PWM 波,進而生成不同的聲音如警告聲和提示音。設(shè)計電路見圖4。
圖4 報警電路
圖5 小程序截圖
隨著測量值和閾值差距的增大,STM32 輸出越高頻率的PWM波,得到越尖銳的報警聲。
在避障模塊主要依靠機器視覺模塊(OpenMV)。機器視覺系統(tǒng)是指通過機器視覺產(chǎn)品(即圖像攝取裝置,分CMOS 和CCD 兩種)將被攝取目標(biāo)轉(zhuǎn)換成圖像信號,傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號;圖像系統(tǒng)對這些信號進行各種運算來抽取目標(biāo)的特征,進而根據(jù)判別的結(jié)果來控制現(xiàn)場的設(shè)備動作[3]。OpenMV 是集成了攝像頭模塊的STM32 單片機,控制電機驅(qū)動板L298N,IN1-IN4 分別與OpenMV P0-P3 相連,ENA、ENB 引腳與P7、P8(PWM 輸出引腳) 相連,根據(jù)IN1-IN4 的電平高低情況控制兩個輪子轉(zhuǎn)動方向,帶動載體運動,它可以利用PWM脈沖調(diào)制的方法,即改變P7、P8 引腳PWM占空比,改變兩個輪子轉(zhuǎn)速,進而實現(xiàn)改變運動方向;通過攝像頭接收的圖像,利用測距和識別算法,識別出障礙物,改變兩個舵機的轉(zhuǎn)速,實現(xiàn)避障、自動巡航。當(dāng)然我們同樣可以通過機器視覺模塊對一些其他方面的監(jiān)測,如入侵監(jiān)測、家庭錄像、輔助拍照等。
信號傳輸是物聯(lián)網(wǎng)的核心,云服務(wù)器是整個系統(tǒng)數(shù)據(jù)的處理及存儲站,是整個物聯(lián)網(wǎng)系統(tǒng)的重要組成部分[4],我們選擇巴法云服務(wù)器,成本低且能完成系統(tǒng)要求。為了實現(xiàn)實時監(jiān)控,我們選用ESP8266WIFI模塊, 作為連接云服務(wù)器與傳感器的橋梁,利用STM32 的USART2 引腳(PA2、PA3)與8266 的TX、RX相連實現(xiàn)串行通信,同時利用PB0、PB1 控制8266 使能,將感知層的數(shù)據(jù)傳送到巴法云服務(wù)器。
終端利用微信開發(fā)者工具開發(fā)微信小程序。微信開發(fā)者工具能幫助微信后臺頁面的開發(fā)者更便捷安全地調(diào)試微信內(nèi)的網(wǎng)頁,而無須去借助一些模擬類軟件。微信開發(fā)者工具開發(fā)原理是集成了Chrome DevTools 和基本的移動調(diào)試模塊,可進行微信內(nèi)網(wǎng)頁調(diào)試與微信小程序調(diào)試,開發(fā)的小程序具有獨有的優(yōu)勢,優(yōu)勢如下[5]:小程序相對于APP 開發(fā)維護成本低,可以降低項目運營成本;小程序依附于微信中,不用下載其他APP,小程序更適合為大眾使用;微信小程序與云端用MQTT 為通信協(xié)議與巴法云服務(wù)器端通信,得到每個房間的環(huán)境狀況,方便終端對其觀測、了解環(huán)境狀況。MQTT 相關(guān)js 代碼如下:
小程序部分包括兩部分環(huán)境監(jiān)測部分與個人中心,環(huán)境監(jiān)測部分接收各個傳感器的值,包括所處的位置,天氣,空氣質(zhì)量等參數(shù),通過鏈接可以進行全局報警設(shè)置,個人中心部分包括項目介紹,系統(tǒng)設(shè)置等信息。
根據(jù)硬件設(shè)計以及功能需要,設(shè)計電路并編寫單片機程序,利用KEIL 軟件和ST-Link 調(diào)試器,在線對單片機進行仿真,再將程序燒錄到單片機內(nèi)。調(diào)試過程是按照設(shè)計的電路圖在面包板上連接測試,上電之后觀察電路各模塊參數(shù)是否正常。如環(huán)境參數(shù)測量能否顯示,數(shù)據(jù)是否傳入微信小程序,最后利用嘉立創(chuàng)制PBC 板,焊接電路,測試圖和實物見圖6、圖7。
圖6 測試圖
圖7 實物圖
本系統(tǒng)利用KEIL 等軟件進行硬件編程,微信開發(fā)者工具設(shè)計微信小程序,最后制PBC 板組成實物,通過測試可以較好地實現(xiàn)預(yù)期的功能。本系統(tǒng)實現(xiàn)穩(wěn)定性高,電路結(jié)構(gòu)簡單,性價比高,使用元器件通用性高等特點,更能很好地滿足人們的需求。但一些模塊的智能化還有待改善,離真正的智能家居,有一定的距離。本系統(tǒng)很好地將物聯(lián)網(wǎng)技術(shù)與傳感器技術(shù)結(jié)合,實現(xiàn)了家庭中的電器設(shè)備與互聯(lián)網(wǎng)、物聯(lián)網(wǎng)技術(shù)進行互聯(lián)互通,體現(xiàn)了物聯(lián)網(wǎng)技術(shù)在人們生活中的應(yīng)用,具有一定的現(xiàn)實意義。