martes, 16 de febrero de 2021

Estación Meteorológica

 Componentes

Sensor Temperatura y Humedad

Sensor IR

Mando IR

Pantalla LCD

Conectores

Arduino UNO 3R

Esquema eléctrico


Funcionamiento 

Al pulsar el botón Power del mando, se activa el sensor de Temperatura, apareciendo por pantalla los datos de Temperatura y Humedad del ambiente.

Cuando pulsamos cualquier otro botón se desactiva el sensor de Temperatura y Humedad apareciendo en pantalla "Apagado".




https://youtu.be/itu1dZ45MGc






Código

#include <DHT.h>

#include <LiquidCrystal.h>

#include <IRremote.h>

int dhtPin=4;

int receiver = 5;



LiquidCrystal lcd (7,8,9,10,11,12);

DHT dht (dhtPin, DHT11);

IRrecv irrecv(receiver);     // create instance of 'irrecv'

decode_results results;


void setup() {

  lcd.begin(16,2);

  Serial.begin(9600);

  dht.begin ();

  delay(500);

  Serial.begin(9600);

  Serial.println("IR Receiver Button Decode"); 

  irrecv.enableIRIn(); 


}


void loop() {

  if (irrecv.decode(&results)){

    Serial.println(results.value, HEX);

  if (results.value==0xFFA25D){

     float humidity= dht.readHumidity();

     float temperature= dht.readTemperature();

     float temperatureF=dht.readTemperature (true);

        if (isnan (humidity) || isnan (temperature)|| isnan (temperatureF)){

           Serial.println ("Error en la lectura del sensor");

           lcd.setCursor (0,0);

           lcd.print ("Error en sensor");

            return;

            }

  float hic =dht.computeHeatIndex (temperature, humidity, false);

  float hif= dht.computeHeatIndex (temperatureF, humidity);

lcd.setCursor (0,0); 

lcd.print ("humedad ");


lcd.setCursor (8,0);

lcd.print (humidity);


lcd.setCursor (14,0);

lcd.print ("%");


lcd.setCursor (0,1);

lcd.print("temperat");


lcd.setCursor (9,1);

lcd.print (temperature);


lcd.setCursor (15,1);

lcd.print ("C");


Serial.print("Humidity: ");

Serial.print(humidity);

Serial.print("%Temperature: ");

Serial.print(temperature);

Serial.print("C");

Serial.print (temperatureF);

Serial.print("F Heat Index: ");

Serial.print (hic);

Serial.print ("C");

Serial.print (hif);

Serial.println ("F");


irrecv.resume(); 

}

else {

lcd.setCursor (0,0);

lcd.print("Apagado"); 

lcd.setCursor (8,0);

lcd.print ("         ");

lcd.setCursor (0,1);

lcd.print ("                ");

irrecv.resume();


}

}

delay (100);

}














No hay comentarios:

Publicar un comentario