王文秀,吳 慧,葛 瓊,曹克濤,王亓劍,徐慧芳
(安徽新華學(xué)院,安徽 合肥 230088)
隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,與之相關(guān)的產(chǎn)品開始進(jìn)入人們生活。物聯(lián)網(wǎng)涉及眾多的產(chǎn)業(yè),如工業(yè)生產(chǎn)、智能家居、智能交通、環(huán)境監(jiān)測、衛(wèi)生管理等,其生產(chǎn)總值已經(jīng)占據(jù)了相當(dāng)一部分比重。相關(guān)研究表明,預(yù)計2025年全球物聯(lián)網(wǎng)設(shè)備基數(shù)將達(dá)到754億臺;5G網(wǎng)絡(luò)的普及將會給物聯(lián)網(wǎng)行業(yè)帶來一次質(zhì)的飛躍。目前,國家高度重視物聯(lián)網(wǎng)的發(fā)展,物聯(lián)網(wǎng)產(chǎn)業(yè)受到了人們的廣泛關(guān)注,在未來以物聯(lián)網(wǎng)為基礎(chǔ)的產(chǎn)業(yè)將會得到迅猛的發(fā)展。物聯(lián)網(wǎng)的基礎(chǔ)需要大量的傳感器來搭建。傳感器作為其中的重要組成部分,同樣會得到發(fā)展。目前,傳感器越來越多地被應(yīng)用到人們生活中,降低了生活成本,也使生活更加方便。國內(nèi)在傳感器方面還有很大的上升空間,既是困難,也是機(jī)遇。
溫濕度傳感器作為一種基礎(chǔ)傳感器,將會得到更加廣泛的應(yīng)用。如今各個行業(yè)在進(jìn)行現(xiàn)代化改造的過程中,對溫濕度的監(jiān)測和調(diào)節(jié)日趨嚴(yán)格,使得精密儀器的應(yīng)用也越來越廣泛。在日常工作和生活環(huán)境中,溫濕度的可控性也越來越重要,比如計算機(jī)或服務(wù)器機(jī)房的溫度、食品工業(yè)和農(nóng)業(yè)生產(chǎn)中溫度和濕度的控制都是運營維護(hù)工作的重中之重。因此,基于溫濕度傳感器和單片機(jī)的溫濕度監(jiān)測方法也將取代傳統(tǒng)的溫濕度監(jiān)測方法。
物聯(lián)網(wǎng)的發(fā)展離不開基于Android系統(tǒng)的設(shè)備的支持??紤]到Android系統(tǒng)是使用最廣泛的操作系統(tǒng)之一,在移動端具有很好的兼容性,并且是一種開源系統(tǒng),給了使用者良好的開發(fā)環(huán)境,本文設(shè)計了一款基于Android的物聯(lián)網(wǎng)溫濕度監(jiān)測系統(tǒng)。
主控芯片采用STC89C52,主要完成對數(shù)據(jù)的分析和處理。數(shù)據(jù)采集部分由DHT11溫濕度傳感器組成,DHT11是應(yīng)用最為廣泛的傳感器之一,應(yīng)用已經(jīng)相當(dāng)成熟。與主機(jī)的通信由藍(lán)牙串口模塊組成,完成數(shù)據(jù)的傳輸和接收,實現(xiàn)下位機(jī)與上位機(jī)之間的通信。上位機(jī)是一部Android手機(jī),用以實現(xiàn)數(shù)據(jù)的接收。傳感器收集周圍環(huán)境的溫度和濕度信息并發(fā)送到單片機(jī),單片機(jī)在處理數(shù)據(jù)后通過藍(lán)牙串口模塊將數(shù)據(jù)發(fā)送到上位機(jī),并在APP上顯示出來。系統(tǒng)總體設(shè)計如圖1所示,下位機(jī)整體電路如圖2所示。
圖1 系統(tǒng)總體設(shè)計
圖2 下位機(jī)整體電路
藍(lán)牙模塊采用JDY-31藍(lán)牙,其引腳如圖3所示;同時使用跳頻頻譜擴(kuò)展技術(shù),將頻帶拆分幾個跳頻信道,可以使無線收發(fā)器完成在不同信道之間的跳躍。藍(lán)牙技術(shù)門檻低、功耗小、安全性高,便于傳播和應(yīng)用。一臺藍(lán)牙設(shè)備可以與多個藍(lán)牙設(shè)備相連接,通信極為方便。隨著藍(lán)牙通信技術(shù)的不斷更新,藍(lán)牙的傳輸速率也在不斷提高,數(shù)據(jù)傳輸速率可達(dá)1 Mb/s;并且藍(lán)牙可在一定范圍內(nèi)全方位進(jìn)行通信,提高了通信效率。
圖3 JDY-31引腳
溫濕度模塊采用DHT11傳感器,電路如圖4所示。當(dāng)連接上電源后,DHT11進(jìn)入穩(wěn)定狀態(tài),并發(fā)送指令進(jìn)行工作,檢測周圍環(huán)境溫度和濕度數(shù)據(jù)。此時在上拉電阻作用下DHT11和DATA數(shù)據(jù)線都處于高電平狀態(tài);DATA引腳處于輸入狀態(tài),微控制器的I/O端口處于輸出狀態(tài),將輸出低電平,但在上拉電阻作用下微控制器的輸入和輸出端口電位將被拉高。工作開始時,微控制器的傳感器發(fā)送一個啟動信號,并向單片機(jī)發(fā)送一串40位的二進(jìn)制數(shù)據(jù),表示溫濕度信號;接著輸出一個50 μs的低電平,之后才能轉(zhuǎn)化為輸入狀態(tài)。傳感器保存溫度和濕度信息后,將其發(fā)送到STC89C52。
圖4 DHT11電路
降溫模塊由L298N和電機(jī)組成。當(dāng)溫濕度達(dá)到報警值時,L298N驅(qū)動電機(jī)轉(zhuǎn)動,從而達(dá)到降溫目的。L298N的IN1和IN2引腳與單片機(jī)的P1.7和P1.6口相連接。L298N引腳如圖5所示。
圖5 L298n引腳
Keil是Keil Software公司的可用于單片機(jī)的系統(tǒng)開發(fā)的軟件,兼容C語言,且操作簡單、易上手。本設(shè)計采用的是2009年發(fā)布的Keil μVision4版本。如圖6所示為本設(shè)計的主程序流程。首先初始化各個模塊;在完成初始化之后,DHT11模塊的工作任務(wù)開啟,采集溫濕度,并將采集到的信號發(fā)送給STC89C52;最后STC89C52將數(shù)據(jù)通過JDY-31發(fā)送給Android 手機(jī),由Android 實時顯示溫濕度的檢測值。
圖6 主程序流程
本系統(tǒng)通過Android Studio軟件進(jìn)行開發(fā)。開發(fā)界面如圖7所示。
圖7 Android Studio開發(fā)界面
權(quán)限設(shè)置:在APP開發(fā)的過程中權(quán)限的賦予是非常重要的,如果不能賦予權(quán)限,則無法進(jìn)行正常的程序開發(fā)。在藍(lán)牙通信開發(fā)的過程中,APP需要獲得Android系統(tǒng)的如下權(quán)限:BLUETOOTH—允許配對的設(shè)備進(jìn)行連接;BLUETOOTH_ADMIN—允許搜索和配對設(shè)備;ACCESS_COARSE_LOCATION—廣播接收器接收;BluetoothDevice.ACTION_FOUND—廣播修改權(quán)限。
藍(lán)牙開啟:在建立藍(lán)牙通信之前,需要驗證是否有藍(lán)牙設(shè)備以及藍(lán)牙設(shè)備是否已打開。對于Android系統(tǒng),只有一個藍(lán)牙適配器,通過getDefaultAdapter()方法來檢測設(shè)備是否支持藍(lán)牙,并檢測藍(lán)牙是否開啟,如圖8所示。
圖8 藍(lán)牙開啟代碼
建立連接:在建立連接時需要一個UUID,用來標(biāo)識不同設(shè)備的ID。手機(jī)端是作為客戶端與藍(lán)牙模塊進(jìn)行連接的。在藍(lán)牙Socket進(jìn)行連接之前,一定要調(diào)用BluetoothAdapter的cancelDiscovery()方法。連接的第一步是通過調(diào)用BluetoothDevice的createRfcommSocketToServiceRecord(UUID)獲取BluetoothSocket;第二步是調(diào)用BluetoothSocket的connect()方法發(fā)起連接。由于connect()是一個阻塞調(diào)用,因此連接應(yīng)該在主線程以外的線程中執(zhí)行。調(diào)用connect()時,請始終確保設(shè)備未執(zhí)行設(shè)備發(fā)現(xiàn);如果正在進(jìn)行發(fā)現(xiàn)操作,則連接嘗試的速度將大大減緩,并且連接失敗的可能性會增加。確保在建立連接之前始終調(diào)用cancelDiscovery(),并且在調(diào)用時無須實際檢查其是否正在運行;如果確實想要執(zhí)行檢查,可以調(diào)用isDiscovering()。建立連接代碼如圖9所示。
圖9 建立連接代碼
針對系統(tǒng)中各電路模塊的設(shè)計,通過Proteus軟件進(jìn)行仿真。根據(jù)仿真結(jié)果可知,整體電路可實現(xiàn)設(shè)定的功能,包括溫濕度的實時顯示以及超過閾值后的降溫模式。仿真結(jié)果如圖10所示。
圖10 仿真結(jié)果
當(dāng)下位機(jī)的準(zhǔn)備完成之后,開始與上位機(jī)進(jìn)行通信。給下位機(jī)通電并且打開上位機(jī)程序,打開藍(lán)牙,建立連接,發(fā)送數(shù)據(jù)。顯示界面(應(yīng)用主界面和接收數(shù)據(jù)界面)如圖11所示。
圖11 顯示界面
根據(jù)實際情況可以通過Android修改閾值,修改前后數(shù)據(jù)對比如圖12所示。
圖12 閾值調(diào)整數(shù)據(jù)
本設(shè)計通過DHT11、AT89C52、Android、JDY-31等構(gòu)建溫濕度監(jiān)測系統(tǒng),經(jīng)過測試證明能夠?qū)崿F(xiàn)Android實時顯示溫濕度值,通過Android可以調(diào)整設(shè)定的閾值,若檢測值超過閾值則進(jìn)行降溫處理,實現(xiàn)智能化。本設(shè)計具有一定的推廣價值。