#include <DHT.h>
// --- Pin Definitions based on your request ---
#define DHTPIN 4 // On ESP32, D2 is physically GPIO 4
#define DHTTYPE DHT22
#define POT_PIN 34 // Potentiometer (Current Sensor)
#define RELAY_PIN 25 // Relay Module
#define STATUS_LED 22 // The other LED
// --- Thresholds ---
float temp_limit = 45.0;
int current_limit = 2500; // Threshold for simulated motor current
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(RELAY_PIN, OUTPUT);
pinMode(STATUS_LED, OUTPUT);
// Initial State: Motor ON (Relay Active), Status LED OFF
digitalWrite(RELAY_PIN, HIGH);
digitalWrite(STATUS_LED, LOW);
Serial.println("System Monitoring Started...");
}
void loop() {
float temp = dht.readTemperature();
int potValue = analogRead(POT_PIN);
if (isnan(temp)) {
Serial.println("DHT Sensor Error - Check connection to D2 (GPIO 4)");
return;
}
// Serial Monitor Debugging
Serial.print("Temp: "); Serial.print(temp);
Serial.print("°C | Current Value: "); Serial.println(potValue);
// --- SAFETY LOGIC ---
// If temp > 45C OR Potentiometer > 2500
if (temp > temp_limit || potValue > current_limit) {
digitalWrite(RELAY_PIN, LOW); // STOP MOTOR (Relay OFF)
digitalWrite(STATUS_LED, HIGH); // Turn on the Alert LED (Pin 22)
Serial.println("!!! DANGER: SHUTTING DOWN MOTOR !!!");
}
else {
digitalWrite(RELAY_PIN, HIGH); // MOTOR RUNNING
digitalWrite(STATUS_LED, LOW); // Alert LED OFF
}
delay(1000);
}