Gravity: SCI DAQ Module

Introduction

DFRobot has provided users with hundreds of sensors of all kinds. However, many of them output raw electrical signals like current, voltage, etc., and for obtaining standard units of physical quantities, users need to look for relevant information in the product datasheets and convert data by formulas or coding. Meanwhile, the data format varies with different sensors, so most sensors require unique controlling programs. All of these would raise the bar for using sensors. Therefore, DFRobot develops this Gravity: Science Data Acquisition (SCI DAQ) module that allows users to get sensor data in a simpler way.

The Gravity: Science Data Acquisition (SCI DAQ) module is a powerful and highly integrated data acquisition module that incorporates features such as screen display, automatic sensor recognition, sensor calibration, data logging, RTC clock, and data conversion to make data acquisition more convenient and efficient. In addition, the SCI DAQ module has versatile power options and can output physical quantity data collected by sensors through an I2C interface, compatible with micro:bit, Arduino, Raspberry Pi, UNIHIKER, etc.

Now, the SCI DAQ Module already supports over 20 popular sensors, such as temperature, humidity, atmospheric pressure, oxygen concentration, and more. In the future, we will continue to expand the number of supported sensors, bringing more application scenarios to users. Whether in scientific exploration, interdisciplinary teaching, or IoT applications, the SCI DAQ module will be an indispensable data acquisition tool.

Note: Please install the button cell battery into the battery holder on the back of the module by yourself, with the positive side of the battery facing the acrylic board side, this button cell battery is used to supply power to the RTC chip, and the module can provide accurate time output after installation

Specification

Supported Sensor List

SKU Sensor Physical Quantity Name Tag Typical Data Device Address Calibration Version
SEN0161-V2 Analog pH meter V2 Water Quality PH PH_Water PH_Water: 7.0 Analog Low Point: PH7 solution
High Point: PH4 solution
V1.0.1
SEN0244 Analog TDS Sensor Water Quality TDS TDS TDS: 17 ppm Analog Low Point:707ppm Solution V1.0.1
DFR0300 Analog Electrial Conductiity Meter V2 Water Quality EC EC_Water EC_Water: 12.9 mS/cm2 Analog Low Point:1413us/cm2 Solution
High Point:12.88ms/cm2 Solution
V1.0.1
SEN0232 Analog Sound Level Meter decibel Sound Sound: 55.2 db Analog None V1.0.1
SEN0231 HCHO Sensor HCHO Concentration HCHO HCHO: 0.03 ppm Analog None V1.0.1
SEN0193 Soil moisture sensor Soil moisture Moisture Moisture: 50 %RH Analog Low Point:Immersed in water
High Point:Air
V1.0.1
SEN0114 Soil moisture sensor Soil moisture Moisture Moisture: 50 %RH Analog Low Point:Immersed in water
High Point:Air
V1.0.2
DFR0023 Temperature sensor-LM35 Air temperature Temp_Air Temp_Air:28.65 C Analog None V1.0.3
DFR0051 Voltage sensors Voltage Voltage Voltage : 3.5 V Analog None V1.0.3
KIT0021 Waterproof temperature sensor Waterproof temperature Temp_W Temp_W: 20.23 ℃ Digital None V1.0.1
DFR0067 Temperature & humidity sensor-DHT11 Air temperature
Air humidity
Temp_Air
Humi_Air
Temp_Air: 28.65 ℃
Humi_Air: 30.12 %RH
Digital None V1.0.3
SEN0137 Temperature & humidity sensor-DHT22 Air temperature
Air humidity
Temp_Air
Humi_Air
Temp_Air: 28.65 ℃
Humi_Air: 30.12 %RH
Digital None V1.0.3
SEN0334 Digital temperature & humidity sensor-SHT31 Air temperature
Air humidity
Temp_Air
Humi_Air
Temp_Air: 28.65 ℃
Humi_Air: 30.12 %RH
0x44
0x45
None V1.0.1
SEN0497 Temperature & humidity sensor-DHT20 Air temperature
Air humidity
Temp_Air
Humi_Air
Temp_Air: 28.65 ℃
Humi_Air: 30.12 %RH
0x38 None V1.0.3
SEN0228 Digital ambient light sensor Ambient light Light Light: 125.47 lx 0x10 None V1.0.1
SEN0517 Barometric pressure temperature sensor-ICP10111 Altitude
Air pressure
Air temperature
Altitude
Pressure
Temp_Air
Altitude: 522.9 m
Pressure:1106.34hPa
Temp_Air: 30.08 C
0x63 None V1.0.1
SEN0251 Barometric pressure temperature sensor-BMP388 Altitude
Air pressure
Air temperature
Altitude
Pressure
Temp_Air
Altitude: 522.9 m
Pressure:1106.34hPa
Temp_Air: 30.08 C
0x77 None V1.0.3
SEN0322 Oxygen sensor O2 concentration O2 O2: 20.01 %vol 0x72
A0A1:10
Press the onboard sensor calibration button for 2s V1.0.1
SEN0321 Ozone Sensor O3 concentration O3 O3: 1544 ppb 0x70
0x71
0x73
None V1.0.1
SEN0514 Air quality sensor Air quality
TVOC
ECO2
AQI
TVOC
ECO2
AQI: 1
TVOC: 88 ppb
ECO2: 529 ppm
0x52
0x53
None V1.0.1
SEN0456 Air pressure sensor Container pressure Pressure Pressure: 110.76 Kpa 0x16-0x18 Low Point:110.0Kpa V1.0.1
SEN0529 3-axis geomagnetic sensor Orientation
X geomagnetic data
Ygeomagnetic data
Z geomagnetic data
Angle_N
Mag_X
Mag_Y
Mag_Z
Angle_N: 157.38 °
Mag_X: 20 uT
Mag_Y: -48 uT
Mag_Z: -14 uT
0x13
A0A1:11
None V1.0.1
KIT0176 Weight sensor Weight Weight Weight: 300.04 g 0x64-0x67 Low Point:100g V1.0.1
SEN0518 Heart rate and blood oxygen sensor Blood oxygen
Heart rate
SPO2
Heart
SPO2: 99 %
Heart: 93 T/min
0x57 None V1.0.1
SEN0304 Ultrasonic distance sensor Distance Distance Distance: 213 cm 0x11 None V1.0.1
SEN0364 Visible light sensor Spectral 405-425
435-455
...
405-425: 11
435-455: 61
...
0x39 None V1.0.1
SEN0460 PM2.5 Air quality sensor PM1.0
PM2.5
PM10
PM1.0
PM2.5
PM10
PM1.0: 43 ug/m³
PM2.5: 77 ug/m³
PM10: 93 ug/m³
0x19 None V1.0.1
SEN0206 IR Thermometer Temperature Temp Temp: 22.41℃ 0x5A None V1.0.1
SEN0291 Digital Wattmeter Voltage
Current
Power
Voltage
Current
Power
Voltage: 12V
Current: 1000mA
Power: 12620mW
0x40
A0A1:00
Not supported currently V1.0.1
TEL0157 GNSS GPS BEIDOU Positioning Module Latitude
Longitude
Altitude
Lat
Lon
Altitude
Lat : 31.204107
Lon : 121.599082
Altitude: 522.9 m
0x20 None V1.0.2
SEN0536 Infrared CO2 Sensor CO2 concentration CO2
Temp_Air
Humi_Air
CO2 : 401.37 ppm
Temp_Air: 28.65 C
Humi_Air: 30.12 %RH
0x62 None V1.0.2
SEN0575 Rainfall Sensor Rainfall Rainfall Rainfall: 3.91mm 0x1D None V1.0.3

Board Overview

Update Firmware

The SCI DAQ module allows users to add the newly-supported sensors by updating the firmware in the way shown below:

Use SCI Module Independently

This demo will use the SCI DAQ module independently to show how to check, store, and export sensor data.

Use with I2C Sensor

Connect the sensor to the module's left 4pin port(port 2/3). The acquisition module will auto detect the sensor type, and the relevant sensor readings will be displayed on the screen.

Requirements

Connection Diagram

The module can be powered by either battery or Type-C port. Connect all parts as the connection above, then the sensor data can be displayed on the screen.Type-C port cannot charge the battery.

When connecting multiple sensors, the sensor data will be shown in the sequence of port1, port2, and port3.

One page of the screen can only display 5 pieces of data at most. So when the sensor outputs multiple parameters, please press the "OK" button to look for more data.

Use with digital/analog sensor

Data Logging & Reading

The SCI DAQ module comes with 16M storage for logging real-time experiments data in CSV format. The CSV table includes time, physical quantity name, physical quantity value, and unit.

csv data

Export Data

The recorded data can be exported in the format of a CSV file.

Introduction to SCI DAQ Interaction

Sensor Calibration

Data Refresh Rate Setting

Setting Content to Be stored

System Time Setting

Module ID Setting

Check Version

Tutorial for Arduino UNO

Requirements

Connection Diagram

Get Data of Specific Physical Quantity Name

Enter the name of a physical quantity in the function to get its value or unit. The name of the physical quantity can be obtained by the name displayed on the module screen or the "Supported Sensor List".

Sample Code

#include "DFRobot_RP2040_SCI.h"

DFRobot_RP2040_SCI_IIC sci(/*addr=*/RP2040_SCI_ADDR_0X21, &Wire);

void setup() {
  Serial.begin(115200);
  while(!Serial){                                                     //Waiting for USB Serial COM port to open.
  }

  Serial.print("Initialization SCI DAQ Module...");
  while(sci.begin() != 0){
      Serial.println("failed. Please check whether the hardware connection is wrong.");
      delay(1000);
      Serial.print("Initialization SCI DAQ Module...");
  }
  Serial.println("done.");

}

void loop() {
  String TimeStamp = sci.getTimeStamp();
  float Temp_Air_val  = sci.getValue(sci.eALL,"Temp_Air").toFloat();
  String Temp_Air_unit = sci.getUnit(sci.eALL,"Temp_Air");
  float Humi_Air_val  = sci.getValue(sci.eALL,"Humi_Air").toFloat();
  String Humi_Air_unit = sci.getUnit(sci.eALL,"Humi_Air");
  Serial.print(" TimeStamp: "); Serial.print(TimeStamp);
  Serial.print(" Temp_Air: "); Serial.print(Temp_Air_val); Serial.print(" ");Serial.print(Temp_Air_unit);
  Serial.print(" Humi_Air: "); Serial.print(Humi_Air_val); Serial.print(" ");Serial.println(Humi_Air_unit);
  Serial.println();
  delay(1000);
}

Result

Get All Sensor Data

This program aims to obtain all data of sensors on the specified port in the format of Name 1: Value 1 Unit 1, Name 2: Value 2 Unit 2. You can write a general script to parse the program and draw tables.

Sample Code
#include "DFRobot_RP2040_SCI.h"

DFRobot_RP2040_SCI_IIC sci(/*addr=*/RP2040_SCI_ADDR_0X21, &Wire);

void setup() {
  Serial.begin(115200);
  while(!Serial){                                                     //Waiting for USB Serial COM port to open.
  }

  Serial.print("Initialization SCI DAQ Module...");
  while(sci.begin() != 0){
      Serial.println("failed. Please check whether the hardware connection is wrong.");
      delay(1000);
      Serial.print("Initialization SCI DAQ Module...");
  }
  Serial.println("done.");
}

void loop() {
  String ifAll = sci.getInformation(sci.eALL, true);
  Serial.println(ifAll);
  Serial.println();
  delay(1000);
}

Result

Control whether to start logging by code

#include "DFRobot_RP2040_SCI.h"

DFRobot_RP2040_SCI_IIC sci(/*addr=*/RP2040_SCI_ADDR_0X21, &Wire);

void setup() {
  Serial.begin(115200);
  while(!Serial){                                                     //Waiting for USB Serial COM port to open.
  }

  Serial.print("Initialization SCI Acquisition Module...");
  while(sci.begin() != 0){
      Serial.println("failed. Please check whether the hardware connection is wrong.");
      delay(1000);
      Serial.print("Initialization SCI Acquisition Module...");
  }
  Serial.println("done.");
  sci.enableRecord();
  //sci.disableRecord();
}

void loop() {
  String TimeStamp = sci.getTimeStamp();
  float Temp_Air_val  = sci.getValue(sci.eALL,"Temp_Air").toFloat();
  String Temp_Air_unit = sci.getUnit(sci.eALL,"Temp_Air");
  float Humi_Air_val  = sci.getValue(sci.eALL,"Humi_Air").toFloat();
  String Humi_Air_unit = sci.getUnit(sci.eALL,"Humi_Air");
  Serial.print(" TimeStamp: "); Serial.print(TimeStamp);
  Serial.print(" Temp_Air: "); Serial.print(Temp_Air_val); Serial.print(" ");Serial.print(Temp_Air_unit);
  Serial.print(" Humi_Air: "); Serial.print(Humi_Air_val); Serial.print(" ");Serial.println(Humi_Air_unit);
  Serial.println();
  delay(1000);
}

Tutorial for MakeCode

Simultaneous use of multiple SCI

Connection Diagram

SCI Set

Sample Code

#include "DFRobot_RP2040_SCI.h"

DFRobot_RP2040_SCI_IIC SCI1(/*addr=*/0x21, &Wire);
DFRobot_RP2040_SCI_IIC SCI2(/*addr=*/0x22, &Wire);

void setup() {
  Serial.begin(115200);
  while(SCI1.begin() != 0){delay(1000);};
  while(SCI2.begin() != 0){delay(1000);};
}
void loop() {
  Serial.println(SCI1.getValue(SCI1.eALL,"Temp_Air"));
  Serial.println(SCI1.getValue(SCI1.eALL,"Humi_Air"));
  Serial.println(SCI1.getValue(SCI1.eALL,"Light"));
  Serial.println("-------------------");
  Serial.println(SCI2.getValue(SCI2.eALL,"AQI"));
  Serial.println(SCI2.getValue(SCI2.eALL,"TVOC"));
  Serial.println(SCI2.getValue(SCI2.eALL,"ECO2"));
  Serial.println(SCI2.getValue(SCI2.eALL,"Altitude"));
  Serial.println(SCI2.getValue(SCI2.eALL,"Pressure"));
  Serial.println("-------------------");
}

More Tutorials

  1. Build a Conductivity Tester
  2. Plant Monitoring System
  3. Discover Color, Light and Heat
  4. Indoor Air Quality Monitor
  5. Air Quality Tracking and Analysis

Compatibility

C++ Python Arduino IDE MindPlus Makecode
Arduino
micro:bit V1 V2
ESP32
Raspberry Pi
UNIHIKER

FAQ

For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

Firmware Release Notes

V1.0.1 Updated sensor support types V1.0.2 Updated sensor support types V1.0.3 Updated sensor support types. V1.0.4 Fixed SEN0193 measurement value reversal issue

More Documents

[DFR0999]Dimensional