#include "DHT.h"
#define PIR_PIN 13
#define DHT_PIN 15
#define DHT_TYPE DHT22
#define FAN_LED 26
#define BUZZER_PIN 14
#define GREEN_LED 26
#define RED_LED 26
DHT dht(DHT_PIN, DHT_TYPE);
int peopleCount = 0;
void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
pinMode(FAN_LED, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
dht.begin();
Serial.println("Smart Classroom System - Wokwi Simulation");
}
void loop() {
float temp = dht.readTemperature();
if (digitalRead(PIR_PIN) == HIGH) {
peopleCount++;
Serial.print("Person detected. Count: ");
Serial.println(peopleCount);
if (peopleCount % 3 == 0) {
unknownPerson();
} else {
knownPerson();
}
delay(3000);
}
if (temp > 30 || peopleCount >= 5) {
digitalWrite(FAN_LED, HIGH);
Serial.println("Ventilation ON");
} else {
digitalWrite(FAN_LED, LOW);
Serial.println("Ventilation OFF");
}
delay(1000);
}
void knownPerson() {
digitalWrite(GREEN_LED, HIGH);
digitalWrite(RED_LED, LOW);
digitalWrite(BUZZER_PIN, LOW);
Serial.println("Known student - attendance recorded");
delay(1000);
digitalWrite(GREEN_LED, LOW);
}
void unknownPerson() {
digitalWrite(RED_LED, HIGH);
digitalWrite(GREEN_LED, LOW);
digitalWrite(BUZZER_PIN, HIGH);
Serial.println("⚠ Unknown person detected");
delay(1500);
digitalWrite(RED_LED, LOW);
digitalWrite(BUZZER_PIN, LOW);
}