#include <WiFi.h>
#include <Adafruit_SSD1306.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
#define CURRENT_PIN 34 // Simulated current sensor input
#define BUZZER 5
#define LED_RED 18
#define LED_GREEN 19
DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 display(128, 64, &Wire, -1);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(CURRENT_PIN, INPUT);
pinMode(BUZZER, OUTPUT);
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
}
void loop() {
float temp = dht.readTemperature();
int current = analogRead(CURRENT_PIN); // simulate motor current
display.clearDisplay();
display.setCursor(0,0);
display.print("Temp: "); display.println(temp);
display.print("Current: "); display.println(current);
bool fault = false;
if(temp > 50) {
display.println("Fault: Overheating");
fault = true;
}
if(current < 1000 || current > 3000) {
display.println("Fault: Current Issue");
fault = true;
}
if(fault) {
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
digitalWrite(BUZZER, HIGH);
} else {
display.println("Status: Normal");
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(BUZZER, LOW);
}
display.display();
delay(2000);
}