張浩華, 張夢(mèng)瑤, 趙小姝, 潘慶超, 馬世軍
(沈陽(yáng)師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院, 沈陽(yáng) 110034)
隨著社會(huì)的進(jìn)步已經(jīng)工業(yè)的發(fā)展,環(huán)境問(wèn)題受到人們的重視。因此能夠及時(shí)的了解到周?chē)h(huán)境的實(shí)時(shí)情況便成為了人們的迫切需求。環(huán)境的情況逐在物聯(lián)網(wǎng)高速發(fā)展的今天,為環(huán)境的實(shí)時(shí)監(jiān)控提供了技術(shù)支持,人們可以通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)獲取自己周?chē)h(huán)境的實(shí)時(shí)信息?;贏rduino校園環(huán)境檢測(cè)智能設(shè)備利用現(xiàn)有相對(duì)較為成熟的傳感器技術(shù)和物聯(lián)網(wǎng)技術(shù)來(lái)獲取校園內(nèi)的實(shí)時(shí)環(huán)境信息。
隨著人民生活獲得條件不斷進(jìn)行優(yōu)化提升,社會(huì)環(huán)境中使用的環(huán)境監(jiān)測(cè)系統(tǒng)種類(lèi)越來(lái)越多,越來(lái)越智能化現(xiàn)代化,隨之而來(lái)的是人們對(duì)于這些環(huán)境監(jiān)測(cè)系統(tǒng)使用舒適度的要求也漸漸提升,同時(shí)也需要提供更高效的使用體驗(yàn)和更便捷的操作方式。我們?cè)趯?duì)環(huán)境監(jiān)控的同時(shí)對(duì)采集到進(jìn)行大量的數(shù)據(jù)分析,能夠讓人們隨時(shí)隨地的對(duì)于自己身處的環(huán)境有一定的了解,同時(shí)進(jìn)行一些措施保護(hù)自身身體健康。
最近幾年,專(zhuān)家學(xué)者針對(duì)實(shí)時(shí)環(huán)境監(jiān)測(cè)系統(tǒng)有大量的研究與發(fā)現(xiàn)。但是在這些研究中很大一部分只是對(duì)單一的方面進(jìn)行監(jiān)測(cè)。本次設(shè)計(jì)的智能設(shè)備,在以往專(zhuān)家學(xué)者研究的基礎(chǔ)上加以改進(jìn),將Arduino智能控制板和Yeelink網(wǎng)絡(luò)加入到環(huán)境監(jiān)測(cè)的設(shè)計(jì)中,令智能設(shè)備在檢測(cè)使用方面更加簡(jiǎn)單。
本次設(shè)計(jì)通過(guò)各個(gè)硬件連接傳輸?shù)紸rduino UNO控制板,再對(duì)各個(gè)傳感器模塊以及Arduino UNO控制板進(jìn)行系統(tǒng)的調(diào)試,最后將采集到的數(shù)據(jù)進(jìn)行系統(tǒng)的分析,傳輸?shù)結(jié)eelink網(wǎng)絡(luò)平臺(tái)進(jìn)行實(shí)時(shí)監(jiān)控,讓學(xué)生通過(guò)平臺(tái)對(duì)校園周邊的環(huán)境有一定的了解。
設(shè)計(jì)基于Arduino UNO板,Arduino輸入端分別將溫濕度傳感器DHT11,灰塵傳感器DSM501A以及聲音傳感器采集到數(shù)據(jù)進(jìn)行傳輸和處理,既能夠檢測(cè)到城市主要街道的溫濕度和灰塵污染程度,同時(shí)還能對(duì)街道的噪音情況加以監(jiān)控。通過(guò)無(wú)線(xiàn)通信模塊連入智能控制板將傳感器采集到的實(shí)時(shí)數(shù)據(jù)上傳至Yeelink網(wǎng)絡(luò)平臺(tái)進(jìn)行實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)變化,與此同時(shí)能夠?qū)⒈4娴骄W(wǎng)絡(luò)平臺(tái)的數(shù)據(jù)進(jìn)行分析和處理[1]。此外,將傳感器的設(shè)計(jì)進(jìn)行模塊化處理,在發(fā)生故障時(shí)不需要全部的檢測(cè),只需要逐一進(jìn)行檢查排除故障,具有很強(qiáng)的實(shí)用性[2]。
Arduino UNO是基于Atmega328單片機(jī)的開(kāi)源性的開(kāi)發(fā)板,具有高度的模塊化。Arduino的主控板采用AVR單片機(jī),把Atmega328編程為一個(gè)USB設(shè)備,核心設(shè)備是Atmega328的微控制器,具有32KB Flash,1KB EEPROM,14路數(shù)據(jù)I/O口(其中6路可作為PWM輸出)和6路模擬輸入口,具有多種的開(kāi)發(fā)庫(kù)和常用傳感器測(cè)量的庫(kù)函數(shù),簡(jiǎn)化了開(kāi)發(fā)步驟讓使用者使用起來(lái)更加方便,讓Arduino有更廣泛的應(yīng)用價(jià)值[3]。圖2為Arduno控制板結(jié)構(gòu)圖。
圖2 ArduinoUNO控制板結(jié)構(gòu)圖Fig.2 Structure diagram of the arduinouno control panel
溫濕度傳感器具有能夠?qū)χ苓叚h(huán)境溫度以及濕度數(shù)據(jù)進(jìn)行采集的功能,能夠靈敏的檢測(cè)出校園周邊環(huán)境的溫濕度變化,讓使用者能夠更好的對(duì)校園周邊環(huán)境的溫濕度變化有一定的了解,并能夠及時(shí)的做出增減衣物的反應(yīng)。市面上很多種溫濕度傳感器,通過(guò)對(duì)比,本次環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)采用 DHT11溫濕度傳感器,DHT11溫濕度傳感器具有數(shù)字模塊采集功能,有著高度的準(zhǔn)確性和穩(wěn)定性[4]。溫濕度傳感器在空氣中相對(duì)的檢測(cè)結(jié)果的范圍為20%RH~90%RH,精度為1%RH,濕度±5%RH, 溫度±2 ℃。溫濕度傳感器在2次數(shù)據(jù)的采集周期間隔不低于1 s 。傳感器具有反應(yīng)靈敏,使用方便,數(shù)據(jù)采集傳輸距離遠(yuǎn)等特點(diǎn),能夠滿(mǎn)足智能設(shè)備的設(shè)計(jì)要求。圖3為溫濕度傳感器測(cè)量圖[5]。
圖3 溫濕度測(cè)量圖Fig.3 Temperature and humidity measurement circuit
灰塵傳感器能夠?qū)χ苓叚h(huán)境灰塵情況進(jìn)行數(shù)據(jù)采集,能夠較為精確的檢測(cè)出校園周邊環(huán)境灰塵粒子的數(shù)量水平,以及環(huán)境中灰塵的數(shù)量變化,讓使用者對(duì)于環(huán)境中的灰塵數(shù)量級(jí)別有一定的了解。灰塵傳感器的種類(lèi)眾多,我們選擇的是DSM501A傳感器,DSM501A能夠?qū)崿F(xiàn)吸入空氣的功能,利用灰塵計(jì)數(shù)的原理,能夠檢測(cè)到灰塵的范圍為直徑為1 μm以上[6]。加入電阻在控制引腳1與GND,可調(diào)整粒子最小檢出水平(靈敏度),當(dāng)所接入電阻值為100 kΩ時(shí),Vout輸出為半敏感(2 μm以上);DSM501A灰塵傳感器通過(guò)PWM調(diào)制方式波形進(jìn)行數(shù)據(jù)的輸出與顯示,通過(guò)低脈沖率來(lái)代表粒子的數(shù)量與灰塵粒子的水平,低脈沖率計(jì)算公式為:RT=Lt/Ut×100%。圖4為灰塵測(cè)量電路圖[7]。
圖4 灰塵測(cè)量電路圖Fig.4 Dust measurement circuit diagram
聲音傳感器的主要功能是對(duì)校園周邊所處的聲音環(huán)境進(jìn)行實(shí)時(shí)的監(jiān)控,噪音污染是一種看不見(jiàn)但是對(duì)人身心影響巨大的環(huán)境污染,以前人們只關(guān)注空氣中的灰塵污染,隨著人們的生活水平不斷提高人們對(duì)于所處環(huán)境的噪音污染越來(lái)越關(guān)注。聲音傳感器種類(lèi)眾多我們選擇MIC聲音傳感器,MIC聲音傳感器是使用麥克風(fēng)將周?chē)h(huán)境的聲音信號(hào)進(jìn)行收集并檢測(cè)的傳感器,并且對(duì)于周?chē)h(huán)境產(chǎn)生的聲音有著高度的敏感性。通過(guò)對(duì)周?chē)h(huán)境聲音信號(hào)進(jìn)行采集,同時(shí)利用內(nèi)部具有的300倍放大器將信號(hào)進(jìn)行放大處理[8]。輸出的模擬信號(hào)使用3.3 V和5 V為基準(zhǔn)AD。當(dāng)周?chē)h(huán)境的聲音強(qiáng)度到達(dá)閾值時(shí),聲音傳感器輸出低電平,反之輸出高電平,并且用ArduinoUNO來(lái)顯示[9]。測(cè)量范圍:30~120 dB(A),頻率范圍:20 Hz~8 kHz。
無(wú)線(xiàn)通信模塊主要作用是將溫濕度傳感器,灰塵傳感器,聲音傳感器所采集到的數(shù)據(jù)信號(hào)進(jìn)行網(wǎng)上的傳輸,傳輸?shù)結(jié)eelink網(wǎng)絡(luò)平臺(tái),讓使用者能夠?qū)崟r(shí)的了解到傳感器所采集到的數(shù)據(jù)。無(wú)線(xiàn)通訊模塊是一種搭載處理器的Arduino拓展模塊,能夠直接連接在Arduino控制板中,通過(guò)編譯對(duì)其進(jìn)行控制。市面上無(wú)線(xiàn)通信模塊的種類(lèi)有很多,設(shè)計(jì)采用了W5100tEhenetShield。W5100無(wú)線(xiàn)通信模塊是一種多功能的單片無(wú)線(xiàn)網(wǎng)絡(luò)接口芯片,內(nèi)部集成以太網(wǎng)控制器,可以實(shí)現(xiàn)Internet連接,與IEEESO 2.3,10BASE一TX兼容。程序中加入Arduino官方庫(kù)Etherneth,利用Arduino板進(jìn)行網(wǎng)絡(luò)模塊的初始化程序,在確保Arduino和無(wú)線(xiàn)通信模塊連接的同時(shí),將其他傳感器收集到的信息進(jìn)行傳送,并保存到Y(jié)eelink網(wǎng)絡(luò)平臺(tái)上,以便日后進(jìn)行分析[10]。
Arduino編程語(yǔ)言是以C/C++語(yǔ)言為基礎(chǔ),在此基礎(chǔ)上加以改良和完善。Arduino編程語(yǔ)言令系統(tǒng)的參數(shù)設(shè)置進(jìn)行參數(shù)化,使使用者不需要深入學(xué)習(xí)到最底層。Arduino編寫(xiě)語(yǔ)言需要包括setup和loop基礎(chǔ)的函數(shù)。setup函數(shù)是當(dāng)系統(tǒng)上電或復(fù)位時(shí)運(yùn)行的,一般情況下會(huì)用來(lái)進(jìn)行初始化的設(shè)置和一次性的程序的設(shè)計(jì)。loop函數(shù)是Arduino編程語(yǔ)言開(kāi)發(fā)的主要程序。系統(tǒng)在setup函數(shù)完成之后,就開(kāi)始無(wú)限循環(huán)進(jìn)行l(wèi)oop函數(shù)[11]。
Yeelink網(wǎng)絡(luò)平臺(tái)為家庭設(shè)備采集到的上傳數(shù)據(jù)提供統(tǒng)一的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)接口,對(duì)數(shù)據(jù)模塊信息存儲(chǔ)實(shí)行監(jiān)測(cè)和預(yù)警。Yeelink網(wǎng)絡(luò)平臺(tái)能夠同時(shí)對(duì)數(shù)據(jù)進(jìn)行接入以及對(duì)大量傳感器數(shù)據(jù)進(jìn)行存儲(chǔ),Yeelink網(wǎng)絡(luò)平臺(tái)能夠在本次設(shè)計(jì)中滿(mǎn)足存儲(chǔ)要求。同時(shí),Yeelink網(wǎng)絡(luò)平臺(tái)能夠提供給用戶(hù)大量的存儲(chǔ)空間用于存儲(chǔ)傳感器數(shù)據(jù),并且能夠滿(mǎn)足用戶(hù)的一系列要求并且在此基礎(chǔ)上進(jìn)行一系列的動(dòng)作[12]。
ArduinoUNO關(guān)鍵程序?qū)Ψ?wù)器發(fā)送數(shù)據(jù)。定義函數(shù)sendData()向服務(wù)器發(fā)送數(shù)據(jù)。thisData存放傳感器數(shù)據(jù),DEVICEID存放設(shè)備識(shí)別號(hào),SENSORID存放傳感器識(shí)別號(hào)。定義server對(duì)象為http:api.yeelink.com[13]。
Void send Data(ints Data int DEVIEID.int ENSORID)
{
If(client.connect(server,80))
{
Serial println(″connecting″);
client.print(″POST v1.0 device″);
client.print(DEVICEID);
client.print(″sensor″);
client.print(SENSORID);
client.print(″datapoints″);
client.print(″Accept:*″);
client.println(″*″);
int this Length=10+get Length(this Data);
application x-www-form-urlencoded″);
client.println(″Connection:close″);
client.print({"{”value”·");
client.println("}");
}
clse{
Serial.Println("connection failed");
Serial.Println();
Client.Stop();
}
通過(guò)Arduino向Yeelink網(wǎng)絡(luò)平臺(tái)發(fā)送數(shù)據(jù)。
表1 Yeelink網(wǎng)絡(luò)平臺(tái)創(chuàng)建設(shè)備Tab.1 The Yeelink network platform creates devices
表2 通過(guò)yeelink網(wǎng)絡(luò)平臺(tái)創(chuàng)建傳感器Tab.2 The yeelink network platform creates sensors
Yeelink網(wǎng)絡(luò)平臺(tái)是一種數(shù)據(jù)上傳,處理以及存儲(chǔ)的網(wǎng)絡(luò)服務(wù),對(duì)于Yeelink網(wǎng)絡(luò)平臺(tái),本次設(shè)計(jì)中溫濕度傳感器,灰塵傳感器,聲音傳感器,采集到的數(shù)據(jù)通過(guò)Arduino控制板進(jìn)行編譯處理,運(yùn)用W5100無(wú)線(xiàn)通訊模塊將數(shù)據(jù)上傳至Yeelink網(wǎng)絡(luò)平臺(tái)。
圖5 yeelink網(wǎng)絡(luò)平臺(tái)監(jiān)控圖像Fig.5 Monitoring image yeelink network platform
在對(duì)校園周邊環(huán)境檢測(cè)的系統(tǒng)設(shè)計(jì)中,使用了溫濕度傳感器模塊,灰塵傳感器模塊,聲音傳感器模塊,無(wú)線(xiàn)通信模塊,Arduino UNO控制板模塊以及Yeelink網(wǎng)絡(luò)平臺(tái)對(duì)所采集到的數(shù)據(jù)進(jìn)行上傳存儲(chǔ)。本次設(shè)計(jì)主要通過(guò)Arduino UNO主控板對(duì)其他傳感器進(jìn)行編譯和控制,使傳感器能夠在一定的范圍內(nèi)進(jìn)行對(duì)環(huán)境的實(shí)時(shí)監(jiān)測(cè)和數(shù)據(jù)采集,通過(guò)無(wú)線(xiàn)傳輸模塊將采集到的數(shù)據(jù)傳輸?shù)結(jié)eelink網(wǎng)絡(luò)平臺(tái)讓使用者能夠了解自身所處的環(huán)境。
本次智能設(shè)備設(shè)計(jì)的特點(diǎn)是在傳統(tǒng)的傳感器檢測(cè)的系統(tǒng)上加入了網(wǎng)絡(luò)通信模塊[14],通過(guò)網(wǎng)絡(luò)通信模塊將數(shù)據(jù)上傳到Y(jié)eelink網(wǎng)絡(luò)平臺(tái),而且利用多種傳感器同時(shí)進(jìn)行檢測(cè),對(duì)校園環(huán)境的監(jiān)測(cè)提供了數(shù)據(jù)支持,能夠?qū)崟r(shí)的反映出校園環(huán)境情況。本次設(shè)計(jì)還加入了網(wǎng)絡(luò)通信模塊,通過(guò)Yeelink網(wǎng)絡(luò)平臺(tái)實(shí)現(xiàn)了環(huán)境狀態(tài)的遠(yuǎn)距離、實(shí)時(shí)監(jiān)測(cè),為環(huán)境監(jiān)測(cè)者提供了方便[15]。圖5為yeelink網(wǎng)絡(luò)平臺(tái)監(jiān)控圖像,橫坐標(biāo)為時(shí)間縱坐標(biāo)為溫度。
隨著人們生活水平的提高,對(duì)于周?chē)h(huán)境的要求也不斷的提高,在科技高速發(fā)展的今天,各種各樣的環(huán)境監(jiān)測(cè)系統(tǒng)進(jìn)入到我們的生活。在傳統(tǒng)的環(huán)境監(jiān)測(cè)過(guò)程中,監(jiān)測(cè)系統(tǒng)通常測(cè)量功能單一,并且需要長(zhǎng)時(shí)間的測(cè)量,在使用方面需要人力的投入。當(dāng)發(fā)生功能性問(wèn)題是要對(duì)整個(gè)監(jiān)測(cè)系統(tǒng)進(jìn)行檢查,而且無(wú)法達(dá)到對(duì)檢測(cè)數(shù)據(jù)的上傳。本次設(shè)計(jì)是利用Arduino UNO控制板和智能傳感器結(jié)合物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)出能夠?qū)崟r(shí)監(jiān)控校園環(huán)境的智能設(shè)備,能夠同時(shí)檢測(cè)多種指標(biāo),使監(jiān)測(cè)者能夠掌握實(shí)施校園環(huán)境情況。此外設(shè)計(jì)將Arduino UNO 板與網(wǎng)絡(luò)模塊相連接,使用網(wǎng)絡(luò)模塊實(shí)現(xiàn)數(shù)據(jù)的傳送,利用Yeelink網(wǎng)絡(luò)平臺(tái)實(shí)現(xiàn)對(duì)周邊環(huán)境狀態(tài)遠(yuǎn)距離的實(shí)時(shí)監(jiān)控,減少了技術(shù)人員的投入。除此之外可以通過(guò)連入更多樣的傳感器進(jìn)行拓展,使其具有更加多樣化的功能。對(duì)于本次設(shè)計(jì),在檢測(cè)到各種數(shù)據(jù)的同時(shí),能夠?qū)Σ杉降臄?shù)據(jù)進(jìn)行分析與存儲(chǔ),能夠讓使用者隨時(shí)隨地的對(duì)環(huán)境有一定的了解。