Grove-VOC 和 eCO2 气体传感器(SGP30)
Grove-VOC 和 eCO2 气体传感器(SGP30) 是一款空气质量检测传感器。该 Grove 模块基于 SGP30,我们为该模块提供 TVOC(总挥发性有机化合物)和 CO2eq 输出。
SGP30 是一款数字多像素气体传感器,专为轻松集成到空气净化器、需求控制通风和物联网应用中而设计。Sensirion 的 CMOSens® 技术在单个芯片上提供完整的传感器系统,具有数字 I2C 接口、温度控制微热板和两个预处理的室内空气质量信号。作为首款在单个芯片上具有多个传感元件的金属氧化物气体传感器,SGP30 提供了更详细的空气质量信息。
我们已经发布了 Seeed 气体传感器选择指南,它将帮助您选择最适合您需求的气体传感器。
可升级为工业传感器
通过 SenseCAP S2110 控制器 和 S2100 数据记录器,您可以轻松将 Grove 转换为 LoRaWAN® 传感器。Seeed 不仅帮助您进行原型设计,还为您提供了通过 SenseCAP 系列坚固的工业传感器扩展项目的可能性。
SenseCAP S210x 系列工业传感器为环境感知提供开箱即用的体验。请参考具有更高性能和稳健性的 S2103 无线 CO2、温度和湿度传感器,用于空气质量监测。该系列包括土壤湿度、空气温湿度、光照强度、CO2、EC 和 8 合 1 气象站传感器。尝试最新的 SenseCAP S210x 用于您下一个成功的工业项目。
SenseCAP 工业传感器 |
S2103 空气温湿度 & CO2 |
特性
- 用于室内空气质量应用的多像素气体传感器
- 出色的长期稳定性
- 具有TVOC和CO2eq输出信号的I2C接口
- 低功耗
- 芯片模块带卷包装,可回流焊接
规格
参数 | 信号 | 数值 |
---|---|---|
工作电压 | 3.3V/5V | |
输出范围 | TVOC | 0 ppb to 60000ppb |
CO₂eq | 400 ppm to 60000 ppm | |
采样率 | TVOC | 1HZ |
CO₂eq | 1HZ | |
分辨率 | TVOC | 0 - 2008 ppb / 1 ppb |
2008 - 11110 ppb / 6 ppb | ||
11110 - 60000 ppb / 32 ppb | ||
CO₂eq | 400 - 1479 ppm / 1 ppm | |
1479 -5144 ppm / 3 ppm | ||
5144 - 17597 ppm / 9 ppm | ||
17597 - 60000 ppm / 31 ppm | ||
默认I2C地址 | 0X58 |
应用
- 空气净化器
- 需求控制通风
- 物联网应用
- 新房空气状况监测
硬件概述
引脚图
原理图
电源
SGP30的典型工作电压是1.8v,我们使用电源转换芯片XC6206P182MR为MCP9600提供稳定的3.3V电压。
双向电平转换电路
这是一个典型的双向电平转换电路,用于连接I^2^C总线的两个不同电压部分。该传感器的I2C总线使用1.8V,如果Arduino的I2C总线使用5V或3.3V,则需要此电路。在上面的原理图中,Q7和Q8是N沟道MOSFET BSS138LT3G,充当双向开关。为了更好地理解这部分,您可以参考AN10441
支持的平台
Arduino | Raspberry Pi |
---|---|
上述提到的支持平台表示该模块的硬件或理论兼容性。在大多数情况下,我们只为Arduino平台提供软件库或代码示例。不可能为所有可能的MCU平台提供软件库/演示代码。因此,用户必须编写自己的软件库。
开始使用
如果这是您第一次使用 Arduino,我们强烈建议您在开始之前先查看 Arduino 入门指南。
与 Arduino 配合使用
硬件
所需材料
Seeeduino V4.2 | Base Shield | Grove-VOC 和 eCO2 气体传感器(SGP30) |
---|---|---|
立即购买 | 立即购买 | 立即购买 |
-
步骤 1. 将 Grove-VOC 和 eCO2 气体传感器(SGP30) 连接到 Grove-Base Shield 的 I2C 端口。
-
步骤 2. 将 Grove - Base Shield 插入 Seeeduino。
-
步骤 3. 通过 USB 线缆将 Seeeduino 连接到 PC。
如果我们没有 Grove Base Shield,我们也可以直接将 Grove-VOC 和 eCO2 气体传感器(SGP30) 连接到 Seeeduino,如下所示。
Seeeduino | Grove-VOC 和 eCO2 气体传感器(SGP30) |
---|---|
5V | 红色 |
GND | 黑色 |
SDA | 白色 |
SCL | 黄色 |
软件
-
步骤 1. 从 Github 下载 Seeed SGP30 库。
-
步骤 2. 参考 如何安装库 为 Arduino 安装库。
-
步骤 3. 解压您刚刚下载的
SGP30_Gas_Sensor-master.zip
,在examples
文件夹中您将看到 3 个子文件夹:
absolute_humidity_example
需要外部湿度传感器校准
base_example
是简单的数据收集,没有任何校准
baseline_operation_example
可以将数据基准值保存到闪存中。软件会自动收集基准值并存储它们。
我们建议使用 baseline_operation_example
,然后点击 xxx.ino
文件打开示例。
-
步骤 4. 上传演示程序。如果您不知道如何上传代码,请查看 如何上传代码。
-
步骤 5. 通过点击 工具-> 串口监视器 打开 Arduino IDE 的 串口监视器。或者同时按下 ++ctrl+shift+m++ 键。如果一切正常,您将得到结果。
结果应该如下所示:
318
tVOC Concentration:74ppb
CO2eq Concentration:506ppm
319
tVOC Concentration:80ppb
CO2eq Concentration:509ppm
320
tVOC Concentration:66ppb
CO2eq Concentration:500ppm
321
tVOC Concentration:69ppb
CO2eq Concentration:511ppm
322
tVOC Concentration:70ppb
CO2eq Concentration:511ppm
323
tVOC Concentration:60ppb
CO2eq Concentration:493ppm
324
tVOC Concentration:72ppb
CO2eq Concentration:502ppm
1- ppm:百万分之一。1 ppm = 1000 ppb(十亿分之一)
2- 结果基于 baseline_operation_example.ino
3- 我们在办公室房间中测试了这个演示,根据您的测试环境,结果可能会有所不同
与 Raspberry Pi 配合使用(使用 Grove Base Hat for Raspberry Pi)
硬件
- 步骤 1. 本项目中使用的物品:
Raspberry pi | Grove Base Hat for RasPi | Grove-VOC 和 eCO2 气体传感器(SGP30) |
---|---|---|
立即购买 | 立即购买 | 立即购买 |
- 步骤 2. 将 Grove Base Hat 插入 Raspberry。
- 步骤 3. 将 Grove-VOC 和 eCO2 气体传感器(SGP30) 连接到 Base Hat 的 I2C 端口。
- 步骤 4. 通过 USB 线缆将 Raspberry Pi 连接到 PC。
软件
如果您使用的是 Raspberry Pi with Raspberrypi OS >= Bullseye,您必须仅使用 Python3 来运行此命令行。
- 步骤 1. 按照 设置软件 来配置开发环境。
- 步骤 2. 通过克隆 grove.py 库来下载源文件。
cd ~
git clone https://github.com/Seeed-Studio/Seeed_Python_SGP30.git
- 步骤 3. 执行以下命令来运行代码。
cd Seeed_Python_SGP30
sudo python3 setup.py install
cd examples
python3 sgp30_simpleread.py
错误
这可能会导致一些错误,但我们不应该担心。
我们复制错误文件的路径。
这里是示例中显示的路径:"/usr/local/lib/python3.7/dist-packages/sgp30-0.1.6-py3.7.egg/sgp30"
使用 "cd" 命令跳转到该路径,并使用您的编译器来更改 "sgp30.py" 的代码,例如:"sudo nano sgp30.py"。
我们删除第二行的 "SMBusWrapper",然后保存。
返回到 "Seeed_Python_SGP30/examples" 文件夹,应用 "python3 sgp30_simpleread.py",一切就会正常。
以下是 sgp30_simpleread.py 代码。
import seeed_sgp30
from grove.i2c import Bus
sgp30 = seeed_sgp30.grove_sgp30(Bus())
while True:
data = sgp30.read_measurements()
co2_eq_ppm, tvoc_ppb = data.data
print("\r tVOC = {} ppb CO2eq = {} ".format(
tvoc_ppb, co2_eq_ppm))
如果一切顺利,您将能够看到以下结果。
pi@raspberrypi:~/Seeed_Python_SGP30/examples $ python3 sgp30_simpleread.py
tVOC = 9 ppb CO2eq = 943
tVOC = 9 ppb CO2eq = 931
tVOC = 10 ppb CO2eq = 920
tVOC = 14 ppb CO2eq = 904
tVOC = 12 ppb CO2eq = 888
tVOC = 13 ppb CO2eq = 873
tVOC = 11 ppb CO2eq = 865
tVOC = 11 ppb CO2eq = 842
tVOC = 9 ppb CO2eq = 828
tVOC = 10 ppb CO2eq = 814
tVOC = 11 ppb CO2eq = 794
tVOC = 14 ppb CO2eq = 786
tVOC = 9 ppb CO2eq = 764
tVOC = 12 ppb CO2eq = 744
tVOC = 11 ppb CO2eq = 739
tVOC = 12 ppb CO2eq = 715
tVOC = 15 ppb CO2eq = 688
tVOC = 13 ppb CO2eq = 669
您可以通过简单地按 ++ctrl+c++ 来退出此程序。
注意事项
- SGP30 使用动态基线补偿算法和片上校准参数来提供两个互补的空气质量信号。基线应存储在 EEPROM 中。当首次上电时 EEPROM 中没有基线值或基线记录超过七天时,传感器必须运行 12 小时直到可以存储基线。您可以参考下面的程序流程图。
-
H2_Signal 和 Ethanol_signal,这两个信号都可以用来计算相对于参考浓度 cref 的气体浓度 c,公式为 ln(C/Cref)=(Sref-Sout)/a,其中 a = 512,sref 是在参考浓度下的 H2_signal 或 Ethanol_signal 输出,sout = Sout_H2 或 Sout = Sout_EthOH。
-
为了更准确的测量,您可以设置绝对湿度补偿,默认值为 11.57g/m3。有点麻烦的是您需要通过其他方式获取环境的相对湿度值,因为 SGP30 中没有集成湿度测量部分。
幸运的是,在正常情况下这并不是很必要
原理图在线查看器
资源
- [Zip] Grove-VOC 和 eCO2 气体传感器(SGP30) eagle 文件
- [PDF] SGP30 数据手册
- [PDF] BSS138L 数据手册
- [PDF] SGP30 驱动集成指南 HW I2C
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。