Vous êtes sur la page 1sur 11

Tutorial sensor de presin baromtrica BMP180

1 de 11

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

Tutorial sensor de presin baromtrica BMP180

Posted by

0 Comments

ago 23, 2015

feb 19, 2015

jun 04,
2015

ago 06,
2016

El sensor BMP180 est diseado para leer la presin atmosfrica, que


es la fuerza que ejerce el aire (atmsfera) sobre la superficie de la
tierra. En otras palabras se debe a la columna de aire que esta sobre
determinada rea, por esto, si medimos la presin atmosfrica en
puntos ms altos la presin baja debido a que hay menos cantidad de
aire sobre nosotros. La presin atmosfrica tambin vara con el
clima, principalmente con la temperatura, pues esta hace cambiar la
densidad del aire, que se ve reflejado en un cambio en el peso y por
consiguiente en un cambio de presin.
Entonces, la presin atmosfrica vara con la temperatura y la altitud,
estas dos variables son las ms representativas para el cambio de
presin, por lo que podemos discriminar la humedad y viento que
tambin influyen en la presin.
Lo que mide el sensor BMP180 es la presin absoluta (Baromtrica) y
la temperatura, al sensar la temperatura podemos compensar la
influencia de sta en la presin, y con un valor ms exacto de la
presin podemos calcular la altitud.

jun 15, 2016

Este sensor vine en diversos mdulos que nos ayudan en su


conexin, el que usaremos para este tutorial es el siguiente modulo:

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

2 de 11

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

may 25, 2016

Un pequeo y muy
potente Arduino,...
S/. 20,00 S/. 25,00

Este mdulo tiene un pequeo regulador de voltaje de 3.3V, por lo que


podemos alimentarlo con los 5V de Arduino, las dimensiones del
sensor son pequeos y es Ultra-bajo consumo de energa, pudiendo
utilizar en muchas aplicaciones.

Para este tutorial utilizaremos la librera desarrollada por Sparkfun,


dicha librera lo pueden descargar en:
Es necesario descargar e importar la librera a nuestro IDE de
Arduino, antes de empezar con los ejemplos explicaremos las
funciones que utilizaremos:

Inicializa el sensor BMP180, nos retorna 1 si la inicializacin es


correcta o 0 si ha fallado

Funcin para iniciar una medicin de temperatura y nos retorna el


tiempo en milisegundos que necesitamos esperar antes de
obtener la lectura. Si nos retorna un 0, es porque ha fallado el
inicio de la medicin de temperatura

Obtener la temperatura en la variable T, antes de usar esta


funcin es necesario llamar a la funcin startTemperature() y que
haya transcurrido el tiempo adecuado para la lectura; retorna 1 o
0 si la lectura se ha realizado con xito o no respectivamente
Pantalla Oficial LCD
Touch de 7 pulgadas
03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

3 de 11

S/. 470,00

Soporte para montaje


en superficies
paralelas a las guas
de 8mm dimetro

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

Funcin para iniciar una medicin de presin, hay que indicar la


cantidad de muestras adicionales (de 0 a 3) que el sensor debe
tomar para la lectura de la presin y nos retorna el tiempo en
milisegundos que necesitamos esperar antes de obtener la
lectura. Si nos retorna un 0, es porque ha fallado el inicio de la
medicin de presin

Obtener el valor de la medicin iniciado previamente con


startPressure(); es necesario darle como parmetro la
temperatura T el cual servir para compensar la influencia de la
temperatura en el clculo de la presin, el valor de la presin
absoluta se guarda en la variable P. Retorna 1 o 0 si la lectura se
ha realizado con xito o no respectivamente

S/. 10,00

Calcula la altitud entre el punto donde se ha tomado la lectura de


presin P (en mbar) con respecto a un punto de referencia con
presin Po (en mbar). Nos retorna el valor de la altitud en
metros

S/. 30,00

Esta funcin realiza el clculo inverso a altitude(P, Po) , Dado una


presin P (en mbar) y una altitud A (en metros) calcula la presin
al nivel del mar o punto desde donde se mide la altura. Retorna el
valor de la presin en mbar

Explicado esto, empecemos a realizar nuestros ejemplos:

Rodamiento polimrico
para gua de 8mm de
dimetro

Las conexiones son como cualquier conexin I2C:


Adaptador
LCD a I2C

Arduino Uno,
Nano, Mini.

Arduino
Mega , DUE

Arduino
Leonardo

VCC

5V

5V

5V

GND

GND

GND

GND

SCL

A5

21

SDA

A4

20

S/. 15,00

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

4 de 11

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

Cristal oscilador de
16 MHz de
frecuencia. Utilizado
en Arduino Uno,...
S/. 2,00

Ideal para unir los


extremos de nuestra
correa GT2.
S/. 10,00

Realizar esta tarea es sumamente sencillo, basta con iniciar la lectura,


esperar el tiempo que dura la lectura y obtener dicho valor, esta se
hace tanto para la temperatura y presin.
A continuacin se muestra el Sketch para realizar esta tarea:

#include <SFE_BMP180.h>
#include <Wire.h>
SFE_BMP180 bmp180;

El mdulo Relay te
permite controlar el
encendido/apagado
de equipos de...

void setup()
{
Serial.begin(9600);
if (bmp180.begin())
Serial.println("BMP180 iniciado correctamenten");
else
{
Serial.println("Error al iniciar el BMP180");
while(1); // bucle infinito
}

S/. 6,00

Sensor capacitivo te
permite detectar
objetos metlicos y
no metlicos...

void loop()
{
char status;
double T,P;
status = bmp180.startTemperature();//Inicio de lectura d
e temperatura
03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

5 de 11

S/. 40,00

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

if (status != 0)
{
delay(status); //Pausa para que finalice la lectura
status = bmp180.getTemperature(T); //Obtener la temper
atura
if (status != 0)
{
status = bmp180.startPressure(3); //Inicio lectura d
e presin
if (status != 0)
{
delay(status);//Pausa para que finalice la lectura
status = bmp180.getPressure(P,T); //Obtenemos la p
resin
if (status != 0)
{
Serial.print("Temperatura: ");
Serial.print(T,2);
Serial.print(" *C , ");
Serial.print("Presion: ");
Serial.print(P,2);
Serial.println(" mb");
}
}
}
}
delay(1000);
}

El resultado que obtenemos por el monitor serial es el siguiente:

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

6 de 11

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

En este caso calcularemos la altitud de nuestra posicin, para esto


necesitamos medir la con el BMP180 la presin y temperatura de
nuestra posicin, adems como dato necesitamos la presin
atmosfrica sobre el nivel del mar.
EL sketch para obtener la altura es el siguiente:
#include <SFE_BMP180.h>
#include <Wire.h>
SFE_BMP180 bmp180;
double PresionNivelMar=1013.25; //presion sobre el nibel d
el mar en mbar
void setup()
{
Serial.begin(9600);
if (bmp180.begin())
Serial.println("BMP180 iniciado correctamenten");
else
{
Serial.println("Error al iniciar el BMP180");
while(1); // bucle infinito
}
}
void loop()
{
char status;
double T,P,A;
status = bmp180.startTemperature();//Inicio de lectura d
e temperatura
if (status != 0)
{
delay(status); //Pausa para que finalice la lectura
status = bmp180.getTemperature(T); //Obtener la temper
atura
if (status != 0)
{
status = bmp180.startPressure(3);//Inicio lectura de
presin
if (status != 0)
{
delay(status);//Pausa para que finalice la lectura
status = bmp180.getPressure(P,T);//Obtenemos la pr
esin

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

if (status != 0)
{
Serial.print("Temperatura: ");
Serial.print(T);
Serial.print(" *C , ");
Serial.print("Presion: ");
Serial.print(P);
Serial.print(" mb , ");
//-------Calculamos la altitud-------A= bmp180.altitude(P,PresionNivelMar);
Serial.print("Altitud: ");
Serial.print(A);
Serial.println(" m s.n.m.");
}
}
}
}
delay(1000);
}

A continuacin se muestra los datos recibidos por el monitor serial.

Para este caso tomaremos un punto inicial, para nuestra altura h=0, y
a partir de aqu, conforme nos desplazamos verticalmente mediremos
la altura, en este caso la precisin es de aproximadamente 0,5m. Para
esto necesitamos medir tanta presin y temperatura en el punto de la
posicin inicial, como en los dems posiciones:
EL sketch para realizar esto es:
#include <SFE_BMP180.h>

7 de 11

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

#include <Wire.h>
SFE_BMP180 bmp180;
double Po; //presion del punto inicial para h=0;
char status;
double T,P,A;
void setup()
{
Serial.begin(9600);
if (bmp180.begin())
{
Serial.println("BMP180 iniciado correctamentenTomando
medidadas del punto de referncia...n");
status = bmp180.startTemperature();//Inicio de lectura
de temperatura
if (status != 0)
{
delay(status); //Pausa para que finalice la lectura
status = bmp180.getTemperature(T);//Obtener la tempe
ratura
if (status != 0)
{
status = bmp180.startPressure(3);//Inicio lectura
de presi
if (status != 0)
{
delay(status);//Pausa para que finalice la lectu
ra
status = bmp180.getPressure(P,T);//Obtenemos la
presin
if (status != 0)
{
Po=P; //Asignamos el valor de presin como pun
to de referencia
Serial.println("Punto de referncia establecido
: h=0");
}
}
}
}
}
else
{
Serial.println("Error al iniciar el BMP180");
while(1); // bucle infinito
}
}

8 de 11

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

9 de 11

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

void loop()
{
status = bmp180.startTemperature();//Inicio de lectura d
e temperatura
if (status != 0)
{
delay(status); //Pausa para que finalice la lectura
status = bmp180.getTemperature(T);//Obtener la tempera
tura
if (status != 0)
{
status = bmp180.startPressure(3);//Inicio lectura de
presin
if (status != 0)
{
delay(status);//Pausa para que finalice la lectura
status = bmp180.getPressure(P,T);//Obtenemos la pr
esin
if (status != 0)
{
//-------Calculamos la altura con respecto al pu
nto de referencia-------A= bmp180.altitude(P,Po);
Serial.print("h=");
Serial.print(A);
Serial.println(" metros");
}
}
}
}
delay(1000);
}

A continuacin mostramos la salida del monitor serial, en la primera


imagen lecturas de nuestro punto de referencia y en la segunda
imagen lecturas despus de subir dos pisos.

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

10 de 11

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

En este caso nuestro punto de referencia es la posicin inicial en


donde encendemos o reiniciamos nuestro Arduino. Pero podemos
trabajarlo como un punto fijo en caso sea necesario, para esto
tenemos que tener como dato la presin de dicho punto.

Tags:
12

Compartir

* Name:
* E-mail:
(Not
Published)
Website:
(Site url
withhttp://)
* Comment:

Submit

Introduzca su direccin de correo electrnico

03/10/2016 18:41

Tutorial sensor de presin baromtrica BMP180

11 de 11

http://www.naylampmechatronics.com/blog/43_Tutorial-sensor-de-pre...

Naylamp Mechatronics,
Trujillo Per
Llmanos ahora:
997646858
Email:

03/10/2016 18:41

Vous aimerez peut-être aussi