BMP180 sensor de temperatura con arduino


En este proyecto aprenderás a obtener la temperatura sensor bmp180 con la placa arduino

oscar Escrito por oscar 18 July 2021 3495 0

Acerca del proyecto

En este proyecto aprenderás a obtener la temperatura sensor bmp180 con la placa arduino, aunque el sensor esta diseñado principalmente para obtener la presión atmosférica, cuenta con esta funcionalidad que nos podrá ser de gran utilidad en algún proyecto en el que se requiera medir esta condición física.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
i2c En este post explicamos el concepto de i2c, ya que la librería para el bmp180 y el mismo sensor usa este tipo de comunicación y es esencial saber como funciona este tipo de comunicación.
BMP180 En este post explicamos los conceptos básicos sobre el sensor bmp180
Librería BMP180 para arduino Esta es la librería con la que vamos a trabajar, en este post explico a detalle cada una de sus funciones.

Sensor BMP180

El BMP180 es el sucesor compatible con funciones del BMP085, una nueva generación de sensores de presión digitales de alta precisión para aplicaciones de consumo.

La electrónica de bajo voltaje y potencia ultra baja del BMP180 está optimizada para su uso en teléfonos móviles, PDA, dispositivos de navegación GPS y equipos para exteriores. Con un ruido de baja altitud de solo 0,25 m en un tiempo de conversión rápido, el BMP180 ofrece un rendimiento superior. La interfaz I2C permite una fácil integración del sistema con un microcontrolador.

Sus características principales son:

  • Sensor: BMP180
  • Voltaje de alimentación : 1,8 V a 3,6 V
  • Corriente: 0.5uA
  • Interfaz I2C
  • Resolución: hasta 0.02hPa ( 17cm )
  • Amplia gama de presión barométrica
  • Incluye sensor de temperatura
  • Peso: 1,18 g
  • Tamaño : 21mm x 18mm
bmp180 pines
bmp180 pines

Materiales

Estas son los principales materiales que vamos a utilizar para este proyecto

Material Cantidad Descripción
Arduino 1 Usamos la placa uno, pero puede ser cualquiera
BMP180 1 Aunque es un sensor de presión barométrica, también la temperatura
Cables de conexión 4 Cables macho a macho

Circuito

El sensor bmp180 tiene la facilidad de conectarse a cualquier microcontrolador ya que cuenta con un puerto de comunicación i2c, esto permite solamente utilizar dos cables de conexión desde el módulo. Para la alimentación de este circuito lo recomendable es utilizar 3.3 aunque en la hoja de datos nos indica que también soporta 5 voltios. A continuación tenemos el plano de la conexión para que se puedan guiar cómo se realiza:

Circuito bmp180 con arduino esquema
Circuito bmp180 con arduino esquema
Circuito bmp180 con arduino foto
Circuito bmp180 con arduino foto

Código

El código es el ejemplo que se toma de la misma librería, lo he modificado un poco para que solo muestre los valores de temperatura. Ademas lo explico paso a paso para que lo podamos entender:

// Paso 1
#include <SFE_BMP180.h>
#include <Wire.h>

// Paso 2
SFE_BMP180 bmp180;

// Paso 3
void setup() {
    Serial.begin(9600);

    // Paso 4
    if (bmp180.begin()) {
        Serial.println("BMP180 iniciado");
    } else {
        Serial.println("Error al iniciar BMP180");
        while(1);
    }
}

void loop() {
    // Paso 5
    char status;
    double temperatura;

    // Paso 6
    //Inicio de lectura de temperatura
    status = bmp180.startTemperature();
    // Paso 7
    if (status != 0) {
        //Pausa para que finalice la lectura
        delay(status);
        // Paso 8
        //Obtener la temperatura
        status = bmp180.getTemperature(temperatura);
        if (status != 0) {
            // Paso 9
            Serial.print("Temperatura: ");
            Serial.print(temperatura,2);
            Serial.println(" *C");    
        }
    }
    delay(1000);
}
  1. Cargamos la librería del bmp180, ademas de la librería i2c wire para que la comunicación de dos hilos pueda funcionar.
  2. Cargamos la librería como objeto en el entorno para poder acceder a su configuración y funciones.
  3. Creamos el setup donde inicilizamos el puerto serial con el fin de poder crear los logs para ver el valor de la temperatura.
  4. Inicializamos la librería y verificamos si esta se cargo correctamente, de haberse presentado un error mostramos un mensaje en la consola.
  5. Creamos las variables que nos servirán para guardar los datos que vamos a obtener.
  6. Con startTemperature iniciamos el proceso de obtener la temperatura, este valor lo guardamos en la variable de estado.
  7. La variable estado permite saber si ya se ha logrado obtener los datos, ya que el sensor demora entre 2 segundos en devolver este valor.
  8. Ahora con la funcióngetTemperature podemos asignarle la temperatura a la variable correspondiente y obtenemos de nuevo el estado para saber si el sensor ha dado un respuesta.
  9. Una vez que tengamos los datos los mostramos por la terminal serial.

Prueba funcionamiento

Por ultimo realizamos la compilación de código y lo cargamos al arduino, abrimos la terminal serial y podremos observar que se muestra el log con la temperatura que esta obteniendo el sensor.

Log de temperatura
Log de temperatura

Comentario

Debe aceptar antes de enviar