//#include <Wire.h>
//#include <Arduino.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_BMP085.h>
#include <Adafruit_Sensor.h>
const int LED_PIN = 13;
sensors_event_t a, g, temp;
Adafruit_BMP085 bmp;
LiquidCrystal_I2C lcd(0x27, 20, 4); // Set the LCD I2C address and size (20x4)
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("BMP180 not found!");
while (1);
}
lcd.init();
lcd.backlight(); // Turn on the backlight
pinMode(LED_PIN, OUTPUT);
}
void loop() {
char cTempBuff[21];
char cPTempBuff[21];
char fTempBuff[21];
char fPTempBuff[21];
char pressBuff[21];
char altBuff[21];
char fCTemp[8];
char fFTemp[8];
char fPress[8];
char fAlt[8];
// get data
int32_t pressure = bmp.readPressure();
float fPressure = pressure / 100.0;
float altitude = bmp.readAltitude();
float cTemp = bmp.readTemperature();
float fTemp = (cTemp * 9.0 / 5.0) + 32;
// drive alarm
if (cTemp >= 30) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
// format results
dtostrf(cTemp, 5, 1, fCTemp);
snprintf(cTempBuff, 21, "Temperature: %s%cC", fCTemp, char(223));
snprintf(cPTempBuff, 21, "Temperature: %s%cC", fCTemp, char(176));
dtostrf(fTemp, 5, 1, fFTemp);
snprintf(fTempBuff, 21, "Temperature: %s%cF", fFTemp, char(223));
snprintf(fPTempBuff, 21, "Temperature: %s%cF", fFTemp, char(176));
dtostrf(fPressure, 6, 1, fPress);
snprintf(pressBuff, 21, "Pressure: %s hPa ", fPress);
dtostrf(altitude, 6, 1, fAlt);
snprintf(altBuff, 21, "Altitude: %s m", fAlt);
// display data on the LCD
lcd.setCursor(0, 0);
lcd.print(cTempBuff);
lcd.setCursor(0, 1);
lcd.print(fTempBuff);
lcd.setCursor(0, 2);
lcd.print(pressBuff);
lcd.setCursor(0, 3);
lcd.print(altBuff);
// display data on serial monitor
Serial.println(cPTempBuff);
Serial.println(fPTempBuff);
Serial.println(pressBuff);
Serial.println(altBuff);
Serial.println();
delay(2000);
}