//#define PIN_POT A1
#define VREF 5.0
#define RES_ADC 4096
#define PIN_LUX A0
#define PIR_SENSOR 13
#define DHT22_PIN 25
//#define SERVO_PIN 18
#define LED_R 15
#define LED_G 23
#define LED_Y 2
#define BUZZER 5
int warm_up;
//#include "ESP32Servo.h"
#include "DHT.h"
Servo myServo; // create servo object
DHT dht22(DHT22_PIN, DHT22);
int Sensor_LUX(){
int raw = analogRead(PIN_POT);
Serial.println("Raw: " + String(raw));
int lux = map(raw, 32, 4063, 100000, 0.1);
Serial.print(", lumenes: ");
Serial.println(lux);
myServo.write(lux);
float voltage = (raw * VREF) / RES_ADC;
Serial.println("voltage: " + String(voltage));
if (lux == 0)
myServo.write(180);
if (lux == 50119)
myServo.write(90);
if (lux == 100000)
myServo.write(0);
delay(100);
}
int Sensor_PIR(){
int salida_sensor = digitalRead(PIR_SENSOR);
if(salida_sensor == LOW){
if(warm_up == 1){
Serial.print("Calentando\n");
warm_up = 0;
delay(2000);
}
Serial.print("Objeto no detectado\n");
delay(1000);
}
else{
Serial.print("Objeto detectado\n");
warm_up = 1;
delay(1000);
}
}
void Sensor_DHT(){
float humi = dht22.readHumidity();
float tempC = dht22.readTemperature();
float tempF = dht22.readTemperature(true);
if(isnan(humi) || isnan(tempC) || isnan(tempF)){
Serial.println("Problema al leer el sensor DHT22!");
}
else{
Serial.print("DHT22# Humedad: ");
Serial.print(humi);
Serial.print("%");
Serial.print(" | ");
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.print("°C ~ ");
Serial.print(tempF);
Serial.println("°F");
delay(250);
}
}
void setup() {
//myServo.attach(SERVO_PIN);
pinMode(PIR_SENSOR, INPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_Y, OUTPUT);
pinMode(LED_R, OUTPUT);
Serial.begin(115200);
dht22.begin();
Serial.println("Esperando a que inicie el sensor PIR");
delay(2000);
Serial.println("Listo!");
}
void loop() {
//Sensor_LUX();
//Sensor_PIR();
//Sensor_DHT(tempC);
/*
float humi = dht22.readHumidity();
float tempC = dht22.readTemperature();
float tempF = dht22.readTemperature(true);
if(isnan(humi) || isnan(tempC) || isnan(tempF)){
Serial.println("Problema al leer el sensor DHT22!");
}
else{
Serial.print("DHT22# Humedad: ");
Serial.print(humi);
Serial.print("%");
Serial.print(" | ");
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.print("°C ~ ");
Serial.print(tempF);
Serial.println("°F");
delay(250);
}
*/
int salida_sensor = digitalRead(PIR_SENSOR);
if(salida_sensor == LOW){
if(warm_up == 1){
Serial.print("Calentando\n");
warm_up = 0;
delay(2000);
}
Serial.print("Objeto no detectado\n");
delay(1000);
}
else{
Serial.print("Objeto detectado\n");
warm_up = 1;
float humi = dht22.readHumidity();
float tempC = dht22.readTemperature();
float tempF = dht22.readTemperature(true);
if(isnan(humi) || isnan(tempC) || isnan(tempF)){
Serial.println("Problema al leer el sensor DHT22!");
}
else{
Serial.print("DHT22# Humedad: ");
Serial.print(humi);
Serial.print("%");
Serial.print(" | ");
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.print("°C ~ ");
Serial.print(tempF);
Serial.println("°F");
delay(250);
}
if ( 15 < tempC && tempC <20){
digitalWrite(LED_G, HIGH);
}
else if (20 <= tempC && tempC < 28){
digitalWrite(LED_Y, HIGH);
}
else if(tempC >= 28){
digitalWrite(LED_R, HIGH);
digitalWrite(BUZZER, HIGH);
}
delay(3000);
}
}