盛思锐CO2传感器模块SCD30同时集成温度湿度测量

盛思锐出品的CO2传感器,模块带有温湿度数据测量,具有高稳定性,温度补偿。

一、主要特性:

支持接口I2C和MODBUS; 供电3.3-5.5v; CO2测量 湿度测量 温度测量

二、在零知平台上进行开发的演示测试::

(1)连线:

模块引脚说明如下

此处我们使用的是I2C接口,供电3.3v,因此只需要模块接入3.3v电源,共地,再把传感器模块SCL接入零知标准板的A5,模块SDA脚接入零知标准板的A4,这样就完成了硬件的连接,非常简单。

(2)代码:


							
  /*
    读取CO2,湿度,温度数据
    基于盛思锐CO2传感器-SCD30模块(I2C接口)
    powered by 零知实验室-零知开源
  */
   
  #include "SCD30.h"
  #include "SoftWire.h"
   
  //SoftWire Wire1(0,1);//使用0-SCL,1-SDA接传感器I2C接口
   
  SCD30 airSensor;
   
  void setup()
  {
   
    Serial.begin(9600);
    Serial.println("Sensirion SCD30 Demo!");
   
    airSensor.begin(); //默认采样率,2s读取一次数据
           
  //                //airSensor.begin(Wire1);//可以修改I2C接口引脚,默认为A4,A5
           
  //  //通过以下接口修改参数设置,以获取到实际场合的数据
  //  //1.采样率设置为4s,有效设置范围: 2s ~ 1800s (30 minutes)
  //  airSensor.setMeasurementInterval(4); 
  //
  //  //2.海拔高度设置为1600m,当前的海拔高度以m为单位
  //  airSensor.setAltitudeCompensation(1600); 
  //
  //  //3.环境压强设置,当前设置为835mBar(注:1mBar = 100Pa),真空度24.65inHg或834.74mBar
  //  airSensor.setAmbientPressure(835); //当前环境的压强 700~1200mBar
  }
   
  void loop()
  {
    if (airSensor.dataAvailable())
    {
      Serial.print("CO2(ppm):");
      Serial.print(airSensor.getCO2());//读取CO2
   
      Serial.print(" temp(C):");//读取温度
      Serial.print(airSensor.getTemperature(), 1);
   
      Serial.print(" humidity(%):");//读取湿度
      Serial.print(airSensor.getHumidity(), 1);
   
      Serial.println();
    }
    else
    {
      //Serial.println("No data");
    }
    delay(1000);
  }
						
						

注:上述代码中注释的部分可以根据自己的实际需求进行更改,海拔和压力数据需根据自己所在位置进行实际测量后设置。

完整工程


Sensirion-SCD30.7z(点击下载)

测试结果

3、在stm32平台上的源码可在这里下载:
Sensirion_CO2_Sensors_SCD30_Sample_Code_STM32VLDISCOVER_STM32F100.zip(点击下载)
4、其他参考资料:
datasheet:Sensirion_CO2_Sensors_SCD30_Datasheet.pdf(点击下载)
I2C和Modbus接口说明:datasheet:Sensirion_CO2_Sensors_SCD30_Interface_Description.pdf(点击下载)