零知开源分享 - 使用CO2传感器-SCD30测量温度和湿度-Arduino中文社区 - Powered by Discuz! Archiver

零知实验室-roc 发表于 2019-5-18 12:00

零知开源分享- 使用CO2传感器-SCD30测量温度和湿度

本篇文章中将使用盛思锐出品的CO2传感器-SCD30模块测量温度和湿度,模块带有温湿度数据测量,具有高稳定性,温度补偿。
主要特性:
支持接口I2C和MODBUS;
供电3.3-5.5v;
CO2测量;

湿度测量;

温度测量;

1、说明
MCU:零知开发板-标准板

模块:盛思锐SCD30模块

2、连接
模块引脚说明:

将使用I2C接口,供电3.3v,因此只需要模块接入3.3v电源,共地,再把模块SCL接入零知标准板的A5,模块SDA脚接入零知标准板的A4,这样就完成了硬件的连接,非常简单。如下图所示:

接好线后就可以烧写代码了,使用零知开源开发工具,示例多,使用方便。

3、调试结果

4、核心代码
/*
读取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);
}
完整工程或更多详细资料可到零知实验室官网免费获取。
页: [1]
查看完整版本: 零知开源分享- 使用CO2传感器-SCD30测量温度和湿度