//
you're reading...
Arduino

Arduino: Projecto 28 – Estação Meteorológica com o BMP280

Este projecto vai explicar como podes utilizar o sensor barométrico BMP280. Com ele podes obter as seguintes informações para a tua estação meteorológica.

  • temperatura
  • pressão atmosférica
  • altitude (é necessário introduzir no código a pressão diária ao nível do mar, podes obter essa informação em https://www.wunderground.com através da localidade onde se encontra o sensor)

Neste projecto os dados vão ser apresentados através do Serial Monitor. Em projectos futuros iremos utilizar um LCD e um TFT Monitor para fazermos a leitura dos mesmos.

BIBLIOTECA ADAFRUIT_SENSOR
Antes de mais, deves instalar a biblioteca adafruit_sensor no teu IDE para que o programa funcione devidamente.
Vais a https://github.com/adafruit/Adafruit_Sensor e faz o download do ficheiro Adafruit_Sensor-master.zip.
Extrai o conteúdo (pasta Adafruit_Sensor-master) e coloca-o  na pasta de instalação do arduino \Arduino\libraries

 

BIBLIOTECA ADAFRUIT_BMP280
Deves também instalar a biblioteca adafruit-bmp280 no teu IDE para que possas utilizar o sensor.

Vais a https://learn.adafruit.com/adafruit-bmp280-barometric-pressure-plus-temperature-sensor-breakout/wiring-and-test e faz o download do ficheiro Adafruit_BMP280_Library-master.zip.

Extrai o conteúdo (pasta Adafruit_BMP280_Library-master), altera o nome da pasta para Adafruit_BMP280 e coloca-o  na pasta de instalação do arduino \Arduino\libraries

 

MATERIAL

  • arduino uno
  • breadboard
  • jumpers
  • Sensor barométrico BMP280 (adquirido aqui)
    • Datasheet do sensor aqui.
  • portátil
  • cabo usb (ligação do arduino ao portátil)
  • multímetro (opcional)

 

LIGAÇÕES

O sensor pode ser ligado ao arduino por I2C ou SPI. Neste caso foi ligado por SPI.
Atenção!! Este sensor deve estar ligado aos 3.3V do arduino!!!

BMP280

 

CÓDIGO

Para fazeres o upload do código para o arduino vai a Ficheiro>Exemplos>Adafruit BMP280 Library> bmp280test
A seguir clica em CTRL+U ou apenas na seta para a direita (canto superior esquerdo).
Para verificares se está a funcionar clica em CTRL+SHIFT+M ou apenas em Monitor Série (canto superior direito).

/***************************************************************************
  This is a library for the BMP280 humidity, temperature & pressure sensor

  Designed specifically to work with the Adafruit BMEP280 Breakout 
  ----> http://www.adafruit.com/products/2651

  These sensors use I2C or SPI to communicate, 2 or 4 pins are required 
  to interface.

  Adafruit invests time and resources providing this open source code,
  please support Adafruit andopen-source hardware by purchasing products
  from Adafruit!

  Written by Limor Fried & Kevin Townsend for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ***************************************************************************/

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11 
#define BMP_CS 10

//Adafruit_BMP280 bme; // I2C
//Adafruit_BMP280 bme(BMP_CS); // hardware SPI
Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);

void setup() {
  Serial.begin(9600);
  Serial.println(F("BMP280 test"));
  
  if (!bme.begin()) {  
    Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
    while (1);
  }
}

void loop() {
    Serial.print(F("Temperature = "));
    Serial.print(bme.readTemperature());
    Serial.println(" *C");
    
    Serial.print(F("Pressure = "));
    Serial.print(bme.readPressure());
    Serial.println(" Pa");

    Serial.print(F("Approx altitude = "));
    Serial.print(bme.readAltitude(1019)); // this should be adjusted to your local forcase
    Serial.println(" m");
    
    Serial.println();
    delay(2000);
}

 

VIDEO

Discussão

6 thoughts on “Arduino: Projecto 28 – Estação Meteorológica com o BMP280

  1. No caso de uma placa Arduino Mega os pinos seriam os mesmos?

    Posted by Marcos A. B. de Goes | 02/07/2016, 20:37
  2. no mega 2560 tens:
    – SCK – 52
    – MISO – 50
    – MOSI – 51
    – CS – 53

    Posted by Rafael Nogueira | 02/07/2016, 22:04
  3. se eu fosse escrever o mesmo código para 2 sensores trabalhando junto, como faria?

    Posted by Douglas Soares | 26/01/2017, 0:40
  4. Boas. Tenho tudo como está, já verifiquei os fios e continua a dar a mesma mensagem de erro “BMP280 test
    Could not find a valid BMP280 sensor, check wiring!”. Estou convencido de que a razão é por ser um sensor chinês, se fosse da adafruit, secalhar passava. abrs

    Posted by António | 17/12/2018, 16:25

Deixe um comentário