Controlando temperatura e pressão com o BMP180 Deixe um comentário

O sensor de temperatura e pressão BMP180 é o sucessor do BMP085, e foi desenvolvido para ser um sensor ainda mais compacto e econômico em termos de energia (por volta de 3 µA). Devemos destacar que esse sensor é totalmente compatível com o BMP085, tanto em termos de software como em termos de firmware e interface.

Sensor de temperatura e pressão BMP180

Apesar de também medir a temperatura, ele foi desenvolvido com o objetivo de medir a pressão atmosférica, e com base nesses dados podemos determinar a altitude e realizar previsões do tempo com grande precisão. graças ao baixíssimo consumo de energia, o CI BMP180 (datasheet) é indicado para utilização em equipamentos compactos como GPS, smartphones, tablets e equipamentos esportivos.

No Arduino, também temos esse conceito de compactação, com o CI instalado em uma placa de 12 x 10 mm. Ele funciona com alimentação de 1,8 à 3.6V, e possui um regulador de tensão embutido que permite que você o conecte normalmente às placas Arduino com nível de sinal de 5V, como o Arduino Uno.

A conexão ao Arduino utiliza a interface I2C, por meio dos pinos analógicos 4 (SDA) e 5 (SCL). No módulo temos somente 4 pinos : Vin (1,8 à 3.6V), GND, SCL e SDA :

Módulo BMP180 - Detalhes

 

Ligação do BMP180 ao Arduino

A ligação do sensor ao Arduino é muito simples, e vamos utilizá-lo em conjunto com um Display LCD 16×2 para mostrar as informações de temperatura, pressão e altitude. O potenciômetro utilizado no circuito é de 10 K, e serve para ajuste de contraste.

Atenção para a alimentação do módulo, que como comentamos anteriormente, vai de 1,8 à 3.6V, e no nosso exemplo vamos conectar o Vin do módulo ao pino 3.3V do Arduino.

Circuito Arduino - BMP180

 

Biblioteca e Programa

Por ser totalmente compatível com o BMP085, podemos inclusive utilizar a mesma biblioteca, encontrada neste link. Faça o download, descompacte o arquivo e coloque a pasta com a biblioteca dentro da pasta LIBRARIES da IDE do seu Arduino.

O programa apresenta na tela as informações de temperatura, na primeira linha, e vai alternando as informações de pressão (em Pa) e altitude (em metros) na segunda linha, atualizando as informações a cada 3 segundos.

// Programa : Sensor de temperatura e pressao BMP180
// Autor : FILIPEFLOP

#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12,11, 5, 4, 3, 2);

Adafruit_BMP085 bmp180;

int mostrador = 0;
  
void setup() 
{
  Serial.begin(9600);
  lcd.begin(16,2);
  if (!bmp180.begin()) 
  {
    Serial.println("Sensor nao encontrado !!");
    while (1) {}
  }
}
  
void loop() 
{   
   lcd.setCursor(0, 0);
   lcd.print("Temp. :  ");
   Serial.print("Temperatura : ");
   if ( bmp180.readTemperature() < 10)
   {
     lcd.print(" "); 
     lcd.print(bmp180.readTemperature());
     Serial.print(bmp180.readTemperature());
     Serial.println(" C");
   }
   else
   {
     lcd.print(bmp180.readTemperature(),1);
     Serial.print(bmp180.readTemperature(),1);
     Serial.println(" C");
   }
   lcd.print(" ");
   lcd.print((char)223); 
   lcd.print("C   ");
      
   if (mostrador == 0)
   {
     lcd.setCursor(0, 1);
     lcd.print("                ");
     lcd.setCursor(0, 1);
     lcd.print("Altit.: ");
     Serial.print("Altitude : ");
     lcd.print(bmp180.readAltitude());
     Serial.print(bmp180.readAltitude());
     Serial.println(" m");
     lcd.print(" m");  
    }
   if (mostrador == 1)
   {
     lcd.setCursor(0, 1);
     lcd.print("                ");
     lcd.setCursor(0, 1);
     lcd.print("Press.: ");
     Serial.print("Pressao : ");
     lcd.print(bmp180.readPressure());  
     Serial.print(bmp180.readPressure());  
     Serial.println(" Pa");
     lcd.print(" Pa");
   }
   
   delay(3000);
   mostrador = !mostrador;
}

Essas informações também são mostradas no Serial Monitor :

BMP180 - Serial Monitor

Abaixo, foto do circuito em funcionamento :

Este foi mais um conteúdo que preparamos com bastante cuidado para você.  Gostou? Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

Faça seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *