快速验证方式有多种,其中之一肯定是使用官方的GUI软件进行,不过没法实现,主要原因就是使用官方GUI需要用到一个特殊的工具——SEK-SensorBridge:

这个SensorBridge也是一个相当贵的工具,是盛思睿官方的桥接设备。
我们只能退而求其次使用Arduino进行快速验证测试,盛思睿官方对Arduino的维护支持也是相当迅速的,这次我们Arduino R4开发板进行基本测试,我们先看一下SCD41传感器评估板的基本信息:

典型的I2C应用电路需要SCL和SDA线都是开漏I/O,且必须连接到外部上拉电阻(例如10 kΩ),需要注意的是,上拉电阻需要包含在微控制器或嵌入式平台的I/O电路中,板测评估的开发板上并没有带,这就需要我们对arduino的IIC引脚进行一下查看确认,arduino的IIC接口:

明显这个不行,这个IIC接口上拉引脚默认是没有的,另一个qwiic是可以的,不仅上拉了还进行了电平匹配:

硬件连接:

测试代码:
#include <DFRobot_SCD4X.h>
DFRobot_SCD4X SCD4X(&Wire1, /*i2cAddr = */SCD4X_I2C_ADDR);
void setup(void)
{
Serial.begin(115200);
while( !SCD4X.begin() ){
Serial.println("Communication with device failed, please check connection");
delay(3000);
}
Serial.println("Begin ok!");
SCD4X.enablePeriodMeasure(SCD4X_STOP_PERIODIC_MEASURE);
SCD4X.setTempComp(4.0);
float temp = 0;
temp = SCD4X.getTempComp();
Serial.print("The current temperature compensation value : ");
Serial.print(temp);
Serial.println(" C");
SCD4X.setSensorAltitude(540);
uint16_t altitude = 0;
altitude = SCD4X.getSensorAltitude();
Serial.print("Set the current environment altitude : ");
Serial.print(altitude);
Serial.println(" m");
SCD4X.enablePeriodMeasure(SCD4X_START_PERIODIC_MEASURE);
Serial.println();
}
void loop()
{
if(SCD4X.getDataReadyStatus()) {
DFRobot_SCD4X::sSensorMeasurement_t data;
SCD4X.readMeasurement(&data);
Serial.print("Carbon dioxide concentration : ");
Serial.print(data.CO2ppm);
Serial.println(" ppm");
Serial.print("Environment temperature : ");
Serial.print(data.temp);
Serial.println(" C");
Serial.print("Relative humidity : ");
Serial.print(data.humidity);
Serial.println(" RH");
Serial.println();
}
delay(1000);
}效果如下:

我要赚赏金
