edit

Grove - High Precision Barometric Pressure Sensor DPS310

Grove - High Precision Barometric Pressure Sensor (DPS310)

Barometer detecting is very useful in enviromental sensing or altitude measuring. The Grove Barometer sensor is besed on infineon DPS310, a miniaturized digital barometer air pressure sensor with high accuracy. It can measure pressure range from 300 to 1200 hPa, with ±0.002hPa precision, which means you can detect altitude change within ±2cm at most.

BMP280 vs. BME280 vs. DPS310

We've already released the Grove - Barometer Sensor (BMP280) and Grove - Barometer Sensor(BME280), let us show you how powerful Grove-DPS310 is through the comparison of the table below.

ITEM Grove-BMP280 Grove-BME280 Grove-DPS310
Pressure Range 300 ~ 1100 hPa 300 ~ 1100 hPa 300 ~ 1200 hPa
Temperature Range -40 ~ 85 ℃ -40 ~ 85 ℃ -40 ~ 85 °C
Pressure Precision - - ± 0.002 hPa (or ±0.02 m)
Pressure Accuracy
(Absolute)
± 1 hPa (or ±8 m) ± 1 hPa (or ±8 m) ± 1 hPa (or ±8 m)
Pressure Accuracy
(Relative)
± 0.12 hPa ± 0.12 hPa ± 0.06 hPa (or ±0.5 m)
Pressure Resolution 0.18 Pa 0.18 Pa 0.06 Pa
Humidity - 0 ~ 100% -
Communication I2C/SPI I2C/SPI I2C/SPI

Specification

Item Value
Operating Voltage 3.3V / 5V
Operating air pressure 300 to 1200hPa
Precision ±0.002hPa
Interface I2C,SPI
I2C Address The default address is 0x77
When short-circuited, the address is 0x76

Note

When communicating in SPI mode, do not select I2C address as 0x76, otherwise SPI will not be able to read data normally (since I2C and SPI share pins, I2C address as 0x76 is equivalent to MOSI pin grounding).

Features

  • High Pressure Precision: ± 0.002 hPa (or ±0.02 m)
  • High Pressure Accuracy: ± 0.06 hPa (or ±0.5 m)-Relative; ± 1 hPa (or ±8 m)-Absolute
  • Wide Range: Pressure: 300 –1200 hPa; Temperature: -40 – 85 °C.
  • Easy to Use: Grove IIC (with interrupt) / SPI
  • Low power consumption

Typical Applications

  • Indoor Navigation (floor detection e.g. in shopping malls and parking garages)
  • Health and Sports (accurate elevation gain and vertical speed)
  • Outdoor Navigation (GPS start-up time and accuracy improvement, dead-reckoning e.g. in tunnels)
  • Weather Station('Micro-weather' and local forecasts)
  • Drones (flight stability and height control)

Tip

More details about Grove modules please refer to Grove System

Hardware Overview

Platforms Supported

Arduino Raspberry Pi BeagleBone Wio LinkIt ONE

Caution

The platforms mentioned above as supported is/are an indication of the module's software or theoritical compatibility. We only provide software library or code examples for Arduino platform in most cases. It is not possible to provide software library / demo code for all possible MCU platforms. Hence, users have to write their own software library.

Getting Started

Note

If this is the first time you work with Arduino, we firmly recommend you to see Getting Started with Arduino before the start.

Play With Arduino

Hardware

Materials required

Seeeduino V4.2 Base Shield High Precision Barometric Pressure Sensor
enter image description here enter image description here enter image description here
Get One Now Get One Now Get One Now

Note

1 Please plug the USB cable gently, otherwise you may damage the port. Please use the USB cable with 4 wires inside, the 2 wires cable can't transfer data. If you are not sure about the wire you have, you can click here to buy.

2 Each Grove module comes with a Grove cable when you buy. In case you lose the Grove cable, you can click here to buy.

  • Step 1. Connect the Grove - High Precision Barometric Pressure Sensor (DPS310) to port I2C of Grove-Base Shield.

  • Step 2. Plug Grove - Base Shield into Seeeduino.

  • Step 3. Connect Seeeduino to PC via a USB cable.

Software

Attention

If this is the first time you work with Arduino, we strongly recommend you to see Getting Started with Arduino before the start.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <Dps310.h>

Dps310 Dps310PressureSensor = Dps310();

void setup()
{
  Serial.begin(9600);
  while (!Serial);
  Dps310PressureSensor.begin(Wire);
  Serial.println("Init complete!");
}

void loop()
{
  float Detection_array[10];
  uint8_t oversampling = 7;
  int16_t ret;
  int i;
  int size = 10;
  int state1;
  int state2;
/*In the following two cycles, the pressure state at the pre and post time was detected respectively.
  The sampling quantity was 10. The values with large deviation were removed, and the average value was calculated.*/
      ret = Dps310PressureSensor.measurePressureOnce(Detection_array[0], oversampling);
      state1 = Detection_array[0];
 for (i = 1; i < 9; i++)
  {
     ret = Dps310PressureSensor.measurePressureOnce(Detection_array[i], oversampling);
       if (Detection_array[i] - Detection_array[i - 1] < 5)
      {
        state1 += Detection_array[i];
      }
      else
      {
        size -= 1;
      }
  } 
 state1 = state1 / size;
 delay(100);


      ret = Dps310PressureSensor.measurePressureOnce(Detection_array[0], oversampling);
      state2 = Detection_array[0];
 for (i = 1; i < 9; i++)
  {
      ret = Dps310PressureSensor.measurePressureOnce(Detection_array[i], oversampling);
      if (Detection_array[i] - Detection_array[i - 1] < 5)
      {
        state2 += Detection_array[i];
      }
      else
      {
        size -= 1;
      }
  }
  state2 = state2 / size;

 if (ret != 0)
   {
    Serial.print("FAIL! ret = ");
    Serial.println(ret);
   }
/*Calculate the difference in air pressure to determine if you fall*/
    else if (state2 - state1 > 4)
     {
      Serial.println("You fell down. Do you need help?");
      delay(5000);
     }
    else
      Serial.println("It's ok!");
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/
  • Step 4. Upload the demo. If you do not know how to upload the code, please check How to upload code.

  • Step 5. Open the serial monitor. If every thing goes well and if you simulate a fall, or drop it to the ground, it will tell you if you need help.

Resources

Schematic Online Viewer

Tech Support

Please do not hesitate to submit the issue into our forum