空气质量监测-SGP30模块VOC CO2

官网可以购买SGP30模块,模块供电电压是1.8V-5.0V,购买地址:SGP30模块(点击购买)

注:新版本的相应软件库需要更新-SGP30.7z(点击下载)

使用SGP30模块对空气中的VOC和CO2进行监测,获取空气质量状况。

一、材料

零知开源---零知标准板
SGP30多像素气体传感器模块
软件是用零知开源原件,可以到软件下载版块下载。

注:模块接到开发板默认的I2C接口上,即A4,A5引脚,我们官网购买的模块是供电是1.8v-5.0v,淘宝上很多是1.8v电压供电注意供电

二、方法步骤

1、程序编写


												
	/*
	*        空气质量:VOC,CO2测量
	*         零知开源-[url=http://www.lingzhilab.com]www.lingzhilab.com[/url]
	*/
	 
	#include "Adafruit_SGP30.h"
	 
	Adafruit_SGP30 sgp;
	 
	uint32_t getAbsoluteHumidity(float temperature, float humidity) {
	    // approximation formula from Sensirion SGP30 Driver Integration chapter 3.15
	    const float absoluteHumidity = 216.7f * ((humidity / 100.0f) * 6.112f * 
	    exp((17.62f * temperature) / (243.12f + temperature)) / 
	    (273.15f + temperature)); // [g/m^3]
	    const uint32_t absoluteHumidityScaled = 
	    static_cast<uint32_t>(1000.0f * absoluteHumidity); // [mg/m^3]
	    return absoluteHumidityScaled;
	}
	 
	void setup() {
	  Serial.begin(9600);
	  Serial.println("SGP30 test");
	 
	  if (! sgp.begin()){
	    Serial.println("Sensor not found :(");
	    while (1);
	  }
	  Serial.print("Found SGP30 serial #");
	  Serial.print(sgp.serialnumber[0], HEX);
	  Serial.print(sgp.serialnumber[1], HEX);
	  Serial.println(sgp.serialnumber[2], HEX);
	}
	 
	int counter = 0;
	void loop() {
	  //float temperature = 22.1; // [°C]
	  //float humidity = 45.2; // [%RH]
	  //sgp.setHumidity(getAbsoluteHumidity(temperature, humidity));
	 
	  if (! sgp.IAQmeasure()) {
	    Serial.println("Measurement failed");
	    return;
	  }
	  Serial.print("TVOC "); Serial.print(sgp.TVOC); Serial.print(" ppb\t");
	  Serial.print("eCO2 "); Serial.print(sgp.eCO2); Serial.println(" ppm");
	  delay(1000);
	 
	  counter++;
	  if (counter == 30) {
	    counter = 0;
	 
	    uint16_t TVOC_base, eCO2_base;
	    if (! sgp.getIAQBaseline(&eCO2_base, &TVOC_base)) {
	      Serial.println("Failed to get baseline readings");
	      return;
	    }
	    Serial.print("****Baseline values: eCO2: 0x"); Serial.print(eCO2_base, HEX);
	    Serial.print(" & TVOC: 0x"); Serial.println(TVOC_base, HEX);
	  }
	}		
		

2、测试结果

3、完整工程


SGP30-测试demo.7z(点击下载)