《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于開源硬件的在線空氣質(zhì)量監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
基于開源硬件的在線空氣質(zhì)量監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
2014年電子技術(shù)應(yīng)用第12期
王 凡,李 博
(電子科技大學(xué)中山學(xué)院 機(jī)電工程學(xué)院,廣東 中山528402)
摘要: 以開源硬件Arduino為主控板,,配合灰塵傳感器、有機(jī)物揮發(fā)氣體傳感器,、溫濕度傳感器采集空氣質(zhì)量數(shù)據(jù),通過以太網(wǎng)控制器將數(shù)據(jù)上傳至物聯(lián)網(wǎng)平臺(tái),,從而實(shí)現(xiàn)了空氣質(zhì)量的在線監(jiān)測(cè),。該系統(tǒng)具有性價(jià)比高、穩(wěn)定性好,、精度高等優(yōu)點(diǎn),,并可擴(kuò)展傳感器滿足其他測(cè)量環(huán)境需求。
中圖分類號(hào): TP23
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)12-0082-04
Design of the air quality online monitoring system based on open source hardware
Wang Fan,,Li Bo
School of Electromechanical Engineering, University of Electronic Science and Technology of China,
Abstract: In this paper, the system uses Arduino as the main control board. It gets air quality data form particle sensor, volatile organic compound gas sensors, temperature and humidity sensors. The system realizes the online monitoring of air quality by uploading data to the Internet of Things platform. The system has the advantages of high coat, good stability and high accuracy. The sensor system also can be easily extended.
Key words : open source hardware,;air quality monitoring;sensor,;Internet of Things

0 引言

  隨著人民生活水平的逐步提高,,綠色健康成為人們所倡導(dǎo)的生活方式。但是近年來空氣質(zhì)量令人擔(dān)憂,,國(guó)內(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ī)交互簡(jiǎn)單、攜帶方便,、方便查看數(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所示,。

001.jpg

  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ù)自己的需求精簡(jiǎn)系統(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所示,。

002.jpg

  在灰塵傳感器內(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ù),。

003.jpg

  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所示。

004.jpg

  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芯片,。

005.jpg

  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)行硬件支持。

  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)營(yíng)互聯(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=0.1776X3+0.24X2+94.003X(1)

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

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

  float dsmTemp0=(sumTimeofLow10*100.0)/dsmStatTimes10,;

  float dsmTemp10=0.1776*pow(dsmTemp0,3) - 0.24*pow

  (dsmTemp0,2) + 94.003*dsmTemp0;

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

  dsmTemp0=(sumTimeofLow25*100.0)/dsmStatTimes25;

  dsmTemp25=0.1776*pow(dsmTemp0,3) - 0.24*pow

  (dsmTemp0,2) + 94.003*dsmTemp0;

  dsmTemp25=dsmTemp10-dsmTemp25;

  為了減小外部環(huán)境的干擾,本設(shè)計(jì)對(duì)計(jì)算得到的粒子數(shù)進(jìn)行數(shù)字濾波處理,。常用的濾波算法很多,,但是由于系統(tǒng)資源有限,在設(shè)計(jì)中采用了算法簡(jiǎn)單、運(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)=[x(k)+x(k-1)+x(k-2)+…+x(k-N+1)]/N(2)

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

  Arduino的實(shí)現(xiàn)關(guān)鍵代碼為:

  uint16_t filteringDsm(uint8_t l,uint16_t _dsmData){

  filtSum[l] =filtSum[l]- filtDsm[l][filtI[l]];

  filtSum[l] =filtSum[l]+ _dsmData;

  filtDsm[l][filtI[l]] = _dsmData;

  filtI[l]=filtI[l]+1;

  if (filtI[l] >= FILT_N) filtI[l] = 0;

  return filtSum[l]/FILT_N;}

  其中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à)值。

  參考文獻(xiàn)

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

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

  [3] OXER J,BLEMINGS H.Practical Arduino:cool projects foropen 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,,(16):155-157.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。