Como usar o sensor de pressão barométrica BMP180 com Arduino

How to Use the BMP180 Barometric Pressure Sensor with Arduino

O BMP180 é um sensor de pressão barométrica e temperatura de alta precisão que pode ser facilmente interface com o Arduino usando o protocolo I2C. É amplamente utilizado em monitoramento climático, medições de altitude e aplicações de IoT. Este tutorial o guiará através da conexão e do uso do BMP180 com o Arduino.


O que você precisará

  1. Módulo do sensor BMP180
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Fios de pão e jumper
  4. Um computador com o Arduino IDE instalado

Etapa 1: Compreendendo o BMP180

O BMP180 mede pressão e temperatura barométrica e pode calcular a altitude com base nas leituras de pressão. Ele se comunica com o Arduino usando o protocolo I2C.

Pinagem BMP180

Alfinete Função
Vin Fonte de alimentação (3,3V/5V)
Gnd Chão
SDA I2C Linha de dados
SCL I2C Linha do relógio

Etapa 2: Fiação do BMP180 para Arduino

Veja como conectar o BMP180 a um Arduino Uno:

Pino BMP180 Pino Arduino
Vin 5V
Gnd Gnd
SDA A4
SCL A5

Observação: Para outras placas do Arduino, verifique os pinos I2C na documentação do seu quadro (por exemplo, o Mega usa os pinos 20 e 21 para SDA e SCL).


Etapa 3: Instale a biblioteca necessária

A biblioteca "Adafruit BMP085 Unified" pode ser usada para o BMP180, pois é totalmente compatível.

Etapas para instalar a biblioteca:

  1. Abra o Arduino IDE.
  2. Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
  3. Pesquise "Adafruit BMP085 Unified" e clique Instalar.

Etapa 4: Faça o upload do código

Aqui está um exemplo de esboço para ler temperatura, pressão e calcular a altitude:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>

Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);

void setup() {
  Serial.begin(9600);
  Serial.println("BMP180 Sensor Test");

  if (!bmp.begin()) {
    Serial.print("Could not find a valid BMP180 sensor, check wiring!");
    while (1);
  }
}

void loop() {
  sensors_event_t event;
  bmp.getEvent(&event);

  if (event.pressure) {
    // Display pressure
    Serial.print("Pressure: ");
    Serial.print(event.pressure);
    Serial.println(" hPa");

    // Display temperature
    float temperature;
    bmp.getTemperature(&temperature);
    Serial.print("Temperature: ");
    Serial.print(temperature);
    Serial.println(" °C");

    // Calculate altitude
    float seaLevelPressure = 1013.25; // hPa
    Serial.print("Altitude: ");
    Serial.print(bmp.pressureToAltitude(seaLevelPressure, event.pressure));
    Serial.println(" m");
    Serial.println();
  } else {
    Serial.println("Sensor error!");
  }

  delay(2000); // Wait 2 seconds before the next reading
}

Etapa 5: teste a configuração

  1. Conecte o Arduino ao seu computador via USB.
  2. Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
  3. Faça o upload do código para o Arduino clicando Carregar.
  4. Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como 9600.
  5. Observe as leituras de pressão, temperatura e altitude exibidas no monitor serial.

Aplicações do BMP180

  1. Sistemas de monitoramento climático
  2. Medição de altitude em drones e aviação
  3. IoT Monitoramento ambiental
  4. Registro de dados de pressão barométrica

Solução de problemas

  • Nenhuma resposta do sensor: Verifique a fiação e verifique se os pinos I2C corretos são usados.
  • Leituras incorretas: Verifique se o sensor não está exposto a condições ambientais extremas.
  • Erros da biblioteca: Verifique se a biblioteca "Adafruit BMP085 Unified" está instalada corretamente.

Conclusão

Você interfigurou com sucesso o sensor de pressão barométrica BMP180 com o Arduino. Esse sensor versátil é ideal para projetos que exigem medições precisas de pressão e temperatura. Experimente mais, integrando -o com plataformas de registradores, displays ou IoT de dados!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.