国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于開源硬件的在線空氣質(zhì)量監(jiān)測(cè)系統(tǒng)設(shè)計(jì)*

2014-12-10 05:37:44凡,李
電子技術(shù)應(yīng)用 2014年12期
關(guān)鍵詞:灰塵開源以太網(wǎng)

王 凡,李 博

(電子科技大學(xué)中山學(xué)院 機(jī)電工程學(xué)院,廣東 中山 528402)

0 引言

隨著人民生活水平的逐步提高,綠色健康成為人們所倡導(dǎo)的生活方式。但是近年來空氣質(zhì)量令人擔(dān)憂,國內(nèi)大部分城市都出現(xiàn)過嚴(yán)重的霧霾天氣??諝赓|(zhì)量消息成為人們關(guān)注的重點(diǎn),也是逐漸通過網(wǎng)絡(luò)更新發(fā)布,參考文獻(xiàn)[1-2]中提出了針對(duì)空氣質(zhì)量監(jiān)測(cè)的專門的儀器裝置。一般情況下,雖然有專門儀器檢測(cè)空氣中的有害氣體,但普遍價(jià)格偏貴,測(cè)量耗費(fèi)時(shí)間,便攜性不佳,某些儀器還需要專業(yè)人員操作,并且這些裝置的數(shù)據(jù)無法通過網(wǎng)絡(luò)在線查看。

基于人們對(duì)健康生活的要求,需要一種人機(jī)交互簡單、攜帶方便、方便查看數(shù)據(jù)的空氣質(zhì)量監(jiān)測(cè)裝置,本文提出一種小巧方便的基于開源硬件的在線空氣質(zhì)量監(jiān)測(cè)系統(tǒng)。以開源硬件Arduino為核心,采用灰塵傳感器、有機(jī)物揮發(fā)氣體傳感器以及溫濕度傳感器作為數(shù)據(jù)采集,通過LCD模塊實(shí)現(xiàn)現(xiàn)場(chǎng)數(shù)據(jù)的顯示,并且通過以太網(wǎng)模塊將數(shù)據(jù)上傳至開放物聯(lián)網(wǎng)接入平臺(tái),從而實(shí)現(xiàn)通過網(wǎng)頁或者手機(jī)端對(duì)空氣質(zhì)量數(shù)據(jù)的實(shí)時(shí)查看。

1 系統(tǒng)硬件設(shè)計(jì)

本系統(tǒng)采用開源硬件Arduino為系統(tǒng)核心,配合DSM501灰塵傳感器、MS1100有機(jī)物揮發(fā)氣體傳感器、DHT22溫濕度傳感器、ENC28J60以太網(wǎng)控制器、1602字符型液晶模塊實(shí)現(xiàn)了整個(gè)硬件系統(tǒng)的搭建。其硬件構(gòu)成如圖1所示。

圖1 在線空氣質(zhì)量監(jiān)測(cè)系統(tǒng)硬件組成

1.1 Arduino主控板

Arduino是源自意大利的一個(gè)教學(xué)用開源硬件項(xiàng)目,其硬件系統(tǒng)是高度模塊化的,通過USB接口與計(jì)算機(jī)連接,包括14通道數(shù)字輸入/輸出,其中包括 6通道 PWM輸出、6通道10位ADC模擬輸入/輸出通道,電源電壓主要有 5 V和 3.3 V[3]。

Arduino主控板采用ATMEGA328P-PU微處理控制器。ATmega328P是一款8位的AVR處理器,具有功耗低、性能高的特點(diǎn)。在核心控制板的外圍,有開關(guān)量輸入輸出模塊、各種模擬量傳感器輸入模塊、總線類傳感器的輸入模塊,還有網(wǎng)絡(luò)通信模塊。Arduino系統(tǒng)是基于單片機(jī)開發(fā)的,已有大量應(yīng)用通用和標(biāo)準(zhǔn)的電子元器件,包括硬件和軟件在內(nèi)的整個(gè)設(shè)計(jì),代碼均采用開源方式發(fā)布[4]。并且Arduino還提供了自己的開發(fā)語言,IDE開發(fā)環(huán)境支持 Windows、Linux、Mac OS等主流操作系統(tǒng)。

Arduino的硬件和軟件都是開源的,這就意味著任何人都可以自由地獲取代碼、圖表、設(shè)計(jì)。利用開源的設(shè)計(jì)方案,任何人也可以制作克隆板,并且可以根據(jù)自己的需求精簡系統(tǒng)控制成本。這種開放的精神促進(jìn)了Arduino的蓬勃發(fā)展,有著大量的愛好者為其開發(fā)新的擴(kuò)展板,并維護(hù)著豐富的第三方庫。

1.2 灰塵傳感器

空氣中的懸浮顆粒濃度是現(xiàn)今環(huán)境下影響空氣質(zhì)量的重要指標(biāo),灰塵傳感器的主要工作原理為在暗室中的空氣灰塵物質(zhì)被激光照射后,灰塵的濃度與光線散射強(qiáng)度成正比關(guān)系,通過光電感應(yīng)傳感器即可將光強(qiáng)轉(zhuǎn)化為電流。

本設(shè)計(jì)選用DSM501灰塵傳感器,該傳感器的測(cè)量精度可達(dá)到1μm,并可自動(dòng)吸入空氣。其具體原理結(jié)構(gòu)如圖2所示。

圖2 DSM501灰塵傳感器的原理圖

在灰塵傳感器內(nèi)部通過設(shè)置加熱板使氣流上升從而促進(jìn)外部空氣流入模塊內(nèi)部,如有灰塵等粒子通過時(shí),在透鏡的放大作用下阻斷發(fā)光二極管光源使得光電傳感器檢測(cè)不到光線,從而實(shí)現(xiàn)粒子計(jì)數(shù)。如果光電傳感器檢測(cè)不到光線,輸出低電平信號(hào),反之輸出高電平信號(hào),形成如圖3所示的PMW脈沖寬度調(diào)制信號(hào)。通過計(jì)算一定時(shí)間內(nèi)低電平脈沖的比例,參照特征曲線,即可以計(jì)算出空氣中的粒子數(shù)以及PM2.5的參數(shù)。

1.3 揮發(fā)性有機(jī)化合物氣體傳感器

揮發(fā)性有機(jī)化合物是指能參加大氣光化學(xué)反應(yīng)的有機(jī)化合物。這種化合物對(duì)人體健康有著非常重大的影響,達(dá)到一定濃度時(shí)會(huì)直接傷害人體內(nèi)臟以及大腦與神經(jīng)系統(tǒng),所以是空氣質(zhì)量監(jiān)測(cè)的重要參數(shù)。

MS1100采用了半導(dǎo)體式的揮發(fā)性有機(jī)化合物氣體傳感器,可直接輸出電平數(shù)據(jù)或者模擬信號(hào),本設(shè)計(jì)中采用模擬信號(hào)輸出至Arduino。

1.4 溫濕度傳感器

為了提高測(cè)試的精確度,減少使用代碼校準(zhǔn),本設(shè)計(jì)使用了DHT22溫濕度傳感器。DHT22傳感器采用電容式感濕原件與NTC測(cè)溫元件并含有一個(gè)小型的8位單片機(jī)。傳感器在檢測(cè)信號(hào)處理過程中調(diào)用儲(chǔ)存在OTP內(nèi)存中的校準(zhǔn)參數(shù),以單線制串行接口輸出已校準(zhǔn)信號(hào)。

DHT22與Arduino之間采用的進(jìn)行通信和同步的數(shù)據(jù)格式為單總線型,在每次5 ms左右的通信時(shí)間內(nèi),發(fā)送數(shù)據(jù)量為40 bit,其中濕度數(shù)據(jù)為16 bit,溫度數(shù)據(jù)為16 bit,校驗(yàn)和為 8 bit。當(dāng)Arduino發(fā)送一次開始信號(hào)后,本為節(jié)能模式的DHT22變?yōu)楦咚倌J?,Arduino發(fā)送完開始信號(hào)后,進(jìn)入拉高等待狀態(tài),而DHT22收到Arduino發(fā)出的開始信號(hào)后則首先發(fā)出響應(yīng)信號(hào),在一段拉高時(shí)延后送出40 bit數(shù)據(jù),隨后開始新的一次數(shù)據(jù)采集。故Arduino收到的并不是實(shí)時(shí)的數(shù)據(jù),所以一般在程序中還需要刷新后再獲取數(shù)據(jù)。DHT22與Arduino通信的具體過程如圖4所示。

圖4 DHT22與Arduino通信時(shí)序圖

1.5 以太網(wǎng)控制器

相對(duì)于傳統(tǒng)的空氣質(zhì)量檢測(cè)裝置,本設(shè)計(jì)的重點(diǎn)是數(shù)據(jù)的網(wǎng)絡(luò)化,即如何在線查看空氣質(zhì)量情況。Arduino官方的以太網(wǎng)模塊為Wiznet W5100,對(duì)于Arduino的IDE所提供的Ethernet庫也是基于這個(gè)芯片。但是還有一種廣泛使用的以太網(wǎng)微型控制器,這種控制器體積更小,價(jià)格相對(duì)便宜,有著廣泛的第三方庫支持,ENC28J60與W5100的比較如圖5所示。不過W5100芯片集成了成熟的TCP/IP協(xié)議棧,節(jié)省了MCU資源。在本設(shè)計(jì)中考慮到成本與體積問題,采用了ENC28J60芯片。

ENC28J60是一款常見的帶SPI接口的以太網(wǎng)控制器,符合IEEE802.3規(guī)范,采用包過濾機(jī)制以對(duì)傳入數(shù)據(jù)包進(jìn)行限制,集成MAC和10BASE-T端口。ENC28J60通過內(nèi)部的直接存儲(chǔ)模塊實(shí)現(xiàn)對(duì)數(shù)據(jù)的快速吞吐并且可以對(duì)IP校驗(yàn)和進(jìn)行硬件支持。

圖5 ENC28J60控制器(左)與 W5100控制器(右)比較

1.6 LCD顯示模塊

雖然在線空氣質(zhì)量監(jiān)測(cè)系統(tǒng)的所有傳感器數(shù)據(jù)都可以通過網(wǎng)頁或者客戶端實(shí)時(shí)查看。但是在網(wǎng)絡(luò)故障的情況下,還有著本地查看的需求。在本設(shè)計(jì)中采用了LCD1602模塊。該模塊價(jià)格低廉,采用點(diǎn)陣式LCD,可以顯示數(shù)字、英文字符、符號(hào)。一共可以顯示16×2個(gè)字符,基本滿足本設(shè)計(jì)需要。

2 開放物聯(lián)網(wǎng)接入平臺(tái)

物聯(lián)網(wǎng)作為近些年的信息技術(shù)的重要組成部分,其包含了兩層意思。一方面,物聯(lián)網(wǎng)只是傳統(tǒng)互聯(lián)網(wǎng)的延伸和擴(kuò)展,其核心部分還是互聯(lián)網(wǎng);另一方面,物聯(lián)網(wǎng)把傳統(tǒng)互聯(lián)網(wǎng)的終端從電腦、手機(jī)等延伸到了任何可以進(jìn)行信息通信的物品。

物聯(lián)網(wǎng)雖然發(fā)展迅速,但是卻沒有統(tǒng)一的融合管理平臺(tái)。因此涌現(xiàn)出了眾多物聯(lián)網(wǎng)的接入平臺(tái),可以使用戶不再關(guān)注部署和運(yùn)營互聯(lián)網(wǎng),而是可以利用工具包直接處理傳感器數(shù)據(jù),支持用戶使用多種協(xié)議方式上傳符合標(biāo)準(zhǔn)格式的傳感器數(shù)據(jù),并且通過socket還能實(shí)現(xiàn)對(duì)傳感器設(shè)備的反向控制。

本設(shè)計(jì)中選擇了Yeelink開放物聯(lián)網(wǎng)接入平臺(tái)。除了上述功能,Yeelink還實(shí)現(xiàn)了儀表盤交互、事件觸發(fā)、移動(dòng)APP、社交等眾多功能,使整個(gè)系統(tǒng)有著強(qiáng)大的擴(kuò)展性。

3 系統(tǒng)整合設(shè)計(jì)

Arduino語言建立在C/C++基礎(chǔ)上,類似基礎(chǔ)的C語言,Arduino語言把AVR單片機(jī)相關(guān)的一些參數(shù)設(shè)置都函數(shù)化,使用戶不用去了解底層,而專心于解決問題[5]。

本設(shè)計(jì)采用灰塵傳感器、有機(jī)物揮發(fā)氣體傳感器、溫濕度傳感器對(duì)室內(nèi)環(huán)境進(jìn)行監(jiān)測(cè),并將監(jiān)測(cè)信號(hào)發(fā)送至Arduino控制板;Arduino對(duì)數(shù)據(jù)進(jìn)行處理之后通過LCD進(jìn)行顯示,并通過以太網(wǎng)控制器模塊將數(shù)據(jù)上傳至物聯(lián)網(wǎng)平臺(tái)。

Arduino程序必須包括 setup()和 loop()兩個(gè)函數(shù),其中setup()函數(shù)只在程序開始時(shí)使用,這個(gè)函數(shù)可以在主循環(huán)開始前為程序設(shè)定一些通用的規(guī)則,如初始化變量、管腳模式、調(diào)用庫函數(shù)等。loop()在setup()函數(shù)之后,即初始化之后,每一條loop()函數(shù)中的代碼都要執(zhí)行,并且按順序逐個(gè)執(zhí)行,直到函數(shù)的最后。然后loop()函數(shù)再次開始從頂部執(zhí)行,一直循環(huán)下去,主要使用它來運(yùn)轉(zhuǎn)Arduino。

3.1 傳感器數(shù)據(jù)處理

DSM501灰塵傳感器將測(cè)量的數(shù)據(jù)轉(zhuǎn)化為PWM信號(hào),但是該信號(hào)并不代表實(shí)際的空氣中的微型顆粒濃度,所以還需要對(duì)得到的低脈沖信號(hào)進(jìn)行轉(zhuǎn)化。其中低脈沖率為總的低脈沖時(shí)間與單位采樣時(shí)間的比值。根據(jù)DSM501的特性曲線可以得到對(duì)應(yīng)的粒子數(shù)為:

其中Y為粒子數(shù),X為低脈沖百分率。

PM1.0的計(jì)算實(shí)現(xiàn)代碼為:

為了減小外部環(huán)境的干擾,本設(shè)計(jì)對(duì)計(jì)算得到的粒子數(shù)進(jìn)行數(shù)字濾波處理。常用的濾波算法很多,但是由于系統(tǒng)資源有限,在設(shè)計(jì)中采用了算法簡單、運(yùn)算速度快的遞推平均濾波算法。

遞推平均濾波屬于平滑濾波,它將N個(gè)測(cè)量值放入暫存隊(duì)列區(qū)域,當(dāng)獲取新的數(shù)據(jù)時(shí),新測(cè)量的數(shù)據(jù)會(huì)插入隊(duì)尾并同時(shí)舍棄隊(duì)首的數(shù)據(jù),之后對(duì)新得到的N個(gè)數(shù)據(jù)做算術(shù)平均值。采用這種方式做N次的濾波運(yùn)算比普通的算術(shù)平均值計(jì)算方法快N-1倍,其具體算法為:

其中 y(k)為經(jīng)過平均濾波處理后的數(shù)據(jù),x(n)為第 n次測(cè)量后得到的數(shù)據(jù)。

其中N設(shè)置為10,數(shù)組元素的初始值均為 0。

3.2 數(shù)據(jù)在線監(jiān)測(cè)集成

物聯(lián)網(wǎng)的構(gòu)架一般分為三個(gè)層次。最底層為可以采集、測(cè)量數(shù)據(jù)及被控制的儀器或設(shè)備,在本設(shè)計(jì)中為各種傳感器;上一層為將底層采集數(shù)據(jù)發(fā)給云端服務(wù)器或?qū)⒖刂菩盘?hào)發(fā)給底層的設(shè)備,在本設(shè)計(jì)中為Arduino控制板配合ENC28J60以太網(wǎng)控制器。該層的設(shè)備一方面要能與底層測(cè)量設(shè)備進(jìn)行通信,另一方面要具備網(wǎng)絡(luò)功能;最上層為云端服務(wù)器,云端服務(wù)器可以存儲(chǔ)與分析數(shù)據(jù),并且用戶可以通過各種終端設(shè)備訪問數(shù)據(jù)庫,以實(shí)現(xiàn)基于數(shù)據(jù)的各種應(yīng)用。

物聯(lián)網(wǎng)平臺(tái)一般采用開放的API將傳感器及測(cè)量設(shè)備接入平臺(tái)。當(dāng)用戶在物聯(lián)網(wǎng)平臺(tái)注冊(cè)后將會(huì)得到一個(gè)APIKey。在用戶管理界面還能添加新的設(shè)備與傳感器ID,物聯(lián)網(wǎng)平臺(tái)通過這些參數(shù)將傳感器的數(shù)據(jù)存儲(chǔ)到對(duì)應(yīng)的云端數(shù)據(jù)庫之中。

根據(jù)不同的物聯(lián)網(wǎng)平臺(tái)進(jìn)行相應(yīng)的數(shù)據(jù)格式化之后,通過ENC28J60傳感器的Ethercard庫的Stash函數(shù)實(shí)現(xiàn)數(shù)據(jù)的上傳。

當(dāng)傳感器數(shù)據(jù)成功上傳至云端服務(wù)器后,即可通過網(wǎng)頁查看實(shí)時(shí)數(shù)據(jù),實(shí)現(xiàn)對(duì)空氣質(zhì)量的在線監(jiān)測(cè)。

4 總結(jié)

經(jīng)實(shí)驗(yàn)證明,基于開源硬件的在線空氣質(zhì)量監(jiān)測(cè)系統(tǒng)運(yùn)行穩(wěn)定。本文采用灰塵傳感器、有機(jī)物揮發(fā)氣體傳感器、溫濕度傳感器、Arduino控制板、LCD液晶顯示模塊、以太網(wǎng)控制模塊等共同構(gòu)建了監(jiān)測(cè)系統(tǒng)。該系統(tǒng)一方面可以通過LCD模塊在本地實(shí)時(shí)查看空氣質(zhì)量狀態(tài),另一方面可以通過網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程查看。該系統(tǒng)小巧緊湊,操作方便,適合現(xiàn)代人們生活需求,具有市場(chǎng)潛力和開發(fā)價(jià)值。

[1]鄧桂昌.室內(nèi)便攜式智能空氣品質(zhì)監(jiān)測(cè)儀的研究與設(shè)計(jì)[D].長春:吉林大學(xué),2009.

[2]杜娟.便攜式現(xiàn)場(chǎng)甲醛檢測(cè)儀的設(shè)計(jì)[D].鄭州:鄭州大學(xué),2010.

[3]OXER J,BLEMINGS H.Practical Arduino:cool projects for open source hardware[M].New York:SpringerVerlag,2009:1-10.

[4]楊繼志,楊宇環(huán).基于Arduino的網(wǎng)絡(luò)互動(dòng)產(chǎn)品創(chuàng)新設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2012,25(1):99-100,60.

[5]蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程,2012,20(16):155-157.

猜你喜歡
灰塵開源以太網(wǎng)
你真的認(rèn)識(shí)灰塵嗎?
學(xué)與玩(2022年9期)2022-10-31 02:53:50
灰塵快到桶里來
基于1500以太網(wǎng)養(yǎng)豬場(chǎng)的智能飼喂控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
灰塵在繁衍
五毛錢能買多少頭牛
談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動(dòng)化中的應(yīng)用
電子制作(2017年24期)2017-02-02 07:14:44
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
開源計(jì)算機(jī)輔助翻譯工具研究
朝阳县| 自治县| 神农架林区| 上栗县| 攀枝花市| 白银市| 沈阳市| 依安县| 涞源县| 思南县| 邹城市| 都安| 德保县| 阿瓦提县| 安丘市| 枞阳县| 永泰县| 苏尼特左旗| 仲巴县| 汉阴县| 玛纳斯县| 上思县| 东台市| 紫阳县| 嵩明县| 大悟县| 交城县| 泾源县| 蒙自县| 东阳市| 新源县| 鹰潭市| 晴隆县| 景谷| 三亚市| 威宁| 太仆寺旗| 长寿区| 内乡县| 海伦市| 旌德县|