Medir presión del aire y altitud con Arduino y barómetro BMP180


arduino-barometro-bmp180

¿Qué es un barómetro BMP180?

Un barómetro digital es un dispositivo que mide la presión del aire y que puede usarse como altímetro. Podemos conectar este sensor a un autómata o procesador como Arduino para registrar la medición de la presión del aire o estimar la altitud del sensor respecto al nivel del mar.

La presión barométrica está originada por el peso de la columna del aire de la atmósfera. La presión barométrica depende de diversos factores, especialmente de la temperatura, ya que esta influye en la densidad del aire y, por tanto, en el peso de la columna de aire. Otros factores que afectan a la medición son la humedad y el viento.

Dado que la presión barométrica depende de la altura de la columna de aire ubicada sobre el sensor también puede ser empleada para estimar la altitud a la que está ubicado en sensor respecto al nivel del mar.

Debemos tener en cuenta que la presión barométrica varia continuamente debido a las condiciones climatológicas por lo que no proporciona una medición absoluta de la altitud con precisión. Sin embargo, sí puede ser de utilidad en mediciones diferenciales de altitud, es decir, diferencias de cota en un desplazamiento vertical.

Anuncio:

El BMP180 es un sensor barométrico digital, que incorpora un sensor de temperatura para compensar sus efectos en la medición de la presión barométrica. A su vez, el BMP180 es una versión mejorada del BMP085, siendo ambos modelos compatibles entre si tanto en hardware como software.

El BMP180 es un sensor de alta precisión y baja potencia. El rango de medición es de 300hPa a 1110 hPa, equivalente a una altitud de -500m a 9000m sobre el nivel del mar. La precisión es configurable, desde 0.06hPa (0.5 metros) en el modo de bajo consumo, a 0.02hPa (0.17 metros) en el modo de alta precisión.

La comunicación se realiza a través del bus I2C, por lo que es sencillo obtener los datos medidos. La tensión de alimentación es de bajo voltaje entre 1.8 a 3.6V.

Frecuentemente se encuentran integrados en módulos como la GY-68 que incorporan la electrónica necesaria para conectarla de forma sencilla a un Arduino. En la mayoría de los módulos, esti incluye un regulador de voltaje que permite alimentar directamente a 5V.

El consumo promedio es de 0.1µA en stand-by, y 650µA durante la medición, lo que supone un consumo promedio de 5µA tomando 1 muestra por segundo en precisión estándar. El tiempo de respuesta es de unos 5ms en resolución estándar, y 17ms en alta resolución

Los barómetros BMP180 y BMP085 son ampliamente empleados en aplicaciones meteorológicas, como estaciones registradoras, relojes que muestran el clima, o para predecir cuándo va a llover, entre otras. También pueden ser empleadas en aplicaciones de climatización o control de ventilación.

La capacidad para estimar alturas diferenciales también hace que sean usados en vehículos aéreos como aviones o cuadricopteros, o en aplicaciones que requieran medir la velocidad de desplazamiento vertical, por ejemplo, el ascenso de una máquina o el tiempo de caída de un dispositivo.

Precio

El precio de ambos sensores BMP085 y BMP180 es muy similar. Podemos encontrar cualquier de los dos modelos por 1.70€ en vendedores internacionales de eBay o AliExpress.

arduino-barometro-bmp180-componente

Dado que el sensor BMP180 es la versión mejorada de BMP085, que tienen el mismo precio, y que son totalmente compatibles en hardware y software, lo normal es que siempre elegiremos el BMP180.

Esquema montaje

La conexión es sencilla, simplemente alimentamos el módulo desde Arduino mediante GND y 5V y conectamos el pin SDA y SCL de Arduino con los pines correspondientes del barómetro BMP180.

arduino-barometro-bmp180-esquema

Mientras que la conexión vista desde el lado de Arduino quedaría así.

arduino-barometro-bmp180-conexion

En Arduino Uno, Nano y Mini Pro, SDA es el pin A4 y el SCK el pin A5. Para otros modelos de Arduino consultar el esquema patillaje correspondiente.
Verificar que vuestra placa es compatible con 5V antes de conectarla a Arduino. Si no, tendréis que usar un adaptador de nivel lógico.

Ejemplos de código

Para realizar la lectura del BMP180 usaremos la librería desarrollada por Sparkfun, disponible en este enlace.

La librería proporciona ejemplos de código, que resulta aconsejable revisar. Los siguientes ejemplos, por ejemplo, son modificaciones están basados a partir de los disponibles en la librería.

Obtener los valores de presión y temperatura

El primer ejemplo, obtiene la medición de los valores en bruto (RAW) de presión y temperatura, y los muestra en la pantalla. Estos valores son de utilidad, por ejemplo, para hacer una estación meteorológica.

Estimar la altitud respecto al mar

En el siguiente ejemplo estimamos la altitud respecto del mar. Para ello tomamos como valor de referencia la presión estandard para sobre el nivel del mar.

Estimar la diferencia de altura entre dos puntos

En el último ejemplo, realizamos la medición de la diferencia de altura entre dos puntos. Simplemente medimos la diferencia de cotas entre dos puntos de presión, pero en lugar de tomar la referencia a nivel del mar tomamos como referencia el primer punto.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Anuncio:

Previous ¡Cumplimos 5 años!
Next Brújula magnética con Arduino y compass digital HMC5883
1000
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
newest oldest
Martín

Gran aporte!!

Fabo

Muy bueno! si es posible haganlo con el bmp280. Sldos