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_BMP180https://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.