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