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 |
When communicating in SPI mode, do not select I<sup>2</sup>C address as 0x76, otherwise SPI will not be able to read data normally (since I<sup>2</sup>C and SPI share pins, I<sup>2</sup>C 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)
More details about Grove modules please refer to [Grove System](https://wiki.seeedstudio.com/Grove_System/)
Hardware Overview
Platforms Supported
Arduino | Raspberry Pi | BeagleBone | Wio | LinkIt ONE |
---|---|---|---|---|
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
If this is the first time you work with Arduino, we firmly recommend you to see [Getting Started with Arduino](https://wiki.seeedstudio.com/Getting_Started_with_Arduino/) before the start.
Play With Arduino
Hardware
Materials required
Seeeduino V4.2 | Base Shield | High Precision Barometric Pressure Sensor |
---|---|---|
Get One Now | Get One Now | Get One Now |
**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](https://www.seeedstudio.com/Micro-USB-Cable-48cm-p-1475.html) 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](https://www.seeedstudio.com/Grove-Universal-4-Pin-Buckled-20cm-Cable-%285-PCs-pack%29-p-936.html) 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
If this is the first time you work with Arduino, we strongly recommend you to see [Getting Started with Arduino](https://wiki.seeedstudio.com/Getting_Started_with_Arduino/) before the start.
- Step 1. Download the DPS310-Pressure-Sensor Library from Github.
- Step 2. Refer to How to install library to install library for Arduino.
- Step 3. Copy the code into Arduino IDE and upload.
#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
- [Library] DPS310-Pressure-Sensor
- [Datasheet] DPS310-Datasheet
- [Zip] Grove-High-Precision-Barometer-Sensor-(DPS310)
Schematic Online Viewer
Tech Support
Please do not hesitate to submit the issue into our forum