qr code thesis (copy) — ESP32 simulation

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

Components

Sketch code

#define RXD1 21
#define TXD1 19
HardwareSerial mySerial(1);

int admin1Pin = 15;
int admin2Pin = 2;
int relayPin = 13;
bool btn1LastState = false;
bool btn2LastState = false;

bool doorState = false;
String currAdmin = "";
// String lastAdmin = "";
bool status = false;
void setup() {
  Serial.begin(115200);
  mySerial.begin(115200, SERIAL_8N1, RXD1, TXD1);
  pinMode(admin1Pin, INPUT_PULLUP);
  pinMode(admin2Pin, INPUT_PULLUP);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);
  delay(2000);
}

void loop() {
  if (!digitalRead(admin1Pin) && btn1LastState) {
    mySerial.print("Name: Doe, John; Position: Professor; Organization: D'Gears; ");
    
    if (!(currAdmin != "Doe, John" && doorState)) {
      doorState = !doorState;
    }
    digitalWrite(relayPin, doorState ? HIGH : LOW);

    if (doorState) {
      mySerial.print("Status: In\n");
    } else {
      mySerial.print("Status: Out\n");
    }

    currAdmin = "Doe, John";
    Serial.println("Message sent");
    delay(50);
  }
  btn1LastState = digitalRead(admin1Pin);

  if (!digitalRead(admin2Pin) && btn2LastState) {
    mySerial.print("Name: Doe, Jane; Position: Teacher; Organization: D'Gears; ");
    
    if (!(currAdmin != "Doe, Jane" && doorState)) {
      doorState = !doorState;
    }
    digitalWrite(relayPin, doorState ? HIGH : LOW);

    if (doorState) {
      mySerial.print("Status: In\n");
    } else {
      mySerial.print("Status: Out\n");
    }

    currAdmin = "Doe, Jane";
    Serial.println("Message sent");
    delay(50);
  }
  btn2LastState = digitalRead(admin2Pin);

}

More projects by aleinliwag