#include <16F876A.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(crystal=20000000)
#define LCD_ENABLE_PIN PIN_B3
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7

#define Aire PIN_C0
#define Ventilador PIN_C1


#include <lcd.c>
#include "DRIVER_DHT22Bakup.c"

float hum,temp;

float HumMin;
float HumMax;
float TempMin;
float TempMax;

void ControlHumyTemp()
{

leer_dht22(hum, temp);

if(hum>=HumMax||temp>=TempMax)
{
   output_low(Aire);
   output_low(Ventilador);
   }

else if(hum<=HumMin && temp<=TempMin)
{
   output_high(Aire);
   output_high(Ventilador);
}

}

void Iniciart()
{
HumMin=65,00;
HumMax=75,00;
TempMin=18,00;
TempMax=22,00;
}


void main()
{
 
   set_tris_a(0b00000001);
   set_tris_c(0b00000000);
  
   
   lcd_init();
   delay_ms(1000);
   Iniciart();  
   printf(lcd_putc,"...Iniciando...");
   delay_ms(3000);
   
      
   while(TRUE)
   {
   
   delay_ms(2000);
   ControlHumyTemp();
   printf(lcd_putc,"\fH-=%f H+=%f\n",HumMin,HumMax);
   printf(lcd_putc,"T-=%f T+=%f\n",TempMin,TempMax);
   delay_ms(1000);
   printf(lcd_putc,"\f---Temp:%f\n---Hum:%f",temp,hum);
   
      
   }

}