#ifdef ARDUINO_ARCH_ESP32 #include #else #include #endif #include #include //Constantes para operar LCD const int rs=16, en =05, d4 = 04, d5=00, d6=02, d7=14; // //int salida=4; //int Led=5; int i,temperaturaRefrigerador=18,temperaturaBombaDeCalor=21; String cadena; byte mac[6]; bool AireAcondicionadoEncendido=false, CalefactorEncendido=false; //const char* ssid= "HUAWEI-FLG78T"; //const char* password= "Patetulipan36tiempos"; const char* ssid= "INFINITUM6FHV_2.4"; const char* password= "Pantallamonodos84"; int sensorValLuz; int sensorValArriba; int sensorValAbajo; //HUAWEI-FLG78T //Patetulipan36tiempos LiquidCrystal lcd(rs, en, d4, d5, d6, d7); Espalexa alexa; void Luz(uint8_t brightness); void Calefactor(uint8_t brightness); void AireAcondicionado(uint8_t brightness); void Camaras(uint8_t brightness); void Auxiliar(uint8_t brightness); void setup() { Serial.begin(9600); lcd.begin(16,2); // pinMode(5, OUTPUT); // pinMode(12, OUTPUT); pinMode(12, INPUT_PULLUP); pinMode(13, INPUT_PULLUP); pinMode(15, INPUT_PULLUP); ConectarWifi(); alexa.addDevice("Luz", Luz); alexa.addDevice("Calefactor", Calefactor); alexa.addDevice("AireAcondicionado", AireAcondicionado); alexa.addDevice("Camaras", Camaras); alexa.addDevice("Auxiliar", Auxiliar); alexa.begin(); } void loop() { ConectarWifi(); alexa.loop(); sensorValLuz = digitalRead(12); sensorValArriba=digitalRead(13); sensorValAbajo=digitalRead(15); if(sensorValLuz==HIGH){ cadena = "01" "00" "2" "256"; Serial.println(cadena); delay(400); } //INSTRUCCIONES PARA LOS BOTONES QUE SOLO FUNCIONAN CUANDO EL AC ESTA ENCENDIDO if(AireAcondicionadoEncendido==true){ //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ARRIBA if(sensorValArriba==HIGH){ if(temperaturaRefrigerador<30){ lcd.clear(); temperaturaRefrigerador+=1; lcd.print(temperaturaRefrigerador); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("AIRE"); lcd.setCursor(0,1); lcd.print("ACONDICIONADO"); String myString = String(temperaturaRefrigerador); cadena = "09" "00" "1" + myString; Serial.println(cadena); } else{ lcd.clear(); lcd.print(temperaturaRefrigerador); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("AIRE"); lcd.setCursor(0,1); lcd.print("ACONDICIONADO"); } } //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ARRIBA //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ABAJO if(sensorValAbajo==HIGH){ if(temperaturaRefrigerador>16){ temperaturaRefrigerador-=1; lcd.clear(); lcd.print(temperaturaRefrigerador); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("AIRE"); lcd.setCursor(0,1); lcd.print("ACONDICIONADO"); String myString = String(temperaturaRefrigerador); cadena = "09" "00" "1" + myString; Serial.println(cadena); } else{ lcd.clear(); lcd.print(temperaturaRefrigerador); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("AIRE"); lcd.setCursor(0,1); lcd.print("ACONDICIONADO"); } } //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ABAJO } //INSTRUCCIONES PARA LOS BOTONES QUE SOLO FUNCIONAN CUANDO EL AC ESTA ENCENDIDO //INSTRUCCIONES PARA LOS BOTONES QUE SOLO FUNCIONAN CUANDO EL CALEFACTOR ESTA ENCENDIDO if(CalefactorEncendido==true){ //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ARRIBA if(sensorValArriba==HIGH){ if(temperaturaBombaDeCalor<30){ lcd.clear(); temperaturaBombaDeCalor+=1; lcd.print(temperaturaBombaDeCalor); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("CALEFACTOR"); String myString = String(temperaturaBombaDeCalor); cadena = "09" "00" "1" + myString; Serial.println(cadena); } else{ lcd.clear(); lcd.print(temperaturaBombaDeCalor); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("CALEFACTOR"); } } //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ARRIBA //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ABAJO if(sensorValAbajo==HIGH){ if(temperaturaBombaDeCalor>16){ lcd.clear(); temperaturaBombaDeCalor-=1; lcd.print(temperaturaBombaDeCalor); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("CALEFACTOR"); String myString = String(temperaturaBombaDeCalor); cadena = "09" "00" "1" + myString; Serial.println(cadena); } else{ lcd.clear(); lcd.print(temperaturaBombaDeCalor); lcd.setCursor(0,1); lcd.print("Grados C"); delay(2000); lcd.clear(); lcd.print("CALEFACTOR"); } } //INSTRUCCIONES PARA CUANDO SE PRESIONA EL BOTON ABAJO } //INSTRUCCIONES PARA LOS BOTONES QUE SOLO FUNCIONAN CUANDO EL CALEFACTOR ESTA ENCENDIDO delay(50); //delay(1500); //Serial.println(9); } void ConectarWifi(){ if(WiFi.status() != WL_CONNECTED){ WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.println(""); Serial.println("Connecting to WiFi"); while(WiFi.status() != WL_CONNECTED){ digitalWrite(5,1); delay(500); digitalWrite(5,1); delay(500); Serial.print("."); } Serial.print(" connected to "); Serial.println(" "+ String(ssid)); Serial.print(" IP address: "); Serial.println(WiFi.localIP()); } } void Luz(uint8_t brightness){ if(brightness){ String myString = String(brightness); cadena = "01" "00" "1" + myString; Serial.println(cadena); } else{ String myString = String(brightness); cadena = "01" "00" "0"; Serial.println(cadena); brightness=255; } } void Auxiliar(uint8_t brightness){ if(brightness){ Serial.println("Aux ON"); } else{ Serial.println("Aux OFF"); } } void Calefactor(uint8_t brightness){ if(brightness){ String myString = String(temperaturaBombaDeCalor); cadena = "09" "00" "1" + myString; Serial.println(cadena); //Imprimiendo en pantalla LCD lcd.print("CALEFACTOR"); //Imprimiendo en pantalla LCD CalefactorEncendido=true; } else{ String myString = String(temperaturaBombaDeCalor); cadena = "09" "00" "0" + myString; Serial.println(cadena); //Limpiando pantalla LCD lcd.clear(); //Limpiando pantalla LCD CalefactorEncendido=false; } } void AireAcondicionado(uint8_t brightness){ if(brightness){ String myString = String(temperaturaRefrigerador); cadena = "08" "00" "1" + myString; Serial.println(cadena); //Imprimiendo en pantalla LCD lcd.print("AIRE"); lcd.setCursor(0,1); lcd.print("ACONDICIONADO"); //Imprimiendo en pantalla LCD AireAcondicionadoEncendido=true; } else{ String myString = String(temperaturaRefrigerador); cadena = "08" "00" "0" + myString; Serial.println(cadena); //Limpiando pantalla LCD lcd.clear(); //Limpiando pantalla LCD AireAcondicionadoEncendido=false; } } void Camaras(uint8_t brightness){ if(brightness){ String myString = String(brightness); cadena = "04" "00" "1"; Serial.println(cadena); delay(200); } else{ String myString = String(brightness); cadena = "04" "00" "0"; Serial.println(cadena); } }