MPL3115A2 pressure sensor and ESP8266

The MPL3115A2 is a compact, piezoresistive, absolute pressure sensor with an I2C digital interface. MPL3115A2 has a wide operating range of 20 kPa to 110 kPa, a range that covers all surface elevations on earth. The MEMS is temperature compensated utilizing an on-chip temperature sensor. The pressure and temperature data is fed into a high resolution ADC to provide fully compensated and digitized outputs for pressure in Pascals and temperature in °C.

The compensated pressure output can then be converted to altitude, utilizing the formula stated in Section 9.1.3 “Pressure/altitude” provided in meters.The internal processing in MPL3115A2 removes compensation and unit conversion load from the system MCU, simplifying system design






Again we use a library and again its an adafruit one –

#include <Wire.h>
#include <Adafruit_MPL3115A2.h>
// Power by connecting Vin to 3-5V, GND to GND
// Uses I2C - connect SCL to the SCL pin, SDA to SDA pin
// See the Wire tutorial for pinouts for each Arduino
Adafruit_MPL3115A2 baro = Adafruit_MPL3115A2();
void setup() {
  Serial.println("Adafruit_MPL3115A2 test!");
void loop() {
  if (! baro.begin()) {
    Serial.println("Couldnt find sensor");
  float pascals = baro.getPressure();
  // Our weather page presents pressure in Inches (Hg)
  // Use for other units
  Serial.print(pascals/3377); Serial.println(" Inches (Hg)");
  float altm = baro.getAltitude();
  Serial.print(altm); Serial.println(" meters");
  float tempC = baro.getTemperature();
  Serial.print(tempC); Serial.println("*C");



Open the serial monitor – here are my results

29.77 Inches (Hg)
64.81 meters
29.77 Inches (Hg)
64.62 meters
29.77 Inches (Hg)
64.56 meters



MPL3115A2 I2C Intelligent Temperature Pressure Altitude Sensor V2.0 For Arduino

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>