#include <ESP32Servo.h>
//Servos
int pos = 0; //Posicion de inicio de rotacion
Servo persiana;
int Servo1 = 19;
Servo puerta;
int Servo2 = 18;
//Leds
int led1 = 32; //39
int led2 = 33; //34
//Sensor de temperatura
int tmp = 2;
int tempe; //Variable para almacenar la temp
float c; //Variable para los grados C°
const float beta = 3950;
//Leer en Serial
byte incomingByte = 0;
void setup() {
Serial.begin(115200);
Serial.println("Smart Home");
//Leds
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
analogReadResolution(10); //Cambia la resolucion de las entradas analogicas, a 10 bits
//Servos
persiana.attach(Servo1, 500, 2400);
puerta.attach(Servo2, 500, 2400);
}
void loop() {
//Leer en el Serial
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
//Leds(On/Off)------------------------------------------------------------
if (incomingByte == 49) { //Es el numero "1", en ASCII
digitalWrite(led1, HIGH);
Serial.println("Led 1 encendido");
} else if (incomingByte == 48) { //Numero 0
digitalWrite(led1, LOW);
Serial.println("Led 1 Apagado");
} else if (incomingByte == 50) { //Numero 2
digitalWrite(led2, HIGH);
Serial.println("Led 2 Apagado");
} else if (incomingByte == 51) { //Numero 3
digitalWrite(led2, LOW);
Serial.println("Led 2 Apagado");
}
//Servos----------------------------------------------------------------
//Servo 1 (Persiana)
else if (incomingByte == 52) { //Numero 4
Serial.println("Desplegando la persiana...");
for (pos = 180; pos >= 0; pos -= 1) { //Desplegar persiana
cortina.write(pos);
delay(15);
}
Serial.println("Persiana Desplegada");
} else if (incomingByte == 53) { //Numero 5
Serial.println("Retrayendo la persiana...");
for (pos = 0; pos <= 180; pos += 1) { //Retraer cortina
cortina.write(pos);
delay(15);
}
Serial.println("Persiana Retraida");
}
//Servo 2 (Puerta)
else if (incomingByte == 54) { //Numero 6
Serial.println("Abriendo Puerta...");
for (pos = 90; pos <= 180; pos += 1) { //Abrir puerta
puerta.write(pos);
delay(10);
}
Serial.println("Puerta Abierta");
} else if (incomingByte == 55) { //Numero 7
Serial.println("Cerrando puerta...");
for (pos = 180; pos >= 90; pos -= 1) { //Cerrar puerta
puerta.write(pos);
delay(10);
}
Serial.println("Puerta Cerrada");
}
//Sensor de temperatura-------------------------------------------------
else if (incomingByte == 97) { //Letra a
tempe = analogRead(tmp);
c = 1 / (log(1 / (1023. / tempe - 1)) / beta + 1.0 / 298.15) - 273.15;
Serial.print("La Temperatura es: ");
Serial.print(c);
Serial.println(" ℃");
delay(800);
}
}
}