Untitled

 avatar
unknown
plain_text
4 years ago
2.5 kB
4
Indexable

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

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);

Adafruit_BMP280 bmp; // use I2C interface
Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor();
Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor();

void setup() 
{
  Serial.begin(9600);
  Serial.println(F("BMP280 Sensor event test"));

  if (!bmp.begin()) {
    Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
    while (1) delay(10);
  }

  /* Default settings from datasheet. */
  bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,     /* Operating Mode. */
                  Adafruit_BMP280::SAMPLING_X2,     /* Temp. oversampling */
                  Adafruit_BMP280::SAMPLING_X16,    /* Pressure oversampling */
                  Adafruit_BMP280::FILTER_X16,      /* Filtering. */
                  Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */

  bmp_temp->printSensorDetails();

  lcd.init();                     
  lcd.init();
}

void loop() {

  
  sensors_event_t temp_event, pressure_event;
  bmp_temp->getEvent(&temp_event);
  bmp_pressure->getEvent(&pressure_event);
  
  Serial.print(F(" "));
  Serial.print(F("Temperature = "));
  Serial.print(temp_event.temperature);
  Serial.println(" *C");

  Serial.print(F("Pressure = "));
  Serial.print(pressure_event.pressure);
  Serial.println(" hPa");

  Serial.print(F("Approx altitude = "));
  Serial.print(bmp.readAltitude(1019.66)); //The "1019.66" is the pressure(hPa) at sea level in day in your region
  Serial.println(" m");                    //If you don't know it, modify it until you get your current altitude
  
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print(temp_event.temperature);
  lcd.print((char)223); // print ° character
  lcd.print("C|");

  lcd.setCursor(8,0);
  lcd.print(bmp.readAltitude(1019.66)); //The "1019.66" is the pressure(hPa) at sea level in day in your region
  lcd.print("m");

  lcd.setCursor(3,1);
  lcd.print(pressure_event.pressure);
  lcd.print(" hPa");


  Serial.println();
  delay(20000);
  lcd.clear();
  lcd.noBacklight();
  
// Toti pini off
  for(int i = 0; i < 20; i++){
    pinMode(i, OUTPUT);
   }
  

  
//Disable ADC
  ADCSRA &= ~(1 << 7);
  
//Enable SLEEP
  SMCR |= (1<< 2);
  SMCR |= 1;

//BOD Disable
  MCUCR |= (3 << 5);
  MCUCR = (MCUCR & ~(1 << 5)) | (1 << 6);
  __asm__  __volatile__("sleep");



}





  
Editor is loading...