student class attendence and monitorin system — ESP32 simulation

An interactive ESP32 circuit simulation you can run free in your browser on Velxio, by saketsuman5356.

Components

Sketch code

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// =================================================
// LCD
// =================================================

LiquidCrystal_I2C lcd(0x27, 16, 2);

// =================================================
// PINS
// =================================================

#define LDR_PIN 34
#define MQ135_PIN 35
#define PIR_PIN 27

#define LED_PIN 26
#define BUZZER_PIN 25

// =================================================
// ATTENDANCE
// =================================================

int totalStudents = 50;
int presentStudents = 43;
int absentStudents = 7;

// =================================================
// SENSOR VALUES
// =================================================

float temperature = 28.5;
float humidity = 65.0;

int ldrValue = 650;
int airQuality = 420;

bool motionDetected = true;

// =================================================
// DISPLAY SETTINGS
// =================================================

int screen = 0;

unsigned long previousMillis = 0;

const unsigned long interval = 5000;

// =================================================
// SETUP
// =================================================

void setup() {

  Serial.begin(115200);

  lcd.init();
  lcd.backlight();
  lcd.clear();

  pinMode(LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(PIR_PIN, INPUT);

  digitalWrite(LED_PIN, LOW);
  digitalWrite(BUZZER_PIN, LOW);

  // =================================================
  // STARTING SCREEN
  // =================================================

  lcd.setCursor(0, 0);
  lcd.print("SMART CLASS");

  lcd.setCursor(0, 1);
  lcd.print("MONITORING SYS");

  Serial.println("SMART CLASS MONITORING SYSTEM");
  Serial.println("SYSTEM READY");

  delay(2000);

  lcd.clear();

  showScreen();
}

// =================================================
// LOOP
// =================================================

void loop() {

  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {

    previousMillis = currentMillis;

    screen++;

    if (screen > 4) {
      screen = 0;
    }

    showScreen();
  }
}

// =================================================
// DISPLAY FUNCTION
// =================================================

void showScreen() {

  lcd.clear();

  // =================================================
  // SCREEN 1 - TEMPERATURE
  // =================================================

  if (screen == 0) {

    lcd.setCursor(0, 0);
    lcd.print("Temperature:");

    lcd.setCursor(0, 1);
    lcd.print(temperature, 1);
    lcd.print(" C");

    Serial.println();
    Serial.println("TEMPERATURE");
    Serial.print("Temperature: ");
    Serial.print(temperature, 1);
    Serial.println(" C");
  }

  // =================================================
  // SCREEN 2 - HUMIDITY
  // =================================================

  else if (screen == 1) {

    lcd.setCursor(0, 0);
    lcd.print("Humidity:");

    lc

More projects by saketsuman5356