本帖最后由 roc2two 于 2019-5-27 16:11 编辑
本篇**中将使用盛思锐出品的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);
}
完整工程或更多详细资料可到零知实验室官网免费获取。
|