通過(guò)給智能樓宇系統(tǒng)增加空氣質(zhì)量傳感器,工程師可以實(shí)現(xiàn)有害氣體和化學(xué)物質(zhì)聚積的早期預(yù)警,但商用空氣質(zhì)量傳感器缺乏加入智能樓宇網(wǎng)絡(luò)所需的集成功能。然而,借助易于使用的開(kāi)發(fā)套件,工程師可以增加所需的處理能力和無(wú)線功能以克服這一缺陷。
為確定環(huán)境中 CO2 或揮發(fā)性有機(jī)化合物 (VOC) 的 ppm 濃度,最受歡迎的空氣質(zhì)量監(jiān)測(cè)設(shè)備往往采用半導(dǎo)體電化學(xué)元件,這些元件可產(chǎn)生與被測(cè)氣體或化學(xué)物質(zhì)的濃度成比例的輸出電壓。但是,溫度和濕度均會(huì)影響測(cè)量精度。溫度和濕度傳感器可以為連續(xù)補(bǔ)償算法提供數(shù)據(jù)以改善空氣質(zhì)量傳感器輸出的精度,但并沒(méi)有常規(guī)性地與此類(lèi)空氣質(zhì)量傳感器集成。
此外,當(dāng)前各類(lèi)空氣質(zhì)量傳感器缺乏其他類(lèi)型傳感器常用的無(wú)線技術(shù),而要連接到智能樓宇網(wǎng)絡(luò)必須有無(wú)線技術(shù)。
這些缺陷使得工程師更難以為家庭、商業(yè)和工業(yè)應(yīng)用設(shè)計(jì)支持無(wú)線網(wǎng)絡(luò)的空氣質(zhì)量傳感器。
不過(guò),最近推出的適用于空氣質(zhì)量監(jiān)測(cè)產(chǎn)品的開(kāi)發(fā)套件包含了溫度和濕度傳感器以及無(wú)線連接,因此相關(guān)設(shè)計(jì)挑戰(zhàn)迎刃而解。本文介紹如何使用這些開(kāi)發(fā)套件來(lái)縮短空氣質(zhì)量監(jiān)測(cè)產(chǎn)品的設(shè)計(jì)周期。
MOS 傳感器特性
監(jiān)測(cè)空氣質(zhì)量的傳感器有多種類(lèi)型。實(shí)例包括電化學(xué) (EC)、非分散紅外 (NDIR)、光電離檢測(cè)器 (PID) 和熱類(lèi)型。
但是,金屬氧化物半導(dǎo)體 (MOS) 類(lèi)型最符合智能樓宇應(yīng)用的監(jiān)測(cè)要求。這些器件結(jié)構(gòu)緊湊,價(jià)格相對(duì)便宜,可以采用電池供電(具有足夠容量定期為 MOS 傳感器的加熱器供電),檢測(cè)范圍與室內(nèi)工作場(chǎng)所中典型的 C02 和 VOC 濃度相匹配(圖 1)。
圖 1:一天中臥室內(nèi) CO2 和 VOC 的濃度變化。(圖片來(lái)源:IDT)
在運(yùn)行中,檢測(cè)元件被加熱到數(shù)百攝氏度 (?C)。精確的溫度決定了元件對(duì)特定氣體或化學(xué)物質(zhì)的選擇性。靈敏度取決于材料的厚度。
傳感器采用 n-型或 p-型半導(dǎo)體檢測(cè)元件制造。檢測(cè)元件吸收(p-型)或解吸(n-型)目標(biāo)化學(xué)物質(zhì),與目標(biāo)化合物的電化學(xué)反應(yīng)會(huì)增加或移除半導(dǎo)體導(dǎo)帶中的電子。電子遷移使檢測(cè)元件的電阻率或電導(dǎo)率從已知基線值呈線性變化(圖 2)。
圖 2:響應(yīng)目標(biāo)化學(xué)物質(zhì)濃度的變化,MOS 傳感器元件的電阻率呈線性變化。本例中的化學(xué)物質(zhì)為乙醇。(圖片來(lái)源:IDT)
ams 為智能家居應(yīng)用提供了一種商用 MOS 傳感器:CCS811B 是一款數(shù)字 MOS 傳感器解決方案,集成了微控制器、模數(shù)轉(zhuǎn)換器 (ADC) 和 I2C 接口(圖 3)。該器件處理傳感器原始測(cè)量結(jié)果,輸出“等效總 VOC” (eTVOC) 和“等效 CO2” (eCO2) 值。該傳感器采用 10 引線 2.7 × 4.0 × 1.1 mm 封裝。
圖 3:ams 的 CCS811B 數(shù)字 MOS 傳感器集成一個(gè)板載微控制器,用于處理傳感器的原始數(shù)據(jù)。(圖片來(lái)源:ams)
對(duì)于給定的空氣成分、溫度和濕度,每個(gè) MOS 傳感器都有一個(gè)特征基線電阻。它用作計(jì)算氣體或化學(xué)物質(zhì)濃度的基礎(chǔ):電阻相對(duì)于基線值的差異與氣體或化學(xué)物質(zhì)濃度成比例。
實(shí)際應(yīng)用中的環(huán)境溫度和濕度會(huì)影響傳感器元件的基線電阻,改變其靈敏度,進(jìn)而改變其精度。例如,當(dāng)環(huán)境溫度升高時(shí),傳感器元件的基線電阻(濕度一定時(shí))會(huì)提高,而濕度增加時(shí),基線電阻(溫度一定時(shí))會(huì)降低。
傳感器制造商建議將空氣質(zhì)量傳感器與溫度和濕度傳感器配合使用,以便監(jiān)控微處理器可以運(yùn)行算法來(lái)連續(xù)補(bǔ)償基線電阻的變化。
針對(duì)此類(lèi)應(yīng)用,Bosch Sensortec 的 BME280 是一款頗受歡迎的器件。BME280 將數(shù)字濕度、壓力和溫度結(jié)合在一個(gè) LGA 封裝中,基底面為 2.5 x 2.5 x 0.93 mm。該傳感器具有 I2C 接口,可與外部微處理器通信,并需要 1.71 至 3.6 V 的電源為傳感器供電。當(dāng)傳感器處于休眠模式時(shí),電流消耗降至 0.1 微安 (μA)。
商用 MOS 傳感器缺乏加入無(wú)線網(wǎng)絡(luò)所需的內(nèi)置連接能力。然而,有許多低功耗無(wú)線芯片可專(zhuān)用于直接與傳感器介接。其中許多器件還包含非常強(qiáng)大的嵌入式微處理器,足以運(yùn)行所需算法來(lái)處理原始傳感器數(shù)據(jù)及補(bǔ)償濕度和溫度變化。(有關(guān)適合此應(yīng)用的無(wú)線技術(shù)的更多信息,請(qǐng)參見(jiàn) Digi-Key 文章“低功耗無(wú)線技術(shù)之比較”。)
開(kāi)發(fā)基礎(chǔ)型空氣質(zhì)量傳感器
設(shè)計(jì)具無(wú)線連接功能的空氣質(zhì)量監(jiān)測(cè)器需要工程師將分立式 MOS 傳感器、濕度和溫度傳感器、無(wú)線收發(fā)器以及(某些情況下)微處理器結(jié)合成一個(gè)有效系統(tǒng)。這種復(fù)雜性使得該任務(wù)非常艱巨且耗時(shí)。
然而,市場(chǎng)上有一系列開(kāi)發(fā)套件可供選擇,它們能大大簡(jiǎn)化初始設(shè)計(jì)和測(cè)試過(guò)程。例如,SparkFun Electronics 用于空氣質(zhì)量傳感器開(kāi)發(fā)的 SEN-14348 Qwiic 環(huán)境型組合分線板將 CCS811B 空氣質(zhì)量傳感器與用于溫度和濕度補(bǔ)償?shù)?BME280 傳感器相結(jié)合,并含有兩個(gè)物理 I2C 接口,采用 4 引腳極化 Qwiic 連接器(圖 4)。
圖 4:SparkFun 的 SEN-14348 分線板結(jié)合了 CCS811B 傳感器和用于溫度和濕度補(bǔ)償?shù)?BME280 器件。(圖片來(lái)源:SparkFun)
雖然 SEN-14348 可用作溫度和濕度補(bǔ)償型空氣質(zhì)量傳感器設(shè)計(jì)的基礎(chǔ),但它并不是一個(gè)綜合性解決方案。CCS811B 包含一個(gè)微處理器,但除了監(jiān)控周期性測(cè)量和執(zhí)行基線補(bǔ)償之外,該器件的能力有限。對(duì)于更復(fù)雜的應(yīng)用,例如監(jiān)測(cè)空氣質(zhì)量閾值或計(jì)算氣體/化學(xué)物質(zhì)長(zhǎng)期濃度,則超出了該微處理器的能力。為利用 SEN-14348 支持更高級(jí)的應(yīng)用,需要將其連接到功能更強(qiáng)大的微處理器。
對(duì)于初步開(kāi)發(fā),SparkFun 建議將 SEN-14348 分線板連接到 Arduino 兼容計(jì)算機(jī),例如 RedBoard。RedBoard 通過(guò) USB 電纜(其也為電路板供電)連接到 PC,以便從 Arduino IDE 上傳代碼。為將 RedBoard 與 Qwiic 分線板一起使用,計(jì)算機(jī)需要利用 DEV-14352 Qwiic 擴(kuò)展板進(jìn)行適配。擴(kuò)展板含有一個(gè) I2C 連接器,并將 5 V RedBoard 電源調(diào)節(jié)至 SEN-14348 分線板上傳感器所需的 3.3 V 電壓。
開(kāi)始的時(shí)候,開(kāi)發(fā)人員需要從 Github 下載 SparkFun CCS811 和 BME280 Arduino 庫(kù)。傳感器從 Arduino IDE 對(duì)采樣率、有限脈沖響應(yīng) (FIR) 濾波器系數(shù)和過(guò)采樣模式等信息進(jìn)行配置。
下面的代碼片段顯示了獲取讀數(shù)之前初始化 BME280 傳感器的例程(CCS811 的初始化例程類(lèi)似)。
#include 《SparkFunBME280.h》
#include 《SparkFunCCS811.h》
#define CCS811_ADDR 0x5B //Default I2C Address
//#define CCS811_ADDR 0x5A //Alternate I2C Address
//Global sensor objects
CCS811 myCCS811(CCS811_ADDR);
BME280 myBME280;
void setup()
{
Serial.begin(9600);
Serial.println();
Serial.println(“Apply BME280 data to CCS811 for compensatio
n.”);
//This begins the CCS811 sensor and prints error status of 。
begin()
CCS811Core::status returnCode = myCCS811.begin();
if (returnCode != CCS811Core::SENSOR_SUCCESS)
{
Serial.println(“Problem with CCS811”);
printDriverError(returnCode);
}
else {
Serial.println(“CCS811 online”);
}
//Initialize BME280
//For I2C, enable the following and disable the SPI section
myBME280.settings.commInterface = I2C_MODE;
myBME280.settings.I2CAddress = 0x77;
myBME280.settings.runMode = 3; //Normal mode
myBME280.settings.tStandby = 0;
myBME280.settings.filter = 4;
myBME280.settings.tempOverSample = 5;
myBME280.settings.pressOverSample = 5;
myBME280.settings.humidOverSample = 5;
//Calling .begin() causes the settings to be loaded
delay(10); //Make sure sensor had enough time to turn on.B
ME280 requires 2ms to start up.
byte id = myBME280.begin(); //Returns ID of 0x60 if successf
ul
if (id != 0x60)
{
Serial.println(“Problem with BME280”);
}
else {
Serial.println(“BME280 online”);
}
}
代碼片段 1:獲取讀數(shù)之前初始化 BME280 傳感器的例程。(代碼來(lái)源:SparkFun)
要從傳感器獲取讀數(shù),必須在代碼(Arduino“草圖”)中添加一個(gè) void 循環(huán)(代碼片段 2)。
void loop() {
if (myCCS811.dataAvailable()) //Check to see if CCS811 has n ew data (it‘s the slowest sensor)
{
myCCS811.readAlgorithmResults(); //Read latest from CCS81
1 and update tVOC and CO2 variables
//getWeather(); //Get latest humidity/pressure/temp data f
rom BME280
printData(); //Pretty print all the data
}
else if (myCCS811.checkForStatusError()) //Check to see if C
CS811 has thrown an error
{
Serial.println(myCCS811.getErrorRegister()); //Prints what
ever CSS811 error flags are detected
}
delay(2000); //Wait for next reading
}
代碼片段 2:從 CCS811 傳感器獲取讀數(shù)并輸出的例程。(代碼來(lái)源:SparkFun)
來(lái)自 BME280 的環(huán)境數(shù)據(jù)(“ENV_DATA”)被寫(xiě)入 CCS811,因此可以將補(bǔ)償因子應(yīng)用于基線電阻,以考慮溫度和濕度的影響。
濕度和溫度信息以無(wú)符號(hào) 16 位整數(shù)形式傳遞,分辨率為 1/512% RH 和 1/512 度。濕度的默認(rèn)值為 50% (= 0x64, 0x00)。例如,48.5% 的濕度 = 0x61, 0x00。溫度讀數(shù)包括一個(gè)偏移,0 對(duì)應(yīng) -25°C。默認(rèn)值為 25°C (= 0x64, 0x00)。例如,23.5°C = 0x61, 0x00。
從 BME280 向 CCS811 饋送溫度和濕度信息后,微處理器便可應(yīng)用補(bǔ)償算法(代碼片段 3)。
void loop() {
//Check to see if data is available
if (myCCS811.dataAvailable())
{
//Calling this function updates the global tVOC and eCO2 v
ariables
myCCS811.readAlgorithmResults();
//printData fetches the values of tVOC and eCO2
printData();
float BMEtempC = myBME280.readTempC();
float BMEhumid = myBME280.readFloatHumidity();
Serial.print(“Applying new values (deg C, %): ”);
Serial.print(BMEtempC);
Serial.print(“,”);
Serial.println(BMEhumid);
Serial.println();
//This sends the temperature data to the CCS811
myCCS811.setEnvironmentalData(BMEhumid, BMEtempC);
}
else if (myCCS811.checkForStatusError())
{
Serial.println(myCCS811.getErrorRegister()); //Prints what
ever CSS811 error flags are detected
}
delay(2000); //Wait for next reading
}
代碼片段 3:饋送溫度和濕度數(shù)據(jù)以使 CCS811 傳感器能夠執(zhí)行補(bǔ)償算法。(代碼來(lái)源:SparkFun)
給物聯(lián)網(wǎng)增加空氣質(zhì)量傳感器
雖然利用 SparkFun SEN-14348 分線板、Arduino 計(jì)算機(jī)和擴(kuò)展板可以控制和整理空氣質(zhì)量數(shù)據(jù),但該系統(tǒng)沒(méi)有無(wú)線連接能力。Cypress Semiconductor 的 CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer 套件包含無(wú)線功能,可滿足無(wú)線連接要求。
PSoC 4 BLE Pioneer 套件是一款旨在幫助工程師開(kāi)發(fā)無(wú)線傳感器應(yīng)用的開(kāi)發(fā)工具。該套件允許工程師編寫(xiě)和編譯應(yīng)用程序,然后將固件移植到 Cypress PSoC 4 低功耗藍(lán)牙 SoC。該 SoC 采用 32 位、48 MHz Arm? Cortex?-M0 處理器和低功耗藍(lán)牙無(wú)線電。
這種情況下,分線板的補(bǔ)償空氣質(zhì)量數(shù)據(jù)通過(guò)分線板的 I2C 接口饋送到套件印刷電路板上的 I2C 連接器。除了從 I2C 接口的 SDA 線接收數(shù)據(jù)外,處理器還能復(fù)位、中斷傳感器及將其置于休眠狀態(tài)。
使用該套件時(shí),需要進(jìn)行一些開(kāi)發(fā)工作來(lái)編程和調(diào)試空氣質(zhì)量傳感器設(shè)計(jì)。Cypress 提供 Windows CySmart 主機(jī)仿真工具(在 PC 上運(yùn)行)和低功耗藍(lán)牙適配器,以用于編碼和測(cè)試。在開(kāi)發(fā)過(guò)程中,適配器和 Pioneer 套件可以同時(shí)連接到共用主機(jī) PC(圖 5)。
圖 5:Cypress 提供低功耗藍(lán)牙開(kāi)發(fā)工具和適配器(配置為低功耗藍(lán)牙中央器件),以幫助利用 PSoC 4 BLE Pioneer 套件進(jìn)行應(yīng)用固件開(kāi)發(fā)。(圖片來(lái)源:Cypress Semiconductor)
采用 CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer 套件的設(shè)計(jì)開(kāi)發(fā)流程包括四個(gè)階段:
在 PSoC Creator 原理圖頁(yè)面中創(chuàng)建設(shè)計(jì)
編寫(xiě)固件以初始化和處理低功耗藍(lán)牙事件
利用 Pioneer 套件對(duì)低功耗藍(lán)牙 SoC 進(jìn)行編程
使用 CySmart 主機(jī)仿真工具(或手機(jī)應(yīng)用)測(cè)試設(shè)計(jì)
(有關(guān)低功耗藍(lán)牙應(yīng)用開(kāi)發(fā)的詳細(xì)信息,請(qǐng)參見(jiàn) Digi-Key 文章“兼容藍(lán)牙 4.1、4.2 和 5 的低功耗藍(lán)牙 SoC 和工具可應(yīng)對(duì)物聯(lián)網(wǎng)挑戰(zhàn)”。)
借助應(yīng)用程序固件,低功耗藍(lán)牙 SoC 得以整理和處理傳感器數(shù)據(jù),并通過(guò)低功耗藍(lán)牙鏈路將信息傳輸?shù)?a target="_blank">智能手機(jī)等設(shè)備進(jìn)行分析和顯示。
然后,來(lái)自傳感器的數(shù)據(jù)可以從智能手機(jī)轉(zhuǎn)發(fā)到云服務(wù)器以保存數(shù)據(jù),并可能基于數(shù)據(jù)觸發(fā)“If This Then That” (IFTTT) 通知。例如,若兒童臥室中的 CO2 讀數(shù)持續(xù)較高,可能會(huì)觸發(fā)父母智能手機(jī)通知,建議增加通風(fēng)。
直接從傳感器連接到云要更復(fù)雜一點(diǎn)。低功耗藍(lán)牙 SoC(例如 Cypress 元器件)一般缺少本地 IPv6 網(wǎng)絡(luò)層。解決方案是將藍(lán)牙數(shù)據(jù)發(fā)送到一個(gè)使用替代協(xié)議的“網(wǎng)關(guān)”,從而連接到云(例如 Wi-Fi)。
Cypress 和 SparkFun 再次合作,使其成為可能。通過(guò)使用 Cypress CY8CKIT-062-BLE PSoC 6 BLE Pioneer 套件和 SparkFun DEV-14531 PSoC Pioneer 物聯(lián)網(wǎng)擴(kuò)展板(配備 XB2B-WFWT-001 XBee Wi-Fi 模塊),工程師可以開(kāi)發(fā)一個(gè)網(wǎng)絡(luò),該網(wǎng)絡(luò)從傳感器獲取補(bǔ)償空氣質(zhì)量數(shù)據(jù),通過(guò)低功耗藍(lán)牙鏈路將數(shù)據(jù)從 CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer 套件傳輸?shù)?CY8CKIT-062-BLE PSoC 6 BLE Pioneer 套件,然后從那里通過(guò) Wi-Fi 傳輸?shù)皆贫耍▓D 6)。(有關(guān)使用 Wi-Fi 模塊連接到云的更多信息,請(qǐng)參見(jiàn) Digi-Key 技術(shù)文章“802.11x 模塊及開(kāi)發(fā)套件可幫助簡(jiǎn)化物聯(lián)網(wǎng)無(wú)線設(shè)計(jì)工作”。)
圖 6:這個(gè)由 Cypress 和 SparkFun 開(kāi)發(fā)套件構(gòu)建的無(wú)線系統(tǒng)使用低功耗藍(lán)牙和 Wi-Fi 將空氣質(zhì)量傳感器數(shù)據(jù)發(fā)送到云端。(圖片來(lái)源:Digi-Key Electronics)
總結(jié)
將空氣質(zhì)量傳感器納入智能樓宇網(wǎng)絡(luò)變得越來(lái)越重要,因?yàn)槿藗內(nèi)找嬉庾R(shí)到 VOC 及 CO2 等氣體在受控通風(fēng)建筑物中聚積會(huì)給身體帶來(lái)有害影響。
商用空氣質(zhì)量傳感器目前缺乏其他(模塊化)傳感器常見(jiàn)的強(qiáng)大集成微處理器和無(wú)線連接功能。然而,借助易于使用的設(shè)計(jì)工具,工程師不僅能夠補(bǔ)償原始空氣質(zhì)量數(shù)據(jù)的溫度和濕度影響,還能通過(guò)低功耗藍(lán)牙網(wǎng)絡(luò)無(wú)線傳輸信息,利用智能手機(jī)網(wǎng)絡(luò)或 Wi-Fi 模塊將信息傳輸?shù)皆贫恕?/p>
評(píng)論
查看更多