#include "DHT.h"
#define DHTPIN A0 // Digital pin connected to the DHT sensor
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
int TemperaturaBaja = 8;
int TemperaturaOk = 9;
int TemperaturaAlta = 10;
int HumedadBaja = 11;
int HumedadOk = 12;
int HumedadAlta = 13;
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
// Configuración LEDs temperatura
pinMode(TemperaturaBaja, OUTPUT);
pinMode(TemperaturaOk, OUTPUT);
pinMode(TemperaturaAlta, OUTPUT);
// Configuración LEDs humedad
pinMode(HumedadBaja, OUTPUT);
pinMode(HumedadOk, OUTPUT);
pinMode(HumedadAlta, OUTPUT);
dht.begin();
}
void loop() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
h = random(0,100);
t = random(10,500)/10.00;
f = (t * 9/5) + 32;
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
// *-**************
// CONDICIONALES PARA SEGUIMIENTO DEL SEMÁFORO
if(t >= 0 & t <= 15){
Serial.print("Temperatura de la Sala está Baja");
digitalWrite(TemperaturaBaja,HIGH);
}
else
{
digitalWrite(TemperaturaBaja,LOW);
}
if(t > 15 & t <= 25){
Serial.print("Temperatura de la Sala está Óptima");
digitalWrite(TemperaturaOk,HIGH);
}
else
{
digitalWrite(TemperaturaOk,LOW);
}
if(t > 25 ){
Serial.print("Temperatura de la Sala está muy Alta");
digitalWrite(TemperaturaAlta,HIGH);
}
else {
digitalWrite(TemperaturaAlta,LOW);
}
Serial.print("\n");
//*******************************************************
if(h >= 0 & h <= 35){
Serial.print("Humedad de la Sala está Baja");
digitalWrite(HumedadBaja,HIGH);
}
else
{
digitalWrite(HumedadBaja,LOW);
}
if(h > 35 & h <= 65){
Serial.print("Humedad de la Sala está Óptima");
digitalWrite(HumedadOk,HIGH);
}
else
{
digitalWrite(HumedadOk,LOW);
}
if(h > 65 ){
Serial.print("Humedad de la Sala está muy Alta");
digitalWrite(HumedadAlta,HIGH);
}
else {
digitalWrite(HumedadAlta,LOW);
}
Serial.print("\n");
// Wait a few seconds between measurements.
delay(2000);
}