Introdução
A medição de grandezas como temperatura e pressão atmosférica está presente em diversos projetos eletrônicos, desde estações meteorológicas até drones, altímetros e sistemas de monitoramento ambiental. Com o auxílio de sensores digitais, é possível obter essas informações de forma prática e com boa precisão, tornando o desenvolvimento desses projetos muito mais simples.
Olá meu nome é Iago, e neste artigo, você aprenderá a utilizar o BMP180 em conjunto com um Arduino Uno e um display OLED SSD1306 para criar um monitor capaz de exibir, em tempo real, os valores de pressão atmosférica, temperatura e altitude aproximada. Além da montagem e da programação, entenderemos os conceitos básicos por trás dessas medições, permitindo que você compreenda o funcionamento do projeto e não apenas reproduza o circuito.
Ao final deste tutorial, você terá um projeto funcional e uma base para desenvolver aplicações mais completas utilizando sensores ambientais, explorando novos recursos e integrando outros dispositivos ao seu sistema.
Nivel do projeto: básico/iniciante

Entendendo o Projeto
Antes de montar o circuito, é importante entender o papel de cada componente e como eles trabalham juntos.
O BMP180 é um sensor capaz de medir a pressão atmosférica e a temperatura. A pressão atmosférica é a força que o ar exerce sobre a superfície da Terra. Embora não possamos percebê-la no dia a dia, ela está sempre presente e pode variar de acordo com o clima e a altitude do local.

Além dessas medições, o BMP180 também consegue fornecer uma estimativa da altitude. Isso acontece porque, quanto mais alto estamos em relação ao nível do mar, menor tende a ser a pressão do ar. Utilizando essa relação, a biblioteca do sensor calcula automaticamente uma altitude aproximada, que pode ser utilizada em diversos projetos.
Para exibir essas informações, utilizaremos um display OLED SSD1306, que apresenta excelente contraste e baixo consumo de energia. Tanto o display quanto o BMP180 utilizam a comunicação I²C, um protocolo que permite conectar vários dispositivos ao Arduino utilizando apenas dois pinos de comunicação, chamados SDA e SCL. Isso torna a montagem mais simples e organizada, sendo uma ótima escolha para quem está iniciando no mundo da eletrônica.

Com esses conceitos em mente, vamos conhecer os componentes necessários e iniciar a montagem do projeto.
Materiais e Requisitos
Para desenvolver este projeto, você precisará de poucos componentes e de algumas bibliotecas para o Arduino. A montagem é simples e ideal para quem está dando os primeiros passos com sensores e comunicação I²C.
Materiais utilizados:
- 1 Placa Uno R3 + Cabo Usb para Arduino
- 1 Sensor de Pressão Barométrico BMP180
- 1 Display OLED 128×64 0.96″ I2C – Azul – Com os pinos soldados
- 1 Protoboard 400 Pontos
- Jumpers – Macho/Macho
Todos os componentes utilizados neste projeto podem ser encontrados na loja da Eletrogate.
Bibliotecas:
- Adafruit BMP085 Library
- Adafruit GFX Library
- Adafruit SSD1306 Library
Requisitos:
- Um computador com Windows, Linux ou macOS
- Arduino IDE instalada
Montagem
A montagem deste projeto é bastante simples, pois o BMP180 e o display OLED utilizam o protocolo de comunicação I²C, permitindo que ambos compartilhem os mesmos pinos SDA e SCL do Arduino. Dessa forma, o circuito utiliza menos conexões, facilitando a organização na protoboard.
Comece posicionando o Arduino, o BMP180 e o display OLED na protoboard. Em seguida, conecte os pinos de alimentação (VCC e GND) de ambos os módulos ao Arduino. Depois, faça as ligações dos pinos SDA e SCL, responsáveis pela comunicação I²C.
Após conferir todas as conexões, conecte o Arduino ao computador utilizando o cabo USB. Com a montagem concluída, o circuito estará pronto para receber a programação.

Neste projeto, os pinos SDA e SCL do Arduino são distribuídos pela protoboard para que tanto o BMP180 quanto o display OLED compartilhem o mesmo barramento I²C. Essa técnica facilita as conexões, deixa a montagem mais organizada e demonstra uma das principais vantagens desse protocolo: a possibilidade de conectar vários dispositivos utilizando apenas dois pinos de comunicação.
Programação
Com o circuito montado, é hora de programar o Arduino. Antes de enviar o código para a placa, certifique-se de que as bibliotecas Adafruit BMP085, Adafruit GFX e Adafruit SSD1306 estejam instaladas na Arduino IDE. Elas podem ser encontradas no Gerenciador de Bibliotecas, acessado pelo menu Ferramentas > Gerenciar Bibliotecas.
Após instalar as bibliotecas, copie o código abaixo para a IDE do Arduino e envie-o para a placa.
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// ===== OLED =====
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// ===== BMP180 =====
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
Wire.begin();
// OLED (0x3C)
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("Erro OLED");
while (1);
}
// BMP180 (0x77)
if (!bmp.begin()) {
Serial.println("Erro BMP180");
while (1);
}
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.setCursor(9, 25);
display.println("INICIANDO SISTEMA");
display.display();
delay(2000);
}
void loop() {
float temperatura = bmp.readTemperature();
float pressao = bmp.readPressure() / 100.0; // hPa
float altitude = bmp.readAltitude(); // metros em relacao ao nivel do mar
// ===== Serial =====
Serial.print("Temperatura: ");
Serial.print(temperatura, 1);
Serial.println(" C");
Serial.print("Pressao: ");
Serial.print(pressao, 1);
Serial.println(" hPa");
Serial.print("Altitude: ");
Serial.print(altitude, 1);
Serial.println(" m");
Serial.println();
// ===== OLED =====
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Temp: ");
display.print(temperatura, 1);
display.print(" C");
display.setCursor(0, 20);
display.print("Press: ");
display.print(pressao, 1);
display.print(" hPa");
display.setCursor(0, 40);
display.print("Alt: ");
display.print(altitude, 1);
display.print(" m");
display.display();
delay(1000);
}
CÓDIGO FEITO PELO O AUTOR: O código apresentado neste artigo foi desenvolvido pelo autor e está disponível gratuitamente para que você possa estudar, modificar e utilizar em seus próprios projetos. Dar os devidos creditos
Após enviar o código para o Arduino, o display OLED exibirá uma tela de inicialização e, em seguida, passará a mostrar as leituras de temperatura, pressão atmosférica e altitude aproximada, atualizando os valores a cada segundo.
O programa utiliza as bibliotecas Adafruit BMP085, Adafruit GFX e Adafruit SSD1306 para facilitar a comunicação com o sensor BMP180 e o display OLED. Durante a execução, o Arduino realiza as leituras do sensor, envia os dados para o Monitor Serial e também os exibe no display, permitindo acompanhar as medições em tempo real.
Testando o Projeto
Com o código gravado na placa, conecte o Arduino ao computador e aguarde a tela de inicialização ser exibida no display OLED. Após alguns segundos, o sistema começará a mostrar os valores de temperatura, pressão atmosférica e altitude aproximada, atualizando as informações automaticamente a cada segundo.
Além do display, abra o Monitor Serial da Arduino IDE para acompanhar as mesmas leituras em formato de texto. Isso facilita a verificação do funcionamento do sensor e pode ajudar na identificação de possíveis problemas.
Para observar mudanças nas medições, experimente segurar o BMP180 com as mãos por alguns instantes e perceba a variação da temperatura. Se possível, leve o sensor para locais com diferentes altitudes, como um andar superior ou uma escada, e observe como a leitura de altitude pode sofrer pequenas alterações. Lembre-se de que esse valor é uma estimativa e pode variar conforme as condições atmosféricas.
Se tudo der certo, seu projeto funcionará assim:
Caso alguma conexão esteja mal encaixada, ou com mal contato, o sistema irá avisar no serial.
Conclusão
Neste artigo, desenvolvemos um monitor de pressão atmosférica, temperatura e altitude utilizando o sensor BMP180, o Arduino Uno e um display OLED, explorando desde a montagem do circuito até a programação e exibição das leituras em tempo real.
Além de aprender a utilizar a comunicação I²C e as bibliotecas necessárias para o projeto, você conheceu uma forma simples de monitorar variáveis ambientais que podem ser aplicadas em estações meteorológicas, sistemas de monitoramento e diversos outros projetos com Arduino.
Agora que o projeto está funcionando, experimente adicionar novas funcionalidades, como o registro das medições em um cartão SD, o envio dos dados para a internet utilizando um ESP32 ou a integração com outros sensores ambientais.
Agradecimentos
Obrigado por acompanhar este projeto! Espero que este artigo tenha contribuído para o seu aprendizado e servido de inspiração para novos projetos com Arduino.
Em caso de dúvidas, estou à disposição: [email protected]
Bons estudos e até o próximo projeto!
Referências
Código desenvolvido pelo autor e disponibilizado livremente para estudos e adaptações.
- Referências
- Documentação da biblioteca Adafruit BMP085 Library.
- Documentação da biblioteca Adafruit SSD1306.
- Datasheet do sensor BMP180.




