#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
#define arus1Pin 34
#define arus2Pin 35
#define relayPin 26
#define buzzerPin 27
DHT dht(DHTPIN, DHTTYPE);
// SET POINT
float setArus = 0.3; // 300 mA
float setSuhu = 50;
// toleransi error sensor
float toleransi = 0.1;
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(relayPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
digitalWrite(relayPin, HIGH);
digitalWrite(buzzerPin, LOW);
}
void loop() {
// ====== SENSOR ARUS ======
float arus1 = (analogRead(arus1Pin) / 4095.0) * 1.0;
float arus2 = (analogRead(arus2Pin) / 4095.0) * 1.0;
float selisih = abs(arus1 - arus2);
// ====== SUHU ======
float suhu = dht.readTemperature();
// ====== TAMPILKAN ======
Serial.print("Arus1: "); Serial.print(arus1);
Serial.print(" | Arus2: "); Serial.print(arus2);
Serial.print(" | Selisih: "); Serial.print(selisih);
Serial.print(" | Suhu: "); Serial.println(suhu);
// ====== LOGIKA ======
if (selisih > toleransi) {
// SENSOR ERROR
digitalWrite(relayPin, LOW);
digitalWrite(buzzerPin, HIGH);
Serial.println("❌ SENSOR ERROR!");
}
else if (arus1 > setArus || arus2 > setArus || suhu > setSuhu) {
// TRIP
digitalWrite(relayPin, LOW);
digitalWrite(buzzerPin, HIGH);
Serial.println("⚠️ TRIP GANGGUAN!");
}
else {
// NORMAL
digitalWrite(relayPin, HIGH);
digitalWrite(buzzerPin, LOW);
Serial.println("✅ NORMAL");
}
delay(2000);
}