《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于開源硬件的在線空氣質量監測系統設計
基于開源硬件的在線空氣質量監測系統設計
2014年電子技術應用第12期
王 凡,李 博
(電子科技大學中山學院 機電工程學院,廣東 中山528402)
摘要: 以開源硬件Arduino為主控板,配合灰塵傳感器、有機物揮發氣體傳感器、溫濕度傳感器采集空氣質量數據,通過以太網控制器將數據上傳至物聯網平臺,從而實現了空氣質量的在線監測。該系統具有性價比高、穩定性好、精度高等優點,并可擴展傳感器滿足其他測量環境需求。
中圖分類號: TP23
文獻標識碼: A
文章編號: 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 引言

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

  基于人們對健康生活的要求,需要一種人機交互簡單、攜帶方便、方便查看數據的空氣質量監測裝置,本文提出一種小巧方便的基于開源硬件的在線空氣質量監測系統。以開源硬件Arduino為核心,采用灰塵傳感器、有機物揮發氣體傳感器以及溫濕度傳感器作為數據采集,通過LCD模塊實現現場數據的顯示,并且通過以太網模塊將數據上傳至開放物聯網接入平臺,從而實現通過網頁或者手機端對空氣質量數據的實時查看。

1 系統硬件設計

  本系統采用開源硬件Arduino為系統核心,配合DSM501灰塵傳感器、MS1100有機物揮發氣體傳感器、DHT22溫濕度傳感器、 ENC28J60以太網控制器、1602字符型液晶模塊實現了整個硬件系統的搭建。其硬件構成如圖1所示。

001.jpg

  1.1 Arduino主控板

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

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

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

  1.2 灰塵傳感器

  空氣中的懸浮顆粒濃度是現今環境下影響空氣質量的重要指標,灰塵傳感器的主要工作原理為在暗室中的空氣灰塵物質被激光照射后,灰塵的濃度與光線散射強度成正比關系,通過光電感應傳感器即可將光強轉化為電流。

  本設計選用DSM501灰塵傳感器,該傳感器的測量精度可達到1 ?滋m,并可自動吸入空氣。其具體原理結構如圖2所示。

002.jpg

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

003.jpg

  1.3 揮發性有機化合物氣體傳感器

  揮發性有機化合物是指能參加大氣光化學反應的有機化合物。這種化合物對人體健康有著非常重大的影響,達到一定濃度時會直接傷害人體內臟以及大腦與神經系統,所以是空氣質量監測的重要參數。

  MS1100采用了半導體式的揮發性有機化合物氣體傳感器,可直接輸出電平數據或者模擬信號,本設計中采用模擬信號輸出至Arduino。

  1.4 溫濕度傳感器

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

  DHT22與Arduino之間采用的進行通信和同步的數據格式為單總線型,在每次5 ms左右的通信時間內,發送數據量為40 bit,其中濕度數據為16 bit,溫度數據為16 bit,校驗和為8 bit。當Arduino發送一次開始信號后,本為節能模式的DHT22變為高速模式,Arduino發送完開始信號后,進入拉高等待狀態,而DHT22收到Arduino發出的開始信號后則首先發出響應信號,在一段拉高時延后送出40 bit數據,隨后開始新的一次數據采集。故Arduino收到的并不是實時的數據,所以一般在程序中還需要刷新后再獲取數據。DHT22與Arduino通信的具體過程如圖4所示。

004.jpg

  1.5 以太網控制器

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

005.jpg

  ENC28J60是一款常見的帶SPI接口的以太網控制器,符合IEEE802.3規范,采用包過濾機制以對傳入數據包進行限制,集成MAC和10BASE-T端口。ENC28J60通過內部的直接存儲模塊實現對數據的快速吞吐并且可以對IP校驗和進行硬件支持。

  1.6 LCD顯示模塊

  雖然在線空氣質量監測系統的所有傳感器數據都可以通過網頁或者客戶端實時查看。但是在網絡故障的情況下,還有著本地查看的需求。在本設計中采用了LCD1602模塊。該模塊價格低廉,采用點陣式LCD,可以顯示數字、英文字符、符號。一共可以顯示16×2個字符,基本滿足本設計需要。

2 開放物聯網接入平臺

  物聯網作為近些年的信息技術的重要組成部分,其包含了兩層意思。一方面,物聯網只是傳統互聯網的延伸和擴展,其核心部分還是互聯網;另一方面,物聯網把傳統互聯網的終端從電腦、手機等延伸到了任何可以進行信息通信的物品。

  物聯網雖然發展迅速,但是卻沒有統一的融合管理平臺。因此涌現出了眾多物聯網的接入平臺,可以使用戶不再關注部署和運營互聯網,而是可以利用工具包直接處理傳感器數據,支持用戶使用多種協議方式上傳符合標準格式的傳感器數據,并且通過socket還能實現對傳感器設備的反向控制。

  本設計中選擇了Yeelink開放物聯網接入平臺。除了上述功能,Yeelink還實現了儀表盤交互、事件觸發、移動APP、社交等眾多功能,使整個系統有著強大的擴展性。

3 系統整合設計

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

  本設計采用灰塵傳感器、有機物揮發氣體傳感器、溫濕度傳感器對室內環境進行監測,并將監測信號發送至Arduino控制板;Arduino對數據進行處理之后通過LCD進行顯示,并通過以太網控制器模塊將數據上傳至物聯網平臺。

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

  3.1 傳感器數據處理

  DSM501灰塵傳感器將測量的數據轉化為PWM信號,但是該信號并不代表實際的空氣中的微型顆粒濃度,所以還需要對得到的低脈沖信號進行轉化。其中低脈沖率為總的低脈沖時間與單位采樣時間的比值。根據DSM501的特性曲線可以得到對應的粒子數為:

  Y=0.1776X3+0.24X2+94.003X(1)

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

  PM1.0的計算實現代碼為:

  float dsmTemp0=(sumTimeofLow10*100.0)/dsmStatTimes10;

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

  (dsmTemp0,2) + 94.003*dsmTemp0;

  PM2.5的計算實現代碼為:

  dsmTemp0=(sumTimeofLow25*100.0)/dsmStatTimes25;

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

  (dsmTemp0,2) + 94.003*dsmTemp0;

  dsmTemp25=dsmTemp10-dsmTemp25;

  為了減小外部環境的干擾,本設計對計算得到的粒子數進行數字濾波處理。常用的濾波算法很多,但是由于系統資源有限,在設計中采用了算法簡單、運算速度快的遞推平均濾波算法。

  遞推平均濾波屬于平滑濾波,它將N個測量值放入暫存隊列區域,當獲取新的數據時,新測量的數據會插入隊尾并同時舍棄隊首的數據,之后對新得到的N個數據做算術平均值。采用這種方式做N次的濾波運算比普通的算術平均值計算方法快N-1倍,其具體算法為:

  y(k)=[x(k)+x(k-1)+x(k-2)+…+x(k-N+1)]/N(2)

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

  Arduino的實現關鍵代碼為:

  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設置為10,數組元素的初始值均為0。

  3.2 數據在線監測集成

  物聯網的構架一般分為三個層次。最底層為可以采集、測量數據及被控制的儀器或設備,在本設計中為各種傳感器;上一層為將底層采集數據發給云端服務器或將控制信號發給底層的設備,在本設計中為Arduino控制板配合ENC28J60以太網控制器。該層的設備一方面要能與底層測量設備進行通信,另一方面要具備網絡功能;最上層為云端服務器,云端服務器可以存儲與分析數據,并且用戶可以通過各種終端設備訪問數據庫,以實現基于數據的各種應用。

  物聯網平臺一般采用開放的API將傳感器及測量設備接入平臺。當用戶在物聯網平臺注冊后將會得到一個APIKey。在用戶管理界面還能添加新的設備與傳感器ID,物聯網平臺通過這些參數將傳感器的數據存儲到對應的云端數據庫之中。

  根據不同的物聯網平臺進行相應的數據格式化之后,通過ENC28J60傳感器的Ethercard庫的Stash函數實現數據的上傳。

  當傳感器數據成功上傳至云端服務器后,即可通過網頁查看實時數據,實現對空氣質量的在線監測。

4 總結

  經實驗證明,基于開源硬件的在線空氣質量監測系統運行穩定。本文采用灰塵傳感器、有機物揮發氣體傳感器、溫濕度傳感器、Arduino控制板、LCD液晶顯示模塊、以太網控制模塊等共同構建了監測系統。該系統一方面可以通過LCD模塊在本地實時查看空氣質量狀態,另一方面可以通過網絡進行遠程查看。該系統小巧緊湊,操作方便,適合現代人們生活需求,具有市場潛力和開發價值。

  參考文獻

  [1] 鄧桂昌.室內便攜式智能空氣品質監測儀的研究與設計[D].長春:吉林大學,2009.

  [2] 杜娟.便攜式現場甲醛檢測儀的設計[D].鄭州:鄭州大學, 2010.

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

  [4] 楊繼志,楊宇環.基于Arduino的網絡互動產品創新設計[J].機電產品開發與創新,2012,25(1):99-100,60.

  [5] 蔡睿妍.Arduino的原理及應用[J].電子設計工程,2012,(16):155-157.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 最近中文字幕mv高清在线视频| 色94色欧美一区| 女人18片毛片60分钟| 国产亚洲美女精品久久久久 | 成人爽爽激情在线观看| 妖精的尾巴ova| 国产精品免费看| 日韩精品无码一区二区三区| 国产激情久久久久影| 久久国产乱子伦精品免费看| 波多野结衣办公室在线| 国产mv在线天堂mv免费观看| 看黄色免费网站| 天天操天天干天天玩| 丰满少妇大力进入| 男人把女人桶爽30分钟应用| 欧美国产激情二区三区| 少妇精品久久久一区二区三区| 亚洲视频456| 色偷偷人人澡人人爽人人模| 国产精品99久久免费观看| 丰满少妇人妻无码| 欧美午夜理伦三级理论三级| 你懂的手机在线视频| 色吊丝最新在线播放网站| 国产成社区在线视频观看| 一级人做人爰a全过程免费视频| 猫咪免费人成网站地址| 国产精品久久久久免费a∨| chinese国产xxxx实拍| 手机小视频在线观看| 亚洲精品伊人久久久久| 国产色丁香久久综合| 成人无码精品一区二区三区| 九九免费观看全部免费视频| 欧美激情一区二区三区免费观看 | 国产精品蜜芽在线观看| www.久久.com| 成在人线AV无码免费| 久久人妻AV中文字幕| 最近中文国语字幕在线播放 |