SGP40空气质量传感器

简介

SGP40是一款sensirion新推的VOC传感器(SGP30的升级版),具有超长供货期(sensirion10年计划)、超低功耗(平均功耗低至 2.6 mA / 3.3V)、启动速度快(<60S)、无需校准等特性。最重要的是该传感器内置强大的VOC算法,可将不直观的VOC浓度转换为可直观指示空气质量好坏的VOC指数。

   SGP40传感器与人类鼻子表现相似,反应的是室内voc相对于历史数据的强度变化,且Breakout版本体积非常小巧,因此十分适合集成到会长期使用的室内场景项目中,例如改装空气净化器、抽油烟机等。

   我们提供了C类库和Python库,因此您可以任意选择搭配的主控。

VOC指数

  • 0-100:优,无需通风
  • 100-200:良好,无需通风
  • 200-300:轻度污染,建议开窗通风
  • 300-400:中度污染,建议开窗通风
  • 400-500:重度污染,建议猛烈通风

  • 该传感器提供的是空气质量趋势的变化,算法会根据历史数据不断调整典型空气的基线,传感器使用越久,趋势及变化的灵敏度与精准性越强
  • 在普通空气环境中,传感器使用后可立即获得准确VOC指数;在高污染环境中,传感器使用约1h后可获得准确VOC指数,因此建议集成到长期使用的室内项目
  • 更多关于VOC指数的相关信息请查阅手册:
    GAS_AN_SGP40_VOC_Index_for_Experts_D1.pdf

特性

  • 超低功耗(2.6mA)
  • 片内温湿度补偿,无需校准
  • 内置VOC算法,VOC指数可直观指示空气状态变化

应用场景

  • 车内空气质量检测
  • 室内空气质量检测
  • 空气净化器
  • 加湿器改造
  • 家庭控制器
  • 新风系统
  • 厨房油烟机
  • 自动开窗

技术规格

  • 供电电压:3.3V~5 V
  • 工作电流:2.6mA
  • 预热时间:10秒
  • 响应时间:2秒
  • 通信方式:I2C
  • I2C地址:0x59
  • 工作温度范围:-10℃~50℃
  • 存储温度范围:5℃~30℃
  • 工作湿度范围:0%RH~90%RH(相对湿度)
  • VOC指数范围:0~500
  • 产品尺寸:18*11.5mm


    注意:VOC指数是由检测到的空气中乙醇当量换算得出。测量范围为0-1000ppm乙醇当量。

引脚说明

序号 丝印 功能描述
1 VCC/VIN 电源正极
2 GND 电源负极
3 SCL I2C时钟线
4 SDA I2C数据线

Arduino使用教程

该产品使用的是标准I2C线序,使用起来比较简单,按接线图所示将传感器与uno(或其它主板)相连接,该产品预热时间短,算法启动时间为10s。

⚠注意:产品使用的前五分钟,数据有一定误差,此时数据作为参考数据,约五分钟后,可以获得准确voc指数。

准备

关于如何安装库文件,点击链接

  • 主要API接口函数列表
  /**
   * @brief  初始化函数
   * @param  duration 初始化时长,默认10秒(10000毫秒)
   * @return 返回true表示成功;返回false表示失败
   */
  bool begin(uint32_t duration = 10000);
  
  /**
   * @brief  设置当前环境的温度和相对湿度
   * @param  relativeHumidityRH  当前环境的相对湿度,范围:0-90,单位: %RH
   * @param  temperatureC  当前环境的温度,范围:-10~50, 单位: °C
   */
  void setRhT(float relativeHumidity = 50,float temperatureC=25);
  
  /**
   * @brief  获取VOC指数
   * @note   VOC指数可直观表示空气质量,值越大,空气质量越差。
   * @note       0-100,无需开窗通风
   * @note       100-200,无需开窗通风
   * @note       200-400,需要开窗通风
   * @note       400-500,需要立即开窗猛烈通风
   * @return 返回VOC指数,范围:0-500
   */
  uint16_t getVoclndex(void);

接线图

<File:SEN0392-CONNECT.jpg>

样例代码 - 读取VOC指数

上电10s后串口打印当前VOC指数。

芯片已设置片内补偿,用户无需校准即可使用。若需要获取更精确的数值,可以打开setRhT()函数,将外部湿度检测传感器获取到的环境相对湿度值RH%和温度计检测到的环境温度°C填入即可。

  
/*!
 * @file  getVocIndex.ino
 * @brief 读取环境VOC指数,范围:0-500
 * @n     实验现象:每秒读取一次环境VOC指数并在串口中打印VOC指数值
 * @copyright  Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @licence     The MIT License (MIT)
 * @author [yangfeng]<feng.yang@dfrobot.com>
 * @version  V1.0
 * @date  2020-12-18
 * @get from https://www.dfrobot.com
 * @url  https://github.com/DFRobot/DFRobot_SGP40
 */
#include <DFRobot_SGP40.h>

/* 
 * 方法一:传入指定的I2C对象地址
 * #include <Wire.h>
 * DFRobot_SGP40    mySgp40(&Wire);
 
 * 方法二:使用默认的I2C对象&Wire
 * I2C 默认地址:0x59
 */

//#include <Wire.h>
//DFRobot_SGP40    mySgp40(&Wire);
DFRobot_SGP40    mySgp40;


void setup() {
  Serial.begin(115200);
  Serial.println("sgp40正在启动,10秒后开始读取数据...");
  /*
   * 传感器预热时间为10s。
   * duration:初始化等待时间。单位:毫秒。建议duration>=10000ms
   */
  while(mySgp40.begin(/*duration = */10000) !=true){
    Serial.println("芯片初始化失败,请检查接线是否正确");
    delay(1000);
  }
  Serial.println("----------------------------------------------");
  Serial.println("sgp40成功初始化!");
  Serial.println("----------------------------------------------");
  /* 
   * 设置当前环境中的相对湿度和温度
   * 传感器内部已进行温湿度校准,若需要得到更精确的voc指数,请打开注释
   * relativeHumidity:环境相对湿度,指空气中的水汽含量。范围:0-90,单位:%RH,例如:50%
   * temperatureC:环境温度。范围:-10~50,单位:°C,例如:20°C
   */
  //mySgp40.setRhT(/*relativeHumidity = */ 50, /*temperatureC = */ 20);
  
}

void loop() {
  /* 
   * 获取voc指数
   * voc指数可直接指示空气质量的好坏。数值越大,空气质量越差
   *    0-100,无需开窗通风
   *    100-200,无需开窗通风
   *    200-400,需要开窗通风
   *    400-500,需要立即开窗猛烈通风
   * 返回voc指数,范围:0-500
   */
  uint16_t index = mySgp40.getVoclndex();
  
  Serial.print("vocIndex = ");
  Serial.println(index);
  delay(1000);
}

结果

SGP40_result

树莓派使用教程

准备

接线图

SEN0392_connection_RPI

安装驱动

  1. 启动树莓派的I2C接口。如已开启,可跳过该步骤。
    打开终端(Terminal),键入如下指令,并回车:
    pi@raspberrypi:~ $ sudo raspi-config
    然后用上下键选择“ 5 Interfacing Options ”, 按回车进入,选择 “ P5 I2C ”, 按回车确认“ YES ”即可。重启树莓派主控板。

  2. 安装Python依赖库与git,树莓派需要联网。如已安装,可跳过该步骤。
    在终端中,依次键入如下指令,并回车:
    pi@raspberrypi:~ $ sudo apt-get update
    pi@raspberrypi:~ $ sudo apt-get install build-essential python-dev python-smbus git

  3. 下载SGP40驱动库。在终端中,依次键入如下指令,并回车:
    pi@raspberrypi:~ $ cd Desktop/
    pi@raspberrypi:~/Desktop $ git clone https://github.com/DFRobot/DFRobot_SGP40

运行样例代码

  • 将模块与树莓派按照连线图相连。I2C地址默认为0x59

  • 在终端中,键入如下指令并回车,运行样例代码:
    pi@raspberrypi:~/Desktop $ cd /home/pi/Desktop/DFRobot_SGP40/Python/raspberrypi/examples/
    pi@raspberrypi:~/Desktop/DFRobot_SGP40/Python/raspberrypi/examples $ python get_voc_index.py

结果

  • 模块每隔1s打印1次VOC指数

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

资料

一键下载所有资料

更多

DFshopping_car1.png DFRobot商城购买链接