陳南忠,曾凱健,歐陽鉅添,劉境佳,黃燦恒,毋茂盛
(肇慶學(xué)院 計算機學(xué)院,廣東 肇慶 526061)
隨著計算機技術(shù)和通信技術(shù)的快速發(fā)展,手機更新?lián)Q代速度日益加快,因此廢舊手機的數(shù)量不斷增長,造成了資源浪費。隨著手機功能的不斷擴展,從最初的通話功能,逐漸擴展了照相、音樂播放、上網(wǎng)以及支付等功能,為人們的生活帶來了極大便利?;谑謾C的各種應(yīng)用系統(tǒng)開發(fā)成為研究的熱點。本文設(shè)計了基于云服務(wù)計算的遠程家居監(jiān)控系統(tǒng),利用廢舊手機采集圖像,節(jié)省購置攝像頭的成本,并借助手機測量房間溫度和人體溫度,實現(xiàn)開關(guān)燈、門鎖控制等功能,同時還可以用手機進行實時遠程監(jiān)控和報警。
系統(tǒng)主要由手機控制端APP、騰訊云服務(wù)器、圖像采集端APP以及基于STM32的控制電路板組成。手機控制端APP和圖像采集端APP均基于安卓系統(tǒng)開發(fā);服務(wù)器包括流媒體服務(wù)器和MQTT服務(wù)器;STM32控制電路板包括單片機 STM32F103C8T6、溫濕度采集模塊、燈泡、電子鎖以及控制驅(qū)動電路等。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
1.2.1 控制與報警
控制端手機APP通過MQTT協(xié)議向云服務(wù)器發(fā)送指令(如控制打開電子鎖),云服務(wù)器接收指令后轉(zhuǎn)發(fā)至STM32控制電路板,控制電路板接收到指令后執(zhí)行對應(yīng)的操作,從而實現(xiàn)對家居的智能化控制??刂贫耸謾CAPP接收來自STM32控制板采集的溫、濕度數(shù)據(jù),并在手機屏幕上實時顯示。如果監(jiān)測到異常溫度,控制端手機報警。
1.2.2 遠程監(jiān)視功能
為降低成本,系統(tǒng)利用廢舊手機進行圖像采集與傳送。安裝在廢舊手機上的APP開啟推流功能,出現(xiàn)攝像頭預(yù)覽頁面,APP將拍攝的畫面實時傳輸?shù)皆品?wù)器??刂贫耸謾CAPP開啟拉流功能后,接收來自廢舊手機APP傳輸?shù)膶崟r圖像,并實時顯示。
本系統(tǒng)的硬件包括廢舊手機與STM32控制電路板。前者主要用于采集圖像信息,后者主要用于控制燈、門鎖的開閉,以及采集溫度等信息。STM32控制電路板上電后會通過WiFi自動連接路由器,并不斷進行室溫采集。它通過MQTT協(xié)議和云服務(wù)器通信,接收來自云服務(wù)器的指令,并根據(jù)接收的指令控制其所連接的模塊。同時,也可通過MQTT將模塊集采的溫度、濕度等數(shù)據(jù)發(fā)送到云服務(wù)器,再經(jīng)由服務(wù)器發(fā)送到控制端APP。STM32控制電路板主要由ARM單片機STM32F103C8T6、測溫模塊、門鎖、燈光控制模塊以及WiFi通信模塊等組成,硬件結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)
測溫模塊的功能:完成人體溫度和環(huán)境溫濕度的測量,上傳至服務(wù)器,并在OLED屏上顯示。該模塊硬件主要由STM32F103C8T6、人體紅外傳感器、溫濕度傳感器、報警電路、ESP8266 WiFi模塊、OLED顯示器等組成。測溫模塊硬件電路板如圖3所示。
圖3 溫度測量模塊電路板
2.1.1 人體溫度采集電路
人體溫度采集電路選用紅外測溫傳感器GY906,其具有非接觸、體積小、精度高、成本低等優(yōu)點。該傳感器通過IC接口和單片機進行數(shù)據(jù)傳輸,簡化了硬件接口電路設(shè)計。當(dāng)單片機STM32收到人體溫度檢測指令時,該電路將進行一次人體溫度檢測,并將檢測結(jié)果送到OLED顯示,同時上傳至服務(wù)器。
2.1.2 環(huán)境溫濕度采集電路
環(huán)境溫濕度采集電路使用DHT11溫濕度傳感器,通過單總線接口與單片機相連。系統(tǒng)上電后,單片機每秒對周圍環(huán)境的溫、濕度進行一次測量,并將結(jié)果顯示到OLED。同時,通過WiFi和MQTT協(xié)議將數(shù)據(jù)上傳至服務(wù)器。
2.1.3 報警電路
當(dāng)周圍環(huán)境溫濕度以及人體溫度超過設(shè)定范圍時,會向單片機申請中斷,在單片機執(zhí)行中斷服務(wù)程序時通過蜂鳴器報警,同時通過WiFi向控制端手機發(fā)送報警信號。可通過手機和電路板按鍵手動關(guān)閉報警器,或者當(dāng)數(shù)值恢復(fù)到設(shè)定范圍內(nèi)時自動關(guān)閉。
燈、鎖控制模塊主要由驅(qū)動電路、繼電器以及燈泡和電插鎖組成??刂齐娐钒錝TM32通過其GPIO口發(fā)送信號給驅(qū)動電路,驅(qū)動電路將3.3 V信號分別轉(zhuǎn)變成5 V和12 V,進行功率放大后驅(qū)動繼電器。其中,燈泡由5 V繼電器控制,電插鎖由12 V繼電器控制。電插鎖選用YGS-600-S5,其由專用電源供電。通過讀其GPIO口線,STM32可以掌握電插鎖的狀態(tài),利用WiFi模塊與服務(wù)器通信,STM32控制電路板收到開、關(guān)鎖或燈的指令時,就執(zhí)行對應(yīng)操作,在控制端APP顯示操作結(jié)果。
圖像采集APP安裝在廢舊手機上,首先設(shè)置使用的攝像頭,點擊攝像頭圖標(biāo)即可進行視頻推流,視頻數(shù)據(jù)會通過WiFi發(fā)送到Nginx+RTMP服務(wù)器,拉流程序再實時接收視頻數(shù)據(jù)。程序在安卓平臺上使用JNI方式開發(fā),通過調(diào)用手機攝像頭的API設(shè)置分辨率、幀率等參數(shù),然后進行視頻預(yù)覽,使用FFmpeg對獲取的視頻數(shù)據(jù)進行h264格式編碼后,再利用RTMP協(xié)議將編碼的視頻數(shù)據(jù)發(fā)送至服務(wù)器。推流部分核心代碼如下:
采集圖像畫面如圖4所示。
圖4 廢舊手機采集圖像
控制端APP具有如下功能:
(1)在控制端手機顯示圖像信息;
(2)接收來自STM32開發(fā)板上的人體溫度和環(huán)境溫濕度數(shù)據(jù),同時能夠向云服務(wù)器發(fā)送開、關(guān)門鎖的指令。
3.2.1 視頻拉流功能實現(xiàn)
視頻拉流通過RTMP協(xié)議實時獲取服務(wù)器的視頻碼流,獲取流數(shù)據(jù)后,通過FFmpeg對視頻數(shù)據(jù)進行解碼,最后在APP界面播放視頻。顯示圖像界面如圖5所示。
圖5 控制手機顯示圖像
獲取視頻流部分代碼如下:
3.2.2 燈鎖控制以及信息顯示程序設(shè)計
通過MQTT協(xié)議連接云服務(wù)器,獲取人體溫度和環(huán)境溫濕度數(shù)據(jù)并顯示在APP主界面,如果溫度超過設(shè)定閾值,將觸發(fā)蜂鳴器提醒。
點擊控制燈和門鎖按鈕時,通過MQTT代理發(fā)送一條JSON格式的消息到服務(wù)器,然后服務(wù)器將收到的消息轉(zhuǎn)發(fā)給STM32控制電路板,對燈和門鎖進行控制,并更新APP上燈和門鎖的狀態(tài)顯示。運行界面如圖6所示。
圖6 控制端APP運行界面
本文設(shè)計了用廢舊手機遠程控制家居的監(jiān)控系統(tǒng),利用廢舊手機采集圖像,降低了系統(tǒng)成本;通過溫濕度傳感器測量環(huán)境和人體溫度與濕度,并在手機上顯示,方便用戶實時了解房間溫度與濕度;通過紅外測溫模塊測量體溫,為日常生活提供便利,特別在疫情期間,該功能意義重大;利用手機開、關(guān)燈和門鎖,實現(xiàn)了遠程接收快遞或外賣功能。該項研究擴展了手機的功能,具有很好的應(yīng)用價值。