本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 TVOC 传感器的空气质量监测仪

发布时间:2021-12-04
分享到:

基于 TVOC 传感器的空气质量监测仪

发布时间:2021-12-04
分享到:

大家好!今天我想和大家分享我的新DIY项目。它是一个开源的空气质量传感器。

该项目使用了 Sensorion 的新产品 - TVOC 传感器 SGP40。同时使用了 2.13 英寸电子墨水显示屏。由于我们现在待在家里的时间更多,因此我制作了这个空气质量监测仪。

 除了评估空气质量外,传感器还可以估计室内光线水平、温度、湿度和大气压力,根据大气压力数据,设备可以预测天气预报。 

该传感器适用于 nRF52 微控制器,已经为来自不同制造商的 nRF52 无线电模块开发了 4 个版本的 pcb。一个主要版本和三个更多扩展版本(解释将在文本稍后部分)。
项目中使用的无线电模块型号:主MINEW MS88SF3(nRF52833、nRF52840)、附加:MINEW MS50SFA1(nRF52810、nRF52811)、MINEW MS50SFA2(nRF52832)、EBYTE E73-28RFC3040
传感器室使用的传感器(nRF52833、nRF52840)用于 VOC 测量的空气质量传感器 - SGP40,压力、温度和湿度传感器 - BME280,照度传感器 MAX44009。
稍后,由于电子元件的生产出现问题以及许多元件的价格上涨令人难以置信,项目中增加了 BMP280 和 SHTC3 传感器,它们在功能上可以替代 BME280 传感器。为此,对电路板进行了三个额外的修改,还增加了对附加无线电模块的支持,增加了极性反转保护,并改进了电路板的设计。

该设备可以在屏幕上显示数据并将数据传输到智能家居系统,它也可以在“离线”模式下工作。

为了显示信息,使用了 WaveShare 的超低功耗 2.13 英寸电子墨水显示屏。

显示特性:

  • 分辨率:250x122
  • 工作温度范围:0 - 50 C
  • 运行消耗:3mA
  • 深度睡眠消耗:1μA
  • 最小屏幕刷新时间:0.3 秒。

后面我计划将该项目增加对工作温度为-20C~60C的DES e-Ink 2.13显示器的支持。

PCB传感器的基本版本:

附加版本:

之前我写过这个项目中的主要传感器是 SGP40 室内空气质量传感器。可以说这是Sensorion公司在市场上推出的一款具有非常好的特性的新品。

传感器测量总挥发性有机化合物 (TVOC) 浓度。与该公司以前的 SGP30 传感器相比,功耗显着降低,使用 SGP30 测量时为 48 mA,使用 SGP40 测量时为 2.6 mA。诚然,以前的传感器可以提供 VOC 和 CO2 等价物的现成值,而新产品提供的原始数据必须在 MK 端使用传感器随附的库和空气质量计算算法进行进一步处理。SGP40 传感器数据表

我不得不修改 Adafruit_SGP40 库,以在超低设备功耗模式下使用小电池运行。添加了传感器加热器的工作,接收、保存、卸载传感器快速启动算法的当前状态,例如,更换电池后,绕过学习模式。出于某种原因,没有人对这些时刻感到困惑,我找不到支持传感器所有功能的现成库。修改后的库在我的 GitHub 上。也许这是因为 SGP40 是一个相当新的产品。

设备图:

从传感器到智能家居系统的数据传输基于 MySENSORS 开源家庭自动化项目。

我将简要描述传感器的功能。开启时,设备尝试寻找网络,如果未找到网络,则设备进入主操作模式,不工作在网络上(不发送数据),但会定期对网络进行短搜索请求(~每 2 小时一次)。SGP40传感器的轮询间隔为3秒,每1分钟进行一次剩余传感器的读取、数据的发送和屏幕刷新(在主模式下)。当空气质量水平 (TVOC) 数据变化 10 个单位、温度变化 0.5C、湿度变化 5%、压力变化 1 个单位时,当光照变化 10 勒克斯时,刷新屏幕并发送数据(如果网络可用)以及更改天气预报时。
还有一个额外的子程序,用于在TVOC水平急剧上升30个单位时更新屏幕和发送数据,检查间隔为每6秒。

设备第一次开机时,进行空气质量计算算法的训练周期;在我的实施中,最长培训时间为 12 小时。学习后,传感器开始将算法的当前状态以四小时的间隔保存在MC的内存中。设备重启时,设备关机后恢复运行时,更换电池时,检查算法状态记录是否存在,如果有,则卸载这些数据,设备跳过12小时的学习期。
该设备有一个“菜单”按钮。“菜单”按钮的可用功能:1.屏幕反转,2.发送演示,3.进入配置模式(通过无线电接收外部命令,4.搜索网络,5.重置设备。

此外,除了“菜单”按钮外,传感器还可以通过来自智能家居系统界面的外部命令进行配置。为此,通过按“菜单”按钮激活所需的菜单项“传感器配置”。激活配置模式后,传感器将进入监听模式 20 秒。命令必须在此时间间隔内发送。外部命令可以设置电池检查间隔,改变屏幕信息显示的反转,选择操作模式:LP(每 3 秒读取一次 SGP40 传感器)或 ULP(每 5 秒读取一次 SGP40 传感器)。

传感器可以分析大气压力数据并根据它计算天气预报,将天气预报数据显示在屏幕上,并将这些值发送到智能家居系统。天气预报计算算法说明 - ( NXP Application Note 3914 | John B. Young)

值变化方向的指示出现在屏幕上每种类型的数据旁边。

编译需要的软件版本,需要配置aConfig.h文件。

传感器在休眠模式下的平均功耗为 33μA(参见 SGP40 上的数据表),在传感器读数和屏幕刷新模式下为 4mA(平均),在数据传输模式下为 8mA(平均),一条消息的传输时间为 10ms(理想情况下)状况)。传感器使用 CR2477 电池(950mA)工作,设备的平均估计运行时间为 1 年(取决于固件配置,设备上安装的传感器,更多的传感器将需要发送更多的数据,空中传输是主要消费者)。

我在 FDM 3D 打印机上打印了开发的传感器外壳的模型,以实现或多或少的体面外观,在打印出车身抛光后。磁铁可以安装在外壳内。

项目的 GitHub 

自述文件包含安装和配置环境以编辑和编译传感器软件的说明。

开源硬件认证
OSHWA UID:RU000004

感谢您的阅读和关注。

外文原文:点击进入
声明:本文由Hackaday授权电路城翻译,系电路城的原创内容,转载请注明出处! 

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论