#include <ESP32Servo.h>
//Puertos definidos del ULtrasonico
const int Sensor_LDR = 32;
//Leds de la placa
const int led1 = 23;
const int led2 = 22;
const int led3 = 21;
//Pin del Servomotor
const int servoPin = 19;
Servo myServo;
//Pin del NTC
const int sensorPin = 27; // Pin del sensor NTC conectado al ESP32
//Cosa para el NTC
const float BETA = 3950; // Coeficiente BETA para la formula
void setup()
{
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
myServo.attach(servoPin);
//Esto es para el NTC
analogReadResolution(10);
pinMode(27,INPUT);
}
void loop()
{
//Programacion del NTC (La formula)
int analogValue = analogRead(27);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" ℃");
//PROGRAMACION DEL LDR
int valor_luz = analogRead(Sensor_LDR);
Serial.print("Luz: ");
Serial.println(valor_luz);
Serial.println("");
if(valor_luz > 200 && celsius > 30)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
// Gira el servomotor 150 grados en sentido horario
myServo.write(150);
}
else if(valor_luz < 180 && celsius < 25)
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
// Gira el servomotor 90 grados en sentido horario
myServo.write(90);
}
}