Barômetro bmp280
Fontes:
Pagina com código fonte da biblioteca arduino para o Barômetro
https://cdn-shop.adafruit.com/datasheets/BST-BMP280-DS001-11.pdf
Manual do fabricante
O Sensor de Pressão e Temperatura BMP280 possui diversas aplicações e funcionalidades, como medir a pressão atmosférica e a temperatura ambiente.
Este sensor possui interface de comunicação I2C e SPI. Para esta montagem, vamos utilizar as portas com I2C. Neste tutorial, usaremos a placa Arduino UNO com este sensor e o monitor serial para imprimir os valores medidos a cada segundo.
Montagem
Nesta montagem, utilizaremos o protocolo de comunicação I2C. Portanto, para serão necessários apenas quatro pinos.
O terminal Vcc do sensor será ligado à porta 3.3 V do Uno (Atenção, NÃO ligar ao 5 V, pois poderá queimar o sensor); o terminal GND do sensor será ligado a um pino GND do Arduino e, para estabelecer a comunicação do sensor com a placa, utilizaremos as portas A4 e A5, ligadas aos terminais SDA e SCL do sensor, respectivamente.
Incluindo Bibliotecas + Programação
Para dar inicio à programação para o sensor BMP280, primeiro precisamos incluir sua biblioteca. Para isso, abra sua versão do IDE do Arduino e clique em Ferramentas e, logo em seguida, em Gerenciador de Bibliotecas e aguarde abrir o painel.
Após abrir o Gerenciador de bibliotecas, pesquise pela biblioteca BMP280, procure pela “Adafruit BMP280 Library” e clique em instalar.
Após a instalação da biblioteca, o IDE está pronto para dar inicio à programação para o sensor.
Código
//Incluindo Bibliotecas
#include <Wire.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; //I2C
void setup() {
//Iniciando a comunicação serial
Serial.begin(9600);
// Imprimindo Mensagem de teste no Monitor Serial
Serial.println(F("BMP280 teste"));
if (!bmp.begin(0x76)) { /*Definindo o endereço I2C como 0x76. Mudar, se necessário, para (0x77)*/
//Imprime mensagem de erro no caso de endereço invalido ou não localizado. Modifique o valor
Serial.println(F(" Não foi possível encontrar um sensor BMP280 válido, verifique a fiação ou "
"tente outro endereço!"));
while (1) delay(10);
}
}
void loop() {
//Imprimindo os valores de Temperatura
Serial.print(F("Temperatura = "));
Serial.print(bmp.readTemperature());
Serial.println(" *C");
//Imprimindo os valores de Pressão
Serial.print(F("Pressão = "));
Serial.print(bmp.readPressure());
Serial.println(" Pa");
//Imprimindo os valores de Altitude Aproximada
Serial.print(F("Altitude Aprox = "));
Serial.print(bmp.readAltitude(1013.25)); /* Ajustar a pressão de nível do mar de acordo com o local!*/
Serial.println(" m");
//Tempo de espera de 1 segundo
Serial.println();
delay(1000);
}