#include <SoftWire.h>
#include <Adafruit_BMP085.h>
#include <DHT.h>
#include <DHT_U.h>
#include <LiquidCrystal.h>

// Definición de pines
#define SENSOR 2 // Pin DATA de DHT22 a pin digital 2
#define BMP180_SDA A4 // Pin SDA del BMP180
#define BMP180_SCL A3 // Pin SCL del BMP180

// Objetos para los sensores
DHT dht(SENSOR, DHT22);
SoftWire myWire(BMP180_SDA, BMP180_SCL);
Adafruit_BMP085 bmp;

// Pines LCD
#define RS 12 // Pin de selección de registro
#define EN 9  // Pin de habilitación
#define D4 5  // Pin de datos 4
#define D5 6  // Pin de datos 5
#define D6 7  // Pin de datos 6
#define D7 8  // Pin de datos 7

// Objeto para la pantalla LCD
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);

void setup() {
  Serial.begin(9600); // Inicialización del monitor serial
  dht.begin(); // Inicialización del sensor DHT22
  lcd.begin(16, 2); // Inicializa la pantalla LCD

  // Inicialización del SoftWire
  myWire.begin();
  bmp.begin(&myWire); // Inicialización del BMP180 usando SoftWire
}

void loop() {
  // Lectura del DHT22
  float temperatura_dht = dht.readTemperature(); // Obtención de valor de temperatura
  float humedad = dht.readHumidity(); // Obtención de valor de humedad

  // Lectura del BMP180
  float temperatura_bmp = bmp.readTemperature();
  float presion = bmp.readPressure() / 100.0F; // Convertir a hPa

  // Imprime en la pantalla LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp DHT: ");
  lcd.print(temperatura_dht);
  lcd.print("C");

  lcd.setCursor(0, 1);
  lcd.print("Humedad: ");
  lcd.print(humedad);
  lcd.print("%");

  delay(3000); // Mostrar los datos del DHT22 por 3 segundos

  lcd.clear();
 

  lcd.setCursor(0, 0);
  lcd.print("Presion: ");
  lcd.print(presion);
  lcd.print("hPa");

  // Imprime en el monitor serial
  Serial.print("Temp DHT22: ");
  Serial.print(temperatura_dht);
  Serial.print(" Humedad: ");
  Serial.println(humedad);

  Serial.print("Temp BMP180: ");
  Serial.print(temperatura_bmp);
  Serial.print(" Presion: ");
  Serial.println(presion);

  delay(3000); // Mostrar los datos del BMP180 por 3 segundos
}
$abcdeabcde151015202530fghijfghij
BMP180Breakout