0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用传感器开发套件,缩短空气质量设计周期?

电子设计 2018-09-14 10:39 次阅读

通过给智能楼宇系统增加空气质量传感器工程师可以实现有害气体和化学物质聚积的早期预警,但商用空气质量传感器缺乏加入智能楼宇网络所需的集成功能。然而,借助易于使用的开发套件,工程师可以增加所需的处理能力和无线功能以克服这一缺陷。

为确定环境中 CO2或挥发性有机化合物 (VOC) 的 ppm 浓度,最受欢迎的空气质量监测设备往往采用半导体电化学元件,这些元件可产生与被测气体或化学物质的浓度成比例的输出电压。但是,温度和湿度均会影响测量精度。温度和湿度传感器可以为连续补偿算法提供数据以改善空气质量传感器输出的精度,但并没有常规性地与此类空气质量传感器集成。

此外,当前各类空气质量传感器缺乏其他类型传感器常用的无线技术,而要连接到智能楼宇网络必须有无线技术。

这些缺陷使得工程师更难以为家庭、商业和工业应用设计支持无线网络的空气质量传感器。

不过,最近推出的适用于空气质量监测产品的开发套件包含了温度和湿度传感器以及无线连接,因此相关设计挑战迎刃而解。本文介绍如何使用这些开发套件来缩短空气质量监测产品的设计周期。

MOS 传感器特性

监测空气质量的传感器有多种类型。实例包括电化学 (EC)、非分散红外 (NDIR)、光电检测器 (PID) 和热类型。

但是,金属氧化物半导体 (MOS) 类型最符合智能楼宇应用的监测要求。这些器件结构紧凑,价格相对便宜,可以采用电池供电(具有足够容量定期为 MOS 传感器的加热器供电),检测范围与室内工作场所中典型的 C02和 VOC 浓度相匹配(图 1)。

图 1:一天中卧室内 CO2和 VOC 的浓度变化。(图片来源:IDT

在运行中,检测元件被加热到数百摄氏度 (˚C)。精确的温度决定了元件对特定气体或化学物质的选择性。灵敏度取决于材料的厚度。

传感器采用n-型或p-型半导体检测元件制造。检测元件吸收(p-型)或解吸(n-型)目标化学物质,与目标化合物的电化学反应会增加或移除半导体导带中的电子。电子迁移使检测元件的电阻率或电导率从已知基线值呈线性变化(图 2)。

图 2:响应目标化学物质浓度的变化,MOS 传感器元件的电阻率呈线性变化。本例中的化学物质为乙醇。(图片来源:IDT)

ams智能家居应用提供了一种商用 MOS 传感器:CCS811B是一款数字 MOS 传感器解决方案,集成了微控制器模数转换器 (ADC) 和 I2C 接口(图 3)。该器件处理传感器原始测量结果,输出“等效总 VOC” (eTVOC) 和“等效 CO2” (eCO2) 值。该传感器采用 10 引线 2.7 × 4.0 × 1.1 mm 封装。

ams CCS811B 数字 MOS 传感器图

图 3:ams 的 CCS811B 数字 MOS 传感器集成一个板载微控制器,用于处理传感器的原始数据。(图片来源:ams)

对于给定的空气成分、温度和湿度,每个 MOS 传感器都有一个特征基线电阻。它用作计算气体或化学物质浓度的基础:电阻相对于基线值的差异与气体或化学物质浓度成比例。

实际应用中的环境温度和湿度会影响传感器元件的基线电阻,改变其灵敏度,进而改变其精度。例如,当环境温度升高时,传感器元件的基线电阻(湿度一定时)会提高,而湿度增加时,基线电阻(温度一定时)会降低。

传感器制造商建议将空气质量传感器与温度和湿度传感器配合使用,以便监控微处理器可以运行算法来连续补偿基线电阻的变化。

针对此类应用,Bosch Sensortec的BME280是一款颇受欢迎的器件。BME280 将数字湿度、压力和温度结合在一个 LGA 封装中,基底面为 2.5 x 2.5 x 0.93 mm。该传感器具有 I2C 接口,可与外部微处理器通信,并需要 1.71 至 3.6 V 的电源为传感器供电。当传感器处于休眠模式时,电流消耗降至 0.1 微安 (μA)。

商用 MOS 传感器缺乏加入无线网络所需的内置连接能力。然而,有许多低功耗无线芯片可专用于直接与传感器介接。其中许多器件还包含非常强大的嵌入式微处理器,足以运行所需算法来处理原始传感器数据及补偿湿度和温度变化。(有关适合此应用的无线技术的更多信息,请参见 Digi-Key 文章“低功耗无线技术之比较”。)

开发基础型空气质量传感器

设计具无线连接功能的空气质量监测器需要工程师将分立式 MOS 传感器、湿度和温度传感器、无线收发器以及(某些情况下)微处理器结合成一个有效系统。这种复杂性使得该任务非常艰巨且耗时。

然而,市场上有一系列开发套件可供选择,它们能大大简化初始设计和测试过程。例如,SparkFun Electronics用于空气质量传感器开发的SEN-14348Qwiic 环境型组合分线板将 CCS811B 空气质量传感器与用于温度和湿度补偿的 BME280 传感器相结合,并含有两个物理 I2C 接口,采用 4 引脚极化 Qwiic 连接器(图 4)。

图 4:SparkFun 的 SEN-14348 分线板结合了 CCS811B 传感器和用于温度和湿度补偿的 BME280 器件。(图片来源:SparkFun)

虽然 SEN-14348 可用作温度和湿度补偿型空气质量传感器设计的基础,但它并不是一个综合性解决方案。CCS811B 包含一个微处理器,但除了监控周期性测量和执行基线补偿之外,该器件的能力有限。对于更复杂的应用,例如监测空气质量阈值或计算气体/化学物质长期浓度,则超出了该微处理器的能力。为利用 SEN-14348 支持更高级的应用,需要将其连接到功能更强大的微处理器。

对于初步开发,SparkFun 建议将 SEN-14348 分线板连接到Arduino兼容计算机,例如RedBoard。RedBoard 通过 USB 电缆(其也为电路板供电)连接到 PC,以便从 Arduino IDE 上传代码。为将 RedBoard 与 Qwiic 分线板一起使用,计算机需要利用DEV-14352Qwiic 扩展板进行适配。扩展板含有一个 I2C 连接器,并将 5 V RedBoard 电源调节至 SEN-14348 分线板上传感器所需的 3.3 V 电压。

开始的时候,开发人员需要从 Github 下载 SparkFun CCS811 和 BME280 Arduino 库。传感器从 Arduino IDE 对采样率、有限脉冲响应 (FIR) 滤波器系数和过采样模式等信息进行配置。

下面的代码片段显示了获取读数之前初始化 BME280 传感器的例程(CCS811 的初始化例程类似)。

复制#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:获取读数之前初始化 BME280 传感器的例程。(代码来源:SparkFun)

要从传感器获取读数,必须在代码(Arduino“草图”)中添加一个 void 循环(代码片段 2)。

复制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 传感器获取读数并输出的例程。(代码来源:SparkFun)

来自 BME280 的环境数据(“ENV_DATA”)被写入 CCS811,因此可以将补偿因子应用于基线电阻,以考虑温度和湿度的影响。

湿度和温度信息以无符号 16 位整数形式传递,分辨率为 1/512% RH 和 1/512 度。湿度的默认值为 50% (= 0x64, 0x00)。例如,48.5% 的湿度 = 0x61, 0x00。温度读数包括一个偏移,0 对应 -25°C。默认值为 25°C (= 0x64, 0x00)。例如,23.5°C = 0x61, 0x00。

从 BME280 向 CCS811 馈送温度和湿度信息后,微处理器便可应用补偿算法(代码片段 3)。

复制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:馈送温度和湿度数据以使 CCS811 传感器能够执行补偿算法。(代码来源:SparkFun)

物联网增加空气质量传感器

虽然利用 SparkFun SEN-14348 分线板、Arduino 计算机和扩展板可以控制和整理空气质量数据,但该系统没有无线连接能力。Cypress Semiconductor的CY8CKIT-042-BLE-APSoC 4 BLE Pioneer 套件包含无线功能,可满足无线连接要求。

PSoC 4 BLE Pioneer 套件是一款旨在帮助工程师开发无线传感器应用的开发工具。该套件允许工程师编写和编译应用程序,然后将固件移植到 Cypress PSoC 4 低功耗蓝牙 SoC。该 SoC 采用 32 位、48 MHz Arm®Cortex®-M0 处理器和低功耗蓝牙无线电。

这种情况下,分线板的补偿空气质量数据通过分线板的 I2C 接口馈送到套件印刷电路板上的 I2C 连接器。除了从 I2C 接口的 SDA 线接收数据外,处理器还能复位、中断传感器及将其置于休眠状态。

使用该套件时,需要进行一些开发工作来编程和调试空气质量传感器设计。Cypress 提供 Windows CySmart 主机仿真工具(在 PC 上运行)和低功耗蓝牙适配器,以用于编码和测试。在开发过程中,适配器和 Pioneer 套件可以同时连接到共用主机 PC(图 5)。

图 5:Cypress 提供低功耗蓝牙开发工具和适配器(配置为低功耗蓝牙中央器件),以帮助利用 PSoC 4 BLE Pioneer 套件进行应用固件开发。(图片来源:Cypress Semiconductor)

采用 CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer 套件的设计开发流程包括四个阶段:

  • 在 PSoC Creator 原理图页面中创建设计

  • 编写固件以初始化和处理低功耗蓝牙事件

  • 利用 Pioneer 套件对低功耗蓝牙 SoC 进行编程

  • 使用 CySmart 主机仿真工具(或手机应用)测试设计

(有关低功耗蓝牙应用开发的详细信息,请参见 Digi-Key 文章“兼容蓝牙 4.1、4.2 和 5 的低功耗蓝牙 SoC 和工具可应对物联网挑战”。)

借助应用程序固件,低功耗蓝牙 SoC 得以整理和处理传感器数据,并通过低功耗蓝牙链路将信息传输到智能手机等设备进行分析和显示。

然后,来自传感器的数据可以从智能手机转发到云服务器以保存数据,并可能基于数据触发“If This Then That” (IFTTT) 通知。例如,若儿童卧室中的 CO2读数持续较高,可能会触发父母智能手机通知,建议增加通风。

直接从传感器连接到云要更复杂一点。低功耗蓝牙 SoC(例如 Cypress 元器件)一般缺少本地 IPv6 网络层。解决方案是将蓝牙数据发送到一个使用替代协议的“网关”,从而连接到云(例如 Wi-Fi)。

Cypress 和 SparkFun 再次合作,使其成为可能。通过使用 CypressCY8CKIT-062-BLEPSoC 6 BLE Pioneer 套件和 SparkFunDEV-14531PSoC Pioneer 物联网扩展板(配备XB2B-WFWT-001XBee Wi-Fi 模块),工程师可以开发一个网络,该网络从传感器获取补偿空气质量数据,通过低功耗蓝牙链路将数据从 CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer 套件传输到 CY8CKIT-062-BLE PSoC 6 BLE Pioneer 套件,然后从那里通过 Wi-Fi 传输到云端(图 6)。(有关使用 Wi-Fi 模块连接到云的更多信息,请参见 Digi-Key 技术文章“802.11x 模块及开发套件可帮助简化物联网无线设计工作”。)

图 6:这个由 Cypress 和 SparkFun 开发套件构建的无线系统使用低功耗蓝牙和 Wi-Fi 将空气质量传感器数据发送到云端。(图片来源:Digi-Key Electronics)

总结

将空气质量传感器纳入智能楼宇网络变得越来越重要,因为人们日益意识到 VOC 及 CO2等气体在受控通风建筑物中聚积会给身体带来有害影响。

商用空气质量传感器目前缺乏其他(模块化)传感器常见的强大集成微处理器和无线连接功能。然而,借助易于使用的设计工具,工程师不仅能够补偿原始空气质量数据的温度和湿度影响,还能通过低功耗蓝牙网络无线传输信息,利用智能手机网络或 Wi-Fi 模块将信息传输到云端。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48129

    浏览量

    740205
  • PID
    PID
    +关注

    关注

    35

    文章

    1446

    浏览量

    83829
  • NDIR
    +关注

    关注

    0

    文章

    18

    浏览量

    9441
收藏 人收藏

    评论

    相关推荐

    汽车空气质量检测与改善方案简介

    的影响因素主要来自两个方面:一是内饰材料所采用的化工原料引起的空气污染;二是由车外或发动机舱流入驾驶室的有毒气体,比如前车尾气。本文要讨论的是第二种情况,即空气质量传感器如何通过关闭空调系统的进风口来
    发表于 07-19 14:09

    空气质量传感器MQ135的浓度设定。。。。

    空气质量传感器MQ135的浓度设定是传感器模块内设定好的,还是怎样?求大神帮助……
    发表于 04-16 14:03

    【Tisan物联网申请】室内空气质量监测系统

    申请理由:监控室内的空气质量, 将传感器信息经由ESP8266处理后实时发送到服务,手机可以实时查看室内的空气质量,并且可以给室内的设备节点发送指令打开
    发表于 10-15 10:09

    STM32空气质量检测应用教程

    应用,即微控制采集空气质量传感器的数据,通过WIFI上报到机智云服务,然后我们通过手机端APP即可远程查看监测值。有图有真相: 1.图文PDF教程: STM32L432 Nucl
    发表于 12-29 14:36

    【Thunderboard Sense试用申请】移动空气质量监测站

    项目名称:移动空气质量监测站试用计划:项目描述:基于EFR32系列平台,开发可移动式空气质量监测站,板上温湿度传感器监测空气温度湿度,压力
    发表于 05-19 17:10

    空气质量测试仪的原理

    介绍空气质量测试仪原理。空气质量测试仪原理空气质量测试仪是一款能实时检测甲醛,PM2.5,TVOC和温湿度的产品,小巧精致,方便携带。通过其内部的原装进口传感器,能准确测量出污染物浓度
    发表于 03-07 16:04

    空气质量传感器详解

    提到空气净化器,从其选购到使用,网上各种“指南”一搜一大把。不过您真的了解您家中的空气净化器吗?今天,小编带大家了解一下但99%的用户都可能忽略的小部件——空气质量传感器。本文将为您
    发表于 11-08 10:47

    空气质量传感器在室内空气清新机中的应用是什么?

    TGS2600空气质量传感器有什么特点?空气质量传感器在室内空气清新机中的应用是什么?
    发表于 06-16 08:35

    空气质量微观站是什么?空气质量微观站有哪些功能?

    为什么要研发出一种空气质量微观站?空气质量微观站是什么?空气质量微观站有哪些功能?
    发表于 06-16 06:55

    怎样去设计基于STM32的空气质量监测系统

    基于STM32的空气质量监测系统简单案例系统简介软硬件介绍STM32F103开发板MQ135空气质量传感器DS18B20温度传感器设计流程硬
    发表于 08-11 07:38

    如何用BME680和ESP866模块制作空气质量传感器

    我正在用 BME680 和 ESP866 模块制作空气质量传感器。我想使用 MQTT 协议进行通信,因为我正在尝试了解更多相关信息。谁能指导我如何去做?
    发表于 05-19 12:04

    温差式热膜空气质量流量传感器

    温差式热膜空气质量流量传感器:论述了热膜式空气质量流量计的基本工作原理, 通过对传感器单元的传热分析设计了一种温差式热膜空气质量流量
    发表于 06-02 17:34 39次下载

    开发套件简化空气质量传感器系统设计

    空气质量检测是至关重要的健康和安全,甚至强制在某些领域,如教室和其他教育设施。然而,对于开发人员,空气传感器系统的设计可能会有问题。空气质量
    发表于 05-25 14:12 2次下载
    <b class='flag-5'>开发套件</b>简化<b class='flag-5'>空气质量</b><b class='flag-5'>传感器</b>系统设计

    什么是空气质量传感器_小米空气净化器2空气质量传感器

    空气质量传感器主要应用于各种空气净化装置和小家电产品,对酒精、香烟、氨气、硫化物等各种污染源都有极高的灵敏度,产品响应时间快,工作稳定,价格便宜。质量好的
    发表于 02-27 15:09 3449次阅读

    多功能空气质量传感器,我们身边的“空气质量管家”

    多功能空气质量传感器,我们身边的“空气质量管家”
    的头像 发表于 06-01 17:22 889次阅读
    多功能<b class='flag-5'>空气质量</b><b class='flag-5'>传感器</b>,我们身边的“<b class='flag-5'>空气质量</b>管家”