FAVORITAR
FecharPlease loginn

Projeto | Monitoramento da Pressão Atmosférica Com Sensor BMP180

Introdução

Coletar e interpretar dados ambientais com precisão desempenha um papel fundamental em uma variedade de aplicações. Entre esses dados, a pressão atmosférica e a altitude têm um papel de destaque, influenciando desde a previsão do tempo até a navegação de dispositivos autônomos. 

Nesse contexto, desenvolveremos um projeto que utiliza o sensor BMP180 de pressão e altitude para conhecer como é feita a coleta desses dados na prática.

Medir Pressão Atmosférica

Sensor BMP180 

O barômetro BMP180 é um sensor capaz de medir a pressão atmosférica e a temperatura do ambiente, além de permitir determinar a altitude e realizar previsões do tempo. O componente possui uma faixa de medições entre 30.000 e 110.000 Pa, conta com uma precisão absoluta de 2,5 hPa e uma medição de temperatura na faixa entre -45ºC e 85ºC, com precisão de ± 2ºC.

O princípio de funcionamento do BMP180 baseia-se na variação da pressão atmosférica à medida que a altitude muda. Ele utiliza um sensor de pressão piezo-resistivo para converter essa variação de pressão em um sinal elétrico, que pode ser então interpretado para determinar tanto a pressão atmosférica quanto a altitude. 

O sensor é muito utilizado em projetos que envolver aperfeiçoamento da navegação GPS, cálculo de posição e detecção de inclinação, pequenas estações meteorológicas, entre

outras.

Montagem da placa

Para esse projeto vamos precisar de:

  • 1 x Raspberry Pi Pico
  • 1 x Protoboard
  • 1 x Cabo micro USB
  • 1 x Sensor de pressão atmosférica – barômetro BMP180
  • Jumpers

Utilizando a protoboard, conecte o pino GND do Raspberry Pi Pico à linha de terra da protoboard usando um jumper a partir do pino 38 da placa Pico. Da mesma forma, alimente a proto conectando o pino VCC do Pico à linha de alimentação da protoboard através de um jumper a partir do pino 36.

Para realizar a montagem correta, confira o mapa de pinos da Pico na Figura 1.

Figura 1 – Raspberry Pi Pico pinout.

O BMP180 possui 4 pinos: VCC, GND, SCL (Serial Clock) e SDA (Dados seriais), em que os dois últimos são utilizados na comunicação I2C. A identificação de cada um deles está impressa na parte inferior do sensor. Assim:

  • Os pinos VCC e GND devem ser conectados ao 3,3 V e GND da protoboard, respectivamente;
  • O pino SCL do sensor BMP180 deve ser conectado ao pino SCL da Raspberry Pi Pico, aqui optamos por utilizar o GP1;
  • O SDA deve ser conectado ao pino SDA da Raspberry Pi Pico, aqui optamos por utilizar o GP0.

Na Figura 2 temos a montagem da protoboard.

Figura 2 – Montagem do projeto no Fritzing
Figura 3 – Montagem do projeto com componentes físicos.

Programa para captar dados

Utilizando o Thonny IDE, vamos iniciar importando as bibliotecas “machine” e “utime”, que nós já conhecemos, para poder acessar os pinos da placa e para adicionar atrasos ao programa. Da biblioteca “machine” utilizaremos apenas “Pin” e “I2C” então não há necessidade de importar a biblioteca completa.

Além delas, vamos importar a biblioteca “bmp180” que permite realizar a leitura do sensor BMP180:

É preciso dar um destaque especial à biblioteca bmp180, isso porque ela não é uma biblioteca do Micropython e para utilizá-la foi preciso pegar o código fonte no github:

micropython-bmp180/bmp180.py at master · micropython-IMU/micropython-bmp180 · GitHub

Com o código-fonte copiado, eu o salvei no Raspberry Pi Pico e criei um novo arquivo para ser o main desse projeto. Conforme mostrado abaixo:

Assim foi possível utilizar a biblioteca que permite lê os dados que o sensor captura.

As primeiras definições do código são para configurar o I2C e o sensor. Começando pela configuração do I2C ao chamar a função precisamos fazer as seguintes definições dos parâmetros:

  • “id” irá identificar o periférico I2C, esse valor pode ser 0 ou 1 e depende da porta/placa específica. A porta utilizada é I2C0, mas se – por exemplo – a conexão fosse feita no GP2 e GP3 o id seria 1;
  • “scl” deve conter o pino conectado ao SCL do sensor. Nesse caso é o GP1;
  • “sda” deve conter o pino conectado ao SDA do sensor. Nesse caso é o GP0;
  • e “freq” deve ser um número inteiro que define a frequência máxima do SCL.

Após isso realizamos a conexão do I2C com a biblioteca do sensor. E definimos a precisão do dado lido pelo sensor (oversample_sett) e a referência da pressão no nível do mar (baseline).:

Com as configurações definidas, podemos criar o ciclo principal do projeto:

1. Chame as funções do sensor para obter temperatura, pressão e altitude;

2. Imprima os valores coletados;

3. Insira um atraso de 5 segundos (ou mais) antes de realizar uma nova coleta de dados.

Abaixo temos o código completo para realizar o teste:

O resultado exibido, de acordo com sua localização, será algo semelhante a isto:

Conclusão

O sensor BMP180 e o protocolo I2C representam uma combinação poderosa no mundo da eletrônica e da medição de dados ambientais. O BMP180 desempenha um papel fundamental em diversas aplicações, desde a meteorologia até a navegação por satélite e sistemas autônomos. 

Em adição, o protocolo I2C oferece uma solução simples para conectar dispositivos eletrônicos, com apenas duas linhas de comunicação, SDA e SCL, o I2C simplifica a interconexão de dispositivos, economizando recursos e agilizando a implementação de sistemas complexos.

Outros artigos da série

<< Projeto | Monitorando temperatura e umidade com o sensor DHT11Projeto | Monitoramento da Qualidade do Ar com Sensor MQ135 >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Home » Maker » Projeto | Monitoramento da Pressão Atmosférica Com Sensor BMP180

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Comentários:
Notificações
Notificar
guest

0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:
Nenhum resultado encontrado.