Gravity: ICP-10111 Barometric Pressure Sensor Wiki - DFRobot

Introduction

This air pressure temperature sensor is equipped with TDK's newly lanuched ICP-10111 barometric pressure sensor, which is based on MEMS capacitor technology to achieve ultra-low power consumption, industry-leading relative accuracy and temperature offset coefficient.
The Gravity: ICP-10111 barometric pressure temperature sensor can measure the pressure difference with an accuracy of ±1Pa, an accuracy enabling altitude measurement differentials as small as 5 cm, less than the height of a single stair step.
The pressure noise can be as low as 0.4Pa, and the read data will be more stable. There is a built-in temperature sensor for air pressure compensation.The ICP-10111 offers a temperature coefficient offset of ±0.5 Pa/°C, more stable for long-term use. The combination of high accuracy, low power, and temperature stability in a small footprint enables higher performance barometric pressure sensing for sports activity identification, mobile indoor/outdoor navigation, and altitude-hold in drones.

Features

Appication

Specification

Dimension

Board Overview

Board Overview

Silkscreen Function
VCC Power +
GND Power -
SCL I2C Clock Pin
SDA I2C Data Pin

Tutorial

Measure the barometric pressure, temperature and altitude in the current environment.

Requirements

Connection Diagram

Connect the module to the DFRduino UNO main board (via the I2C interface) as shown in the figure below.

Connection

Sample Code

Copy the following code to Arduino IDE and burn it to DFRduino UNO.

Note: Altitude is calculated from air pressure. As air pressure is affected by weather, season, airflow, etc. so altitude data can change.

/*!
 * @file readData.ino
 * @brief This demo is for SEN0516. Run it to get sensor temperature, air pressure and altitude.
 * @copyright  Copyright (c) 2021 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @license The MIT License (MIT)
 * @author [TangJie](jie.tang@dfrobot.com)
 * @version V1.0
 * @date 2021-11-05
 * @url https://github.com/DFRobot/DFRobot_ICP10111
 */

#include <DFRobot_ICP10111.h>

DFRobot_ICP10111 icp;

void setup(void)
{
    Serial.begin(115200);
    while(icp.begin() != 0){
      Serial.println("Failed to initialize the sensor");
      }
     Serial.println("Success to initialize the sensor");
     /**
      * @brief Set work mode
      * |------------------|-----------|-------------------|----------------------|
      * |       api        |   mode    |Conversion Time(ms)|Pressure RMS Noise(Pa)|
      * |icp.eLowPower     |  Low Power   |      1.8          |        3.2           |
      * |icp.eNormal       |  Normal      |      6.3          |        1.6           |
      * |icp.eLowNoise     |  Low Noise   |      23.8         |        0.8           |
      * |icp.eUltraLowNoise|  Ultra-low Noise |      94.5         |        0.4           |
      */
     icp.setWorkPattern(icp.eNormal);
}

void loop(void)
{
  Serial.println("------------------------------");
  Serial.print("Read air pressure:");
  Serial.print(icp.getAirPressure());
  Serial.println("Pa");
  Serial.print("Read temperature:");
  Serial.print(icp.getTemperature());
  Serial.println("℃");
  Serial.print("Read altitude:");
  Serial.print(icp.getElevation());
  Serial.println("m");
  delay(1000);
}

Expected Results

Open the serial monitor and you will see the barometric pressure, temperature, and altitude of the current environment.

FAQ

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

More Documents