通過給智能樓宇系統(tǒng)增加空氣質(zhì)量傳感器,工程師可以實現(xiàn)有害氣體和化學(xué)物質(zhì)聚積的早期預(yù)警,但商用空氣質(zhì)量傳感器缺乏加入智能樓宇網(wǎng)絡(luò)所需的集成功能。然而,借助易于使用的開發(fā)套件,工程師可以增加所需的處理能力和無線功能以克服這一缺陷。
為確定環(huán)境中 CO2或揮發(fā)性有機化合物 (VOC) 的 ppm 濃度,最受歡迎的空氣質(zhì)量監(jiān)測設(shè)備往往采用半導(dǎo)體電化學(xué)元件,這些元件可產(chǎn)生與被測氣體或化學(xué)物質(zhì)的濃度成比例的輸出電壓。但是,溫度和濕度均會影響測量精度。溫度和濕度傳感器可以為連續(xù)補償算法提供數(shù)據(jù)以改善空氣質(zhì)量傳感器輸出的精度,但并沒有常規(guī)性地與此類空氣質(zhì)量傳感器集成。
此外,當(dāng)前各類空氣質(zhì)量傳感器缺乏其他類型傳感器常用的無線技術(shù),而要連接到智能樓宇網(wǎng)絡(luò)必須有無線技術(shù)。
這些缺陷使得工程師更難以為家庭、商業(yè)和工業(yè)應(yīng)用設(shè)計支持無線網(wǎng)絡(luò)的空氣質(zhì)量傳感器。
不過,最近推出的適用于空氣質(zhì)量監(jiān)測產(chǎn)品的開發(fā)套件包含了溫度和濕度傳感器以及無線連接,因此相關(guān)設(shè)計挑戰(zhàn)迎刃而解。本文介紹如何使用這些開發(fā)套件來縮短空氣質(zhì)量監(jiān)測產(chǎn)品的設(shè)計周期。
MOS 傳感器特性
監(jiān)測空氣質(zhì)量的傳感器有多種類型。實例包括電化學(xué) (EC)、非分散紅外 (NDIR)、光電離檢測器 (PID) 和熱類型。
但是,金屬氧化物半導(dǎo)體 (MOS) 類型最符合智能樓宇應(yīng)用的監(jiān)測要求。這些器件結(jié)構(gòu)緊湊,價格相對便宜,可以采用電池供電(具有足夠容量定期為 MOS 傳感器的加熱器供電),檢測范圍與室內(nèi)工作場所中典型的 C02和 VOC 濃度相匹配(圖 1)。
圖 1:一天中臥室內(nèi) CO2和 VOC 的濃度變化。(圖片來源:IDT)
在運行中,檢測元件被加熱到數(shù)百攝氏度 (?C)。精確的溫度決定了元件對特定氣體或化學(xué)物質(zhì)的選擇性。靈敏度取決于材料的厚度。
傳感器采用n-型或p-型半導(dǎo)體檢測元件制造。檢測元件吸收(p-型)或解吸(n-型)目標(biāo)化學(xué)物質(zhì),與目標(biāo)化合物的電化學(xué)反應(yīng)會增加或移除半導(dǎo)體導(dǎo)帶中的電子。電子遷移使檢測元件的電阻率或電導(dǎo)率從已知基線值呈線性變化(圖 2)。
圖 2:響應(yīng)目標(biāo)化學(xué)物質(zhì)濃度的變化,MOS 傳感器元件的電阻率呈線性變化。本例中的化學(xué)物質(zhì)為乙醇。(圖片來源:IDT)
ams為智能家居應(yīng)用提供了一種商用 MOS 傳感器:CCS811B是一款數(shù)字 MOS 傳感器解決方案,集成了微控制器、模數(shù)轉(zhuǎn)換器 (ADC) 和 I2C 接口(圖 3)。該器件處理傳感器原始測量結(jié)果,輸出“等效總 VOC” (eTVOC) 和“等效 CO2” (eCO2) 值。該傳感器采用 10 引線 2.7 × 4.0 × 1.1 mm 封裝。
圖 3:ams 的 CCS811B 數(shù)字 MOS 傳感器集成一個板載微控制器,用于處理傳感器的原始數(shù)據(jù)。(圖片來源:ams)
對于給定的空氣成分、溫度和濕度,每個 MOS 傳感器都有一個特征基線電阻。它用作計算氣體或化學(xué)物質(zhì)濃度的基礎(chǔ):電阻相對于基線值的差異與氣體或化學(xué)物質(zhì)濃度成比例。
實際應(yīng)用中的環(huán)境溫度和濕度會影響傳感器元件的基線電阻,改變其靈敏度,進而改變其精度。例如,當(dāng)環(huán)境溫度升高時,傳感器元件的基線電阻(濕度一定時)會提高,而濕度增加時,基線電阻(溫度一定時)會降低。
傳感器制造商建議將空氣質(zhì)量傳感器與溫度和濕度傳感器配合使用,以便監(jiān)控微處理器可以運行算法來連續(xù)補償基線電阻的變化。
針對此類應(yīng)用,Bosch Sensortec的BME280是一款頗受歡迎的器件。BME280 將數(shù)字濕度、壓力和溫度結(jié)合在一個 LGA 封裝中,基底面為 2.5 x 2.5 x 0.93 mm。該傳感器具有 I2C 接口,可與外部微處理器通信,并需要 1.71 至 3.6 V 的電源為傳感器供電。當(dāng)傳感器處于休眠模式時,電流消耗降至 0.1 微安 (μA)。
商用 MOS 傳感器缺乏加入無線網(wǎng)絡(luò)所需的內(nèi)置連接能力。然而,有許多低功耗無線芯片可專用于直接與傳感器介接。其中許多器件還包含非常強大的嵌入式微處理器,足以運行所需算法來處理原始傳感器數(shù)據(jù)及補償濕度和溫度變化。(有關(guān)適合此應(yīng)用的無線技術(shù)的更多信息,請參見 Digi-Key 文章“低功耗無線技術(shù)之比較”。)
開發(fā)基礎(chǔ)型空氣質(zhì)量傳感器
設(shè)計具無線連接功能的空氣質(zhì)量監(jiān)測器需要工程師將分立式 MOS 傳感器、濕度和溫度傳感器、無線收發(fā)器以及(某些情況下)微處理器結(jié)合成一個有效系統(tǒng)。這種復(fù)雜性使得該任務(wù)非常艱巨且耗時。
然而,市場上有一系列開發(fā)套件可供選擇,它們能大大簡化初始設(shè)計和測試過程。例如,SparkFun Electronics用于空氣質(zhì)量傳感器開發(fā)的SEN-14348Qwiic 環(huán)境型組合分線板將 CCS811B 空氣質(zhì)量傳感器與用于溫度和濕度補償?shù)?BME280 傳感器相結(jié)合,并含有兩個物理 I2C 接口,采用 4 引腳極化 Qwiic 連接器(圖 4)。
圖 4:SparkFun 的 SEN-14348 分線板結(jié)合了 CCS811B 傳感器和用于溫度和濕度補償?shù)?BME280 器件。(圖片來源:SparkFun)
雖然 SEN-14348 可用作溫度和濕度補償型空氣質(zhì)量傳感器設(shè)計的基礎(chǔ),但它并不是一個綜合性解決方案。CCS811B 包含一個微處理器,但除了監(jiān)控周期性測量和執(zhí)行基線補償之外,該器件的能力有限。對于更復(fù)雜的應(yīng)用,例如監(jiān)測空氣質(zhì)量閾值或計算氣體/化學(xué)物質(zhì)長期濃度,則超出了該微處理器的能力。為利用 SEN-14348 支持更高級的應(yīng)用,需要將其連接到功能更強大的微處理器。
對于初步開發(fā),SparkFun 建議將 SEN-14348 分線板連接到Arduino兼容計算機,例如RedBoard。RedBoard 通過 USB 電纜(其也為電路板供電)連接到 PC,以便從 Arduino IDE 上傳代碼。為將 RedBoard 與 Qwiic 分線板一起使用,計算機需要利用DEV-14352Qwiic 擴展板進行適配。擴展板含有一個 I2C 連接器,并將 5 V RedBoard 電源調(diào)節(jié)至 SEN-14348 分線板上傳感器所需的 3.3 V 電壓。
開始的時候,開發(fā)人員需要從 Github 下載 SparkFun CCS811 和 BME280 Arduino 庫。傳感器從 Arduino IDE 對采樣率、有限脈沖響應(yīng) (FIR) 濾波器系數(shù)和過采樣模式等信息進行配置。
下面的代碼片段顯示了獲取讀數(shù)之前初始化 BME280 傳感器的例程(CCS811 的初始化例程類似)。
復(fù)制#include#include #defineCCS811_ADDR0x5B//DefaultI2CAddress//#defineCCS811_ADDR0x5A//AlternateI2CAddress//GlobalsensorobjectsCCS811myCCS811(CCS811_ADDR);BME280myBME280;voidsetup(){Serial.begin(9600);Serial.println();Serial.println("ApplyBME280datatoCCS811forcompensation.");//ThisbeginstheCCS811sensorandprintserrorstatusof.begin()CCS811Core::statusreturnCode=myCCS811.begin();if(returnCode!=CCS811Core::SENSOR_SUCCESS){Serial.println("ProblemwithCCS811");printDriverError(returnCode);}else{Serial.println("CCS811online");}//InitializeBME280//ForI2C,enablethefollowinganddisabletheSPIsectionmyBME280.settings.commInterface=I2C_MODE;myBME280.settings.I2CAddress=0x77;myBME280.settings.runMode=3;//NormalmodemyBME280.settings.tStandby=0;myBME280.settings.filter=4;myBME280.settings.tempOverSample=5;myBME280.settings.pressOverSample=5;myBME280.settings.humidOverSample=5;//Calling.begin()causesthesettingstobeloadeddelay(10);//Makesuresensorhadenoughtimetoturnon.BME280requires2mstostartup.byteid=myBME280.begin();//ReturnsIDof0x60ifsuccessfulif(id!=0x60){Serial.println("ProblemwithBME280");}else{Serial.println("BME280online");}}
代碼片段 1:獲取讀數(shù)之前初始化 BME280 傳感器的例程。(代碼來源:SparkFun)
要從傳感器獲取讀數(shù),必須在代碼(Arduino“草圖”)中添加一個 void 循環(huán)(代碼片段 2)。
復(fù)制voidloop(){if(myCCS811.dataAvailable())//ChecktoseeifCCS811hasnewdata(it'stheslowestsensor){myCCS811.readAlgorithmResults();//ReadlatestfromCCS811andupdatetVOCandCO2variables//getWeather();//Getlatesthumidity/pressure/tempdatafromBME280printData();//Prettyprintallthedata}elseif(myCCS811.checkForStatusError())//ChecktoseeifCCS811hasthrownanerror{Serial.println(myCCS811.getErrorRegister());//PrintswhateverCSS811errorflagsaredetected}delay(2000);//Waitfornextreading}
代碼片段 2:從 CCS811 傳感器獲取讀數(shù)并輸出的例程。(代碼來源:SparkFun)
來自 BME280 的環(huán)境數(shù)據(jù)(“ENV_DATA”)被寫入 CCS811,因此可以將補償因子應(yīng)用于基線電阻,以考慮溫度和濕度的影響。
濕度和溫度信息以無符號 16 位整數(shù)形式傳遞,分辨率為 1/512% RH 和 1/512 度。濕度的默認值為 50% (= 0x64, 0x00)。例如,48.5% 的濕度 = 0x61, 0x00。溫度讀數(shù)包括一個偏移,0 對應(yīng) -25°C。默認值為 25°C (= 0x64, 0x00)。例如,23.5°C = 0x61, 0x00。
從 BME280 向 CCS811 饋送溫度和濕度信息后,微處理器便可應(yīng)用補償算法(代碼片段 3)。
復(fù)制voidloop(){//Checktoseeifdataisavailableif(myCCS811.dataAvailable()){//CallingthisfunctionupdatestheglobaltVOCandeCO2variablesmyCCS811.readAlgorithmResults();//printDatafetchesthevaluesoftVOCandeCO2printData();floatBMEtempC=myBME280.readTempC();floatBMEhumid=myBME280.readFloatHumidity();Serial.print("Applyingnewvalues(degC,%):");Serial.print(BMEtempC);Serial.print(",");Serial.println(BMEhumid);Serial.println();//ThissendsthetemperaturedatatotheCCS811myCCS811.setEnvironmentalData(BMEhumid,BMEtempC);}elseif(myCCS811.checkForStatusError()){Serial.println(myCCS811.getErrorRegister());//PrintswhateverCSS811errorflagsaredetected}delay(2000);//Waitfornextreading}
代碼片段 3:饋送溫度和濕度數(shù)據(jù)以使 CCS811 傳感器能夠執(zhí)行補償算法。(代碼來源:SparkFun)
給物聯(lián)網(wǎng)增加空氣質(zhì)量傳感器
雖然利用 SparkFun SEN-14348 分線板、Arduino 計算機和擴展板可以控制和整理空氣質(zhì)量數(shù)據(jù),但該系統(tǒng)沒有無線連接能力。Cypress Semiconductor的CY8CKIT-042-BLE-APSoC 4 BLE Pioneer 套件包含無線功能,可滿足無線連接要求。
PSoC 4 BLE Pioneer 套件是一款旨在幫助工程師開發(fā)無線傳感器應(yīng)用的開發(fā)工具。該套件允許工程師編寫和編譯應(yīng)用程序,然后將固件移植到 Cypress PSoC 4 低功耗藍牙 SoC。該 SoC 采用 32 位、48 MHz Arm?Cortex?-M0 處理器和低功耗藍牙無線電。
這種情況下,分線板的補償空氣質(zhì)量數(shù)據(jù)通過分線板的 I2C 接口饋送到套件印刷電路板上的 I2C 連接器。除了從 I2C 接口的 SDA 線接收數(shù)據(jù)外,處理器還能復(fù)位、中斷傳感器及將其置于休眠狀態(tài)。
使用該套件時,需要進行一些開發(fā)工作來編程和調(diào)試空氣質(zhì)量傳感器設(shè)計。Cypress 提供 Windows CySmart 主機仿真工具(在 PC 上運行)和低功耗藍牙適配器,以用于編碼和測試。在開發(fā)過程中,適配器和 Pioneer 套件可以同時連接到共用主機 PC(圖 5)。
圖 5:Cypress 提供低功耗藍牙開發(fā)工具和適配器(配置為低功耗藍牙中央器件),以幫助利用 PSoC 4 BLE Pioneer 套件進行應(yīng)用固件開發(fā)。(圖片來源:Cypress Semiconductor)
采用 CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer 套件的設(shè)計開發(fā)流程包括四個階段:
-
在 PSoC Creator 原理圖頁面中創(chuàng)建設(shè)計
-
編寫固件以初始化和處理低功耗藍牙事件
-
利用 Pioneer 套件對低功耗藍牙 SoC 進行編程
-
使用 CySmart 主機仿真工具(或手機應(yīng)用)測試設(shè)計
(有關(guān)低功耗藍牙應(yīng)用開發(fā)的詳細信息,請參見 Digi-Key 文章“兼容藍牙 4.1、4.2 和 5 的低功耗藍牙 SoC 和工具可應(yīng)對物聯(lián)網(wǎng)挑戰(zhàn)”。)
借助應(yīng)用程序固件,低功耗藍牙 SoC 得以整理和處理傳感器數(shù)據(jù),并通過低功耗藍牙鏈路將信息傳輸?shù)?a target="_blank">智能手機等設(shè)備進行分析和顯示。
然后,來自傳感器的數(shù)據(jù)可以從智能手機轉(zhuǎn)發(fā)到云服務(wù)器以保存數(shù)據(jù),并可能基于數(shù)據(jù)觸發(fā)“If This Then That” (IFTTT) 通知。例如,若兒童臥室中的 CO2讀數(shù)持續(xù)較高,可能會觸發(fā)父母智能手機通知,建議增加通風(fēng)。
直接從傳感器連接到云要更復(fù)雜一點。低功耗藍牙 SoC(例如 Cypress 元器件)一般缺少本地 IPv6 網(wǎng)絡(luò)層。解決方案是將藍牙數(shù)據(jù)發(fā)送到一個使用替代協(xié)議的“網(wǎng)關(guān)”,從而連接到云(例如 Wi-Fi)。
Cypress 和 SparkFun 再次合作,使其成為可能。通過使用 CypressCY8CKIT-062-BLEPSoC 6 BLE Pioneer 套件和 SparkFunDEV-14531PSoC Pioneer 物聯(lián)網(wǎng)擴展板(配備XB2B-WFWT-001XBee Wi-Fi 模塊),工程師可以開發(fā)一個網(wǎng)絡(luò),該網(wǎng)絡(luò)從傳感器獲取補償空氣質(zhì)量數(shù)據(jù),通過低功耗藍牙鏈路將數(shù)據(jù)從 CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer 套件傳輸?shù)?CY8CKIT-062-BLE PSoC 6 BLE Pioneer 套件,然后從那里通過 Wi-Fi 傳輸?shù)皆贫耍▓D 6)。(有關(guān)使用 Wi-Fi 模塊連接到云的更多信息,請參見 Digi-Key 技術(shù)文章“802.11x 模塊及開發(fā)套件可幫助簡化物聯(lián)網(wǎng)無線設(shè)計工作”。)
圖 6:這個由 Cypress 和 SparkFun 開發(fā)套件構(gòu)建的無線系統(tǒng)使用低功耗藍牙和 Wi-Fi 將空氣質(zhì)量傳感器數(shù)據(jù)發(fā)送到云端。(圖片來源:Digi-Key Electronics)
總結(jié)
將空氣質(zhì)量傳感器納入智能樓宇網(wǎng)絡(luò)變得越來越重要,因為人們?nèi)找嬉庾R到 VOC 及 CO2等氣體在受控通風(fēng)建筑物中聚積會給身體帶來有害影響。
商用空氣質(zhì)量傳感器目前缺乏其他(模塊化)傳感器常見的強大集成微處理器和無線連接功能。然而,借助易于使用的設(shè)計工具,工程師不僅能夠補償原始空氣質(zhì)量數(shù)據(jù)的溫度和濕度影響,還能通過低功耗藍牙網(wǎng)絡(luò)無線傳輸信息,利用智能手機網(wǎng)絡(luò)或 Wi-Fi 模塊將信息傳輸?shù)皆贫恕?/p>
-
傳感器
+關(guān)注
關(guān)注
2552文章
51217瀏覽量
754595 -
PID
+關(guān)注
關(guān)注
35文章
1472瀏覽量
85604 -
NDIR
+關(guān)注
關(guān)注
0文章
22瀏覽量
9504
發(fā)布評論請先 登錄
相關(guān)推薦
評論