祝陽祝朝坤
(1.中國(guó)石油新疆油田公司,新疆克拉瑪依 834000;2.河南理工大學(xué)萬方科技學(xué)院,河南鄭州 450000)
基于Android手機(jī)的無線環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與應(yīng)用
祝陽1祝朝坤2
(1.中國(guó)石油新疆油田公司,新疆克拉瑪依 834000;2.河南理工大學(xué)萬方科技學(xué)院,河南鄭州 450000)
當(dāng)前技術(shù)浪潮中,由于物聯(lián)網(wǎng)技術(shù)的盛行,小到家居生活,大到宇宙空間,智能化的概念已經(jīng)無孔不入的滲透入各種設(shè)備和領(lǐng)域。本文中對(duì)于環(huán)境的監(jiān)控這一課題繼續(xù)進(jìn)行研究,創(chuàng)新點(diǎn)在于本設(shè)計(jì)采用智能手機(jī)作為監(jiān)測(cè)終端,通過采用藍(lán)牙協(xié)議進(jìn)行數(shù)據(jù)的無線傳輸,為遠(yuǎn)程讀取環(huán)境數(shù)據(jù)信息提供了可能。在生活中,人們可以通過手機(jī)來實(shí)時(shí)獲取室內(nèi)外所安裝的環(huán)境節(jié)點(diǎn)采集到的數(shù)據(jù);在工業(yè)上,例如在一些不方便人們進(jìn)入的實(shí)驗(yàn)室環(huán)境和環(huán)境條件惡劣的設(shè)備工作場(chǎng)所,工人們可以使用本設(shè)計(jì),手機(jī)遠(yuǎn)程讀取所需測(cè)量位置的環(huán)境信息。
單片機(jī) 藍(lán)牙協(xié)議 傳感器 環(huán)境監(jiān)測(cè) 智能手機(jī)
最近幾年,“物聯(lián)網(wǎng)”技術(shù)浪潮正以席卷全球的趨勢(shì)迅速蔓延開來,如逐漸成熟的智能農(nóng)業(yè)、智能工業(yè),以及被炒作的熱火朝天的智能家居等,無處不體現(xiàn)出了高科技新技術(shù)在生活和社會(huì)生產(chǎn)中無限的活力。在物聯(lián)網(wǎng)時(shí)代即將到來的新一輪產(chǎn)業(yè)革命背景之下,污染源自動(dòng)監(jiān)控、環(huán)境在線監(jiān)控、衛(wèi)星遙感等技術(shù)手段的應(yīng)用不僅會(huì)改變“廢氣靠看、廢水靠聞、噪聲靠聽”的落后監(jiān)管局面,也將對(duì)環(huán)境管理理念、方法、體制、機(jī)制的變革形成推動(dòng)力量。
本設(shè)計(jì)能夠運(yùn)用在一些日常需要實(shí)時(shí)監(jiān)測(cè)溫濕度和光照數(shù)據(jù)的場(chǎng)景,例如智能農(nóng)業(yè)大棚,智能家居、工業(yè)等場(chǎng)景。設(shè)計(jì)中通過STC系列單片機(jī)對(duì)溫濕度傳感器,光照傳感器的數(shù)據(jù)進(jìn)行采集。并在采集到相關(guān)數(shù)據(jù)之后進(jìn)行處理和分析,同時(shí)通過單片機(jī)的串口將數(shù)據(jù)傳輸給藍(lán)牙模塊,Android手機(jī)通過和單片機(jī)外接藍(lán)牙模塊的配對(duì),對(duì)傳感器采集來的數(shù)據(jù)進(jìn)行接收。并將其在事先寫好的Android手機(jī)APP上顯示出來。
設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分,其中硬件包括包含單片機(jī)在內(nèi)的硬件節(jié)點(diǎn)的設(shè)計(jì),和各模塊的整合;軟件設(shè)計(jì)則分為單片機(jī)程序的編寫,以及Android智能手機(jī)上的APP的開發(fā)。其設(shè)計(jì)框架如圖2.1所示。
2.1 硬件的選型和設(shè)計(jì)
基于STC系列單片機(jī)的mini環(huán)境節(jié)點(diǎn)的設(shè)計(jì)。
節(jié)點(diǎn)設(shè)計(jì)采用性價(jià)比較高的STC89C系列單片機(jī)做為微控制器,采用相關(guān)的環(huán)境參數(shù)傳感器進(jìn)行環(huán)境信息的采集,同時(shí)使用藍(lán)牙模塊將采集的數(shù)據(jù)通過無線的方式發(fā)送給手機(jī),從而設(shè)計(jì)出一種簡(jiǎn)單實(shí)用的無線環(huán)境監(jiān)測(cè)節(jié)點(diǎn)。下面對(duì)設(shè)計(jì)中所使用的傳感器和藍(lán)牙模塊進(jìn)行簡(jiǎn)要的介紹。
(1)設(shè)計(jì)中采用的傳感器簡(jiǎn)介。
①DHT22一體化溫濕度傳感器。DHT22濕敏電容數(shù)字溫濕度模塊是一款含有己校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。傳感器包括一個(gè)電容式感濕元件和一個(gè)高精度測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有超低能耗、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比高等優(yōu)點(diǎn)。
②基于BH1750FVI的光照強(qiáng)度模塊。此模塊采用I2C總線和單片機(jī)進(jìn)行通信,在模塊內(nèi)部將光照度轉(zhuǎn)換為響應(yīng)的數(shù)字信號(hào)進(jìn)行輸出,輸出光照強(qiáng)度范圍為1~65535Lux。它的工作溫度范圍也很廣,可以在-45℃到+85℃的溫度條件下進(jìn)行工作,滿足一般的工業(yè)生產(chǎn)的條件。同時(shí)也具有較高的靈敏的和精確度。
以上兩種傳感器是本節(jié)點(diǎn)中將要用到的傳感器,他們主要采集周圍環(huán)境中實(shí)時(shí)變化的溫濕度和光照度這三類信息。
(2)藍(lán)牙串口模塊簡(jiǎn)介。藍(lán)牙,是一種支持設(shè)備短距離通信(一般10m--20m左右)的無線電技術(shù)。能在包括移動(dòng)電話、PDA、無線耳機(jī)、筆記本電腦、相關(guān)外設(shè)等之間進(jìn)行無線信息交換。利用“藍(lán)牙”技術(shù),能夠有效地簡(jiǎn)化移動(dòng)通信終端設(shè)備之間的通信,也能夠簡(jiǎn)化設(shè)備與因特網(wǎng)Internet之間的通信,從而數(shù)據(jù)傳輸變得更加迅速高效。藍(lán)牙采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點(diǎn)對(duì)點(diǎn)及點(diǎn)對(duì)多點(diǎn)通信,工作在全球通用的2.4GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段。同時(shí)由于藍(lán)牙技術(shù)具有低功耗,傳輸速度快等優(yōu)勢(shì),因此被廣泛的運(yùn)用在日常生活和生產(chǎn)場(chǎng)合。本設(shè)計(jì)中采用的藍(lán)牙串口模塊的RX、TX分別與單片機(jī)串口TX、RX的直接連接,通過單片機(jī)的串口通信方式,對(duì)采集到的數(shù)據(jù)進(jìn)行傳輸。
(3)節(jié)點(diǎn)的整體效果圖。在本設(shè)計(jì)中STC89C52用作核心控制器,用來對(duì)DHT22和BH1750FVI傳感器的信息采集與處理,并控制藍(lán)牙模塊的收發(fā)工作有序的進(jìn)行。在設(shè)計(jì)中起到至關(guān)重要的作用。環(huán)境節(jié)點(diǎn)的整體運(yùn)行效果如圖2.2所示。
2.2 Android客戶端程序設(shè)計(jì)
Android手機(jī)上的APP設(shè)計(jì)。
Android客戶端應(yīng)用程序做為本系統(tǒng)的的手機(jī)客戶端是本系統(tǒng)的亮點(diǎn)設(shè)計(jì),Android終端程序初步設(shè)計(jì)總共具有1個(gè)主頁面,以及三個(gè)子界面。其中三個(gè)子界面包括:環(huán)境信息監(jiān)控頁面、燈光控制頁面、攝像頭監(jiān)控點(diǎn)選擇頁面?,F(xiàn)僅將已經(jīng)具體實(shí)現(xiàn)的環(huán)境監(jiān)測(cè)子界面以及部分代碼進(jìn)行主要介紹。
(1)程序設(shè)計(jì)流程。
①主頁面。用戶打開應(yīng)用程序首先進(jìn)入的是主頁面,該頁面具體效果圖如下圖2.3所示。
界面環(huán)境搭建主要通過在main.xml文件中,用代碼對(duì)文件進(jìn)行布局,下面對(duì)main.xml文件的布局進(jìn)行簡(jiǎn)要說明。文件使用LinearLayout對(duì)界面進(jìn)行整體布局,其中使用TextView和ImageView對(duì)界面中的文字以及圖片進(jìn)行基本定義。在使用Button控件在界面的特定位置放置按鈕。即可得到如上所示界面布局。
具體對(duì)主界面按鈕的控制則由Main_activity類完成,該類繼承自Activity,通過重載父類的onCreate()方法實(shí)現(xiàn)對(duì)main.xml中各控件的操作,然后分別對(duì)其中的三個(gè)Button按鈕注冊(cè)監(jiān)聽事件,當(dāng)點(diǎn)擊對(duì)應(yīng)的按鈕時(shí),將觸發(fā)所對(duì)應(yīng)的監(jiān)聽器,即可轉(zhuǎn)入相對(duì)應(yīng)的界面,部分代碼如下所示:
由以上代碼我們可以看出,當(dāng)點(diǎn)擊“環(huán)境信息”、“視頻監(jiān)控”以及“電燈”三個(gè)不同的按鈕時(shí),會(huì)觸發(fā)不同的監(jiān)聽事件,轉(zhuǎn)入對(duì)應(yīng)的子頁面中去。
②“環(huán)境信息”子頁面。環(huán)境信息子頁面效果圖如下圖2.4所示:
界面環(huán)境搭建主要在environment.xml文件中進(jìn)行定義,類似于主頁面的搭建形式,在此不再贅述。同時(shí)我們可以看到關(guān)于本頁面會(huì)有對(duì)外界溫濕度光照等傳感器數(shù)據(jù)信息的一個(gè)采集。傳感器數(shù)據(jù)信息是通過手機(jī)上自帶的藍(lán)牙功能與mini環(huán)境節(jié)點(diǎn)上的藍(lán)牙模塊進(jìn)行點(diǎn)對(duì)點(diǎn)通信獲得的不斷變化著的實(shí)時(shí)數(shù)據(jù)。具體實(shí)現(xiàn)需要調(diào)用Android藍(lán)牙模塊相關(guān)的一些方法。首先android手機(jī)需要對(duì)自己周圍的藍(lán)牙設(shè)備進(jìn)行掃描,并連接mini環(huán)境節(jié)點(diǎn)所對(duì)應(yīng)的藍(lán)牙模塊。當(dāng)與環(huán)境節(jié)點(diǎn)的藍(lán)牙模塊進(jìn)行連接之后,即可進(jìn)一步對(duì)單片機(jī)發(fā)送來的數(shù)據(jù)信息進(jìn)行獲取。
(2)Android應(yīng)用程序APP的生成。當(dāng)一系列軟件開發(fā)工作都完成之后,則需要對(duì)所開發(fā)的app進(jìn)行測(cè)試。在基于Android的Eclipse開發(fā)環(huán)境下,只需要點(diǎn)擊編輯器中Run菜單下的的Run As---Android Application一項(xiàng)即可運(yùn)行,同時(shí)會(huì)在工程文件夾下的bin目錄下生成一個(gè).apk的壓縮文件,也就是APP的安裝包。接下來只需要將其拷貝到Android智能手機(jī)上進(jìn)行安裝即可。
(3)Android智能手機(jī)端功能測(cè)試。Android智能手機(jī)終端功能測(cè)試主要分為以下幾個(gè)方面:
①首先將apk應(yīng)用程序安裝到Android智能手機(jī)上,安裝完成后會(huì)出現(xiàn)名為“智能監(jiān)控系統(tǒng)”的應(yīng)用程序小圖標(biāo)。
②點(diǎn)擊運(yùn)行應(yīng)用程序后,即可進(jìn)入如文中圖2.3所示的環(huán)境監(jiān)控系統(tǒng)主界面。
③點(diǎn)擊“環(huán)境信息”,并連接硬件節(jié)點(diǎn)所對(duì)應(yīng)的藍(lán)牙設(shè)備,將出現(xiàn)如文中圖2.4所示的環(huán)境監(jiān)控信息頁面。在此頁面下,我們可以看到硬件節(jié)點(diǎn)上的傳感器采集到的各種環(huán)境數(shù)據(jù)。這些環(huán)境信息隨著當(dāng)前環(huán)境的不斷改變而實(shí)時(shí)變化。
至此,該設(shè)計(jì)的主要功能已經(jīng)實(shí)現(xiàn)。通過藍(lán)牙方式完美的將硬件節(jié)點(diǎn)所采集到的傳感器信息傳輸給Android智能手機(jī),并實(shí)現(xiàn)了對(duì)環(huán)境信息的實(shí)時(shí)監(jiān)測(cè)功能。
本設(shè)計(jì)的主要是以Android JAVA編程、單片機(jī)C語言為主要開發(fā)語言,以單片機(jī)開發(fā)板、各種傳感器模塊、PC機(jī)、Android智能手機(jī)為硬件平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了環(huán)境信息監(jiān)測(cè)系統(tǒng),該系統(tǒng)已初步實(shí)現(xiàn)了通過藍(lán)牙的無線方式實(shí)時(shí)獲得監(jiān)控點(diǎn)環(huán)境信息的功能,同時(shí)也實(shí)現(xiàn)了通過Android智能手機(jī)實(shí)時(shí)監(jiān)測(cè)一定范圍內(nèi)的環(huán)境信息的目的。
在接下來的設(shè)計(jì)中,還希望能夠完成對(duì)當(dāng)前環(huán)境下的實(shí)時(shí)視頻監(jiān)控功能,也會(huì)在接下來的時(shí)間里對(duì)本設(shè)計(jì)發(fā)現(xiàn)的問題及時(shí)更正,期待能夠在實(shí)際運(yùn)用中不斷改進(jìn),不斷完善,達(dá)到更加完美的效果,以便更好的用于生活和工業(yè)生產(chǎn)。