Página principal

Arduino
Barómetro - Termómetro
GY-68    BMP-180

Parte 1


En este montaje utilizo el módulo GY-68  que está formado por el chip BMP-180 y el regulador de 3.3V para alimentar el chip.


GY-68
 Esquema del modulo GY-68 (BMP180 y regulador de 3.3V)
Existen otros módulos que llevan el BMP180 y no llevan regulador, por lo cual lo debemos alimentar a 3.3V. En este caso el módulo GY-68 lo podemos alimentar a 5V.

El BMP180 está fabricado por Bosch y en  su hoja de características explica lo siguiente:

3.2 General function and application schematics
The BMP180 consists of a piezo-resistive sensor, an analog to digital converter and a control unit
with E 2 PROM and a serial I 2 C interface. The BMP180 delivers the uncompensated value of pressure
and temperature. The E 2 PROM has stored 176 bit of individual calibration data. This is used to
compensate offset, temperature dependence and other parameters of the sensor.
    -UP = pressure data (16 to 19 bit)
    -UT = temperature data (16 bit)

Pressure range:  
     300 ... 1100hPa (+9000m ... -500m relating to sea level)
Storage temperature
    -40 +85 °C
Supply voltage:
    1.8 ... 3.6V (V DD )
    1.62V ... 3.6V (V DDIO )


De lo que podemos entender que tiene un sensor de presión  que mide presiones entre 300 y 1100 hPa.
Además tenemos un sensor de temperatura que puede medir entre -40 y +85 ºC.
Todo esto alimentado por una tensión entre 1.8 ... 3.6V.
El consumo es entre 3uA y 1mA dependiendo del modo en que trabaje.

En este montaje montaremos el arduino  junto con el GY-68, y visualizaremos los datos en un LCD Nokia 3310 además de por el terminal serie.


Esquema del circuito.

Montaje de circuito.
Montaje de circuito.

Como vemos el esquema está realizado en arduino uno y el montaje en arduino nano, se ha hecho por lo fácil que resulta montarlo con un arduino nano, pero la representación en esquema es mejor en arduino uno.
La alimentación del LCD se hace a 5V, aunque funciona también a 5V, pero no he querido forzar el LCD.
Todo el conjunto funciona también alimentado con 3.3V , pero en este caso conviene alimentar el LCD directamente a 3.3V.

Para el programa en arduino he utilizado la librería SFE_BMP180   https://github.com/LowPowerLab/SFE_BMP180 que ahorra considerablemente la programación del BMP180. En dicha librería hay dos ejemplos, uno de ellos he utilizado para mi programa , modificándolo a mi gusto.
He añadido al programa las rutinas para controlar el LCD Nokia 3310 donde se representan las diferentes medidas.
Para poder medir el cambio altitud, debemos introducir la altura donde se encuentra el circuito en ese momento.
En el programa se introduce en la línea:
// altura en Palencia
#define ALTURA 790

Cuando se inicia el programa se toma la presión de referencia a esa altura. Entonces cualquier variación de dicha presión la interpreta como variación de altura.
Debemos tener en cuenta que la presión varía en función del tiempo atmosférico, por lo cual no serviría la altitud si no se reinicia el programa para tomar la presión de referencia.
La prueba que he realizado para comprobar de que funciona la detección del cambio de altitud la he realizado en un ascensor, donde lo he verificado perfectamente como cambiaba. Desde la planta baja que me medía 755m hasta la planta 12 que me medía 790m de referencia.
Si por ejemplo no hubiese apagado el circuito y hubiese cambiado las condiciones atmosférica, nos hubiéramos dado cuenta que se subía o bajaba de altitud sin habernos movido.

En esta primera parte vemos como funciona el chip BMP180, en un próximo montaje quiero realizar un montaje que prediga el tiempo atmosférico por cambio de presión, además de un medidor de temperatura.

PROGRAMA


Saludos.
Juan Galaz

Bibliografía:

http://msrobotics.net/index.php/laboratorio-ard/110-sensor-de-presion-atmosferica-con-arduino-y-gy-68-bmp180
https://www.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf