Básico - Projeto 102

Medindo pressão, temperatura e altitude com BMP280 e display OLED

Objetivo

O objetivo deste projeto é mostrar como utilizar o módulo sensor BMP280 (barômetro) junto com o Arduino para medir a temperatura ambiente, a pressão atmosférica e a altitude local em relação ao nível do mar. Os valores aferidos são exibidos em um display OLED.

Módulo Sensor de Pressão e Temperatura BMP280 é um componente eletrônico desenvolvido pela empresa Bosch capaz de medir com precisão a temperatura ambiente e a pressão atmosférica, apesar do seu tamanho reduzido. Por essa característica o módulo BMP280 se tornou bastante comum em dispositivos móveis e portáteis.

O módulo BMP280 funciona com interfaces I2C ou SPI e tensão mínima de 1,7 V a 3,6 V, sendo que o baixo consumo de energia permite o funcionando por longos períodos com alimentação por bateria, e é indicado para projetos como drones, estações meteorológicas, dispositivos com GPS, relógios, etc.

O BMP280 realiza medições de pressão com precisão de ±1 hPa e temperatura com precisão de ±1 °C. Com essa precisão, é possível realizar medições de altitude local aproximada.

Definições

Pressão atmosférica ou pressão barométrica é a força exercida, por unidade de área, pela coluna de ar atmosférico acima de nós. A pressão atmosférica pode ser lida em diversas unidades, sendo as mais comuns o atm (atmosfera) e o pascal (1 atm =101.325 Pa). Portanto, 1 atm = 1.013,25 hPa (hectopascal).

 

A pressão atmosférica varia com a altitude e a temperatura: Quanto maior for a altitude, menor será a pressão atmosférica. Ao nível do mar a pressão atmosférica é igual a 1 atm. Sempre que houver aumento da pressão atmosférica, haverá aumento da temperatura. É justamente por isso que, em maiores altitudes, a temperatura tende a ser menor do que ao nível do mar. Leia mais sobre pressão atmosférica: Wikipédia

Referências

Projeto 90 - Como controlar um Display OLED SSD1306 com Arduino - biblioteca Adafruit

Aplicação

Para fins didáticos e projetos que necessitem aferir pressão atmosférica e temperatura ambiente. Também são utilizados em altímetros e variômetros em drones ou em outros aeromodelos.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 400 pontos

Jumpers Kit cabos ligação macho / macho 1  
Módulo Sensor de Pressão

Módulo Sensor de Pressão BMP280

1   Especificações:
– BMP280 (datasheet)
– Tensão de operação: 1.7V a 3.6V
– Consumo de corrente: 2.7µA
– Interfaces: I2C e SPI
– Faixa de medição pressão: 300 – 1100hPa (equiv. +9000 à -500m acima/abaixo do nível do mar)
– Precisão: ±0.12hPa (equiv. ±1m)
– Faixa de temperatura: -40 à 85 °C
– Precisão temperatura: ±1.0 °C
– Dimensões: 15 x 12 x 2,3mm (sem os pinos)
Display OLED

Display OLED SSD1306

1  Tarzan Componentes Eletrônicos | Shield Arduino| Display Oled 1.3 Polegadas  Branco 125x64 I2c - R$ 51,90

– Tensão de operação: 3,3-5V
– Controlador: SSD1306
– Cor: Azul e Amarelo
– Comunicação: I2C
– Resolução: 128×64
– Dimensões: 30 x 27mm

Você também poderá utilizar na cor azul, branco ou colorido.

A comunicação poderá ser I2C ou SPI

Push Button Push button 6X6X5mm 2    
Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Observação: Você poderá adquirir os componentes acima na loja: Baú da Eletrônica.

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.

ATENÇÃO: O módulo BMP280 deverá estar conectado no Arduino na fonte de energia 3.3V (Vcc). Tensões muito maiores podem queimar o componente. É importante lembrar que o display OLED SSD1306 opera perfeitamente na tensão de 3.3V(vcc) também. Mas se desejar, você poderá conectar o display diretamente na saída de Vcc de 5V do Arduino.


Atenção

1. Veja na imagem abaixo a "pinagem" do módulo BMP280, que funciona com interfaces SPI ou I2C.

1.1. Observe que temos os pinos de alimentação Vcc 3.3V e GND, e os pinos de interface: SCL(Clock) e SDA (Data), CSB (Chip Select) e SDO (Serial Data OUT).

1.1.1. Para a interface SPI, usamos os pinos SCL, SDA, CSB e SDO.

1.1.2. Para a interface I2C, vamos usar os pinos SCL, SDA e SDO.

 

2. No nosso exemplo usamos o protocolo I2C para fazer a montagem do módulo BMP280 no no circuito. Veja abaixo as conexões:

2.1. Para a montagem do módulo bmp280 no Arduino via protocolo I2C, faça a conexão dos pinos SCL e SDA com o Arduino da seguinte forma:

MICROCONTROLADOR SCL SDA
Arduino Uno A5 A4
Arduino Nano A5 A4
Arduino Mega 21 20
Leonardo/Micro 3 2

2.2. O pino SDO é usado para seleção do endereço I2C: 0x76 com o pino em estado baixo (LOW), e 0x77 para o estado alto (HIGH). No nosso projeto, vamos usar o endereço 0X77, portanto o pino SDO deve estar conectado no Vcc. Veja a imagem abaixo:

 

3. Para a montagem do display OLED SSD1306 via protocolo I2C, verifique a "pinagem" do módulo com comunicação I2C:

 

Observações:

a. Em algumas marcas os pino Vcc e GND estão invertidos. Portanto, preste muita atenção antes de fazer a conexão com o Arduino.

b. Caso o utilize um display OLED por comunicação via serial SPI veja como é feita a conexão no Projeto 90 - Como controlar um Display OLED SSD1306 com Arduino - biblioteca Adafruit.

3.1. Faça a conexão dos pinos SCL e SDA com o Arduino da seguinte forma:

MICROCONTROLADOR SCL SDA
Arduino Uno A5 A4
Arduino Nano A5 A4
Arduino Mega 21 20
Leonardo/Micro 3 2

4. A montagem do nosso exemplo foi realizada em um protoboard com 400 pontos e com um display OLED SSD1306 com comunicação via protocolo I2C. Verifique sempre se o seu protoboard possui linhas de alimentação contínuas ou separadas - saiba mais em protoboard.

Incluindo a biblioteca Adafruit BMP280

Para utilizarmos o módulo BMP280 incluiremos a biblioteca Adafruit BMP280. Esta biblioteca foi escrita para obter, calcular e resolver os dados captados pelos sensores internos do componente, gerando os resultados da pressão atmosférica, altitude local e temperatura ambiente.

Instalação das biblioteca

1. No IDE do Arduino, acesse a aba Sketch, selecione [Incluir Biblioteca] e depois [Gerenciar Bibliotecas...].