Materiales necesarios:

  • Arduino Uno

  • Sensor de temperatura y humedad (DHT11 o DHT22)

  • Sensor de luz (LDR)

  • Pantalla LCD I2C

  • Cables de conexión

  • Protoboard

Conexiones:

  1. Conecta el pin VCC del sensor DHT11/DHT22 al pin 5V del Arduino.

  2. Conecta el pin GND del sensor DHT11/DHT22 al pin GND del Arduino.

  3. Conecta el pin de señal del sensor DHT11/DHT22 al pin digital 2 del Arduino.

  4. Conecta un extremo del LDR al pin 5V del Arduino.

  5. Conecta el otro extremo del LDR al pin A0 del Arduino.

  6. Conecta una resistencia de 10k ohmios entre el pin A0 y el pin GND del Arduino.

  7. Conecta los pines SDA y SCL de la pantalla LCD I2C a los pines A4 y A5 del Arduino, respectivamente.

  8. Conecta el pin VCC de la pantalla LCD I2C al pin 5V del Arduino.

  9. Conecta el pin GND de la pantalla LCD I2C al pin GND del Arduino.

---------------------------------------------------------------------------------------------------------------------------

 #include <Wire.h>

#include <LiquidCrystal_I2C.h>
#include <DHT.h>

#define DHTPIN 2 // Pin del sensor DHT
#define DHTTYPE DHT11 // Tipo de sensor DHT (DHT11 o DHT22)
#define LDRPIN A0 // Pin del LDR

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C de la pantalla LCD

void setup() {
  lcd.init(); // Inicia la pantalla LCD
  lcd.backlight(); // Enciende la luz de fondo de la pantalla LCD
  dht.begin(); // Inicia el sensor DHT
  Serial.begin(9600); // Inicia la comunicación serial
}

void loop() {
  float humidity = dht.readHumidity(); // Lee la humedad
  float temperature = dht.readTemperature(); // Lee la temperatura
  int lightLevel = analogRead(LDRPIN); // Lee el nivel de luz

  // Imprime los valores en el monitor serial
  Serial.print("Humedad: ");
  Serial.print(humidity);
  Serial.print(" %\t");
  Serial.print("Temperatura: ");
  Serial.print(temperature);
  Serial.print(" *C\t");
  Serial.print("Luz: ");
  Serial.println(lightLevel);

  // Muestra los valores en la pantalla LCD
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print(" C");
  lcd.setCursor(0, 1);
  lcd.print("Hum: ");
  lcd.print(humidity);
  lcd.print(" % Luz: ");
  lcd.print(lightLevel);

  delay(2000); // Espera 2 segundos antes de leer nuevamente
}



Comentarios

Entradas populares de este blog

Arduino sencillo