快速验证方式有多种,其中之一肯定是使用官方的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); }
效果如下: