#include #include #include #include SoftwareSerial SIM900(7, 8); String textForSMS; #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // lcd pins #define rs A1 #define en A2 #define d4 6 #define d5 5 #define d6 4 #define d7 3 LiquidCrystal lcd(rs, en, d4, d5, d6, d7); String f1001 = "+8801624856713"; String f1002 = "+8801923707010"; void setup() { Serial.begin(9600); randomSeed(analogRead(0)); SIM900.begin(9600); SPI.begin(); mfrc522.PCD_Init(); lcd.begin(16, 2); lcd.print("AttendanceSystem"); delay(3000); lcd.clear(); lcd.print(" Swip Your Card"); delay(1000); } void loop() { MFRC522::MIFARE_Key key; for (byte i = 0; i < 6; i++) { key.keyByte[i] = 0xFF; } if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } Serial.print("Card UID:"); for (byte i = 0; i < mfrc522.uid.size; i++) { } Serial.println(); byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); if ( piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { return; } // student1 if( (mfrc522.uid.uidByte[0] == 0x7B) && (mfrc522.uid.uidByte[1] == 0x1B) && (mfrc522.uid.uidByte[2] == 0xBB) && (mfrc522.uid.uidByte[3] == 0x1C) ) { lcd.clear(); lcd.print("AttendanceMarked"); delay(500); Serial.println("student 1"); sendsms(" Saif is Present", f1001); delay(1000); lcd.setCursor(0, 1); lcd.print(" message sent"); delay(2000); lcd.clear(); lcd.print(" Swip Your Card"); delay(1000); } // student2 if( (mfrc522.uid.uidByte[0] == 0xD3) && (mfrc522.uid.uidByte[1] == 0xC2) && (mfrc522.uid.uidByte[2] == 0x18) && (mfrc522.uid.uidByte[3] == 0x1C) ) { lcd.clear(); lcd.print("AttendanceMarked"); delay(500); Serial.println("student 2"); sendsms("Kawsar is Present", f1002); delay(1000); lcd.setCursor(0, 1); lcd.print(" message sent"); delay(2000); lcd.clear(); lcd.print(" Swip Your Card"); delay(1000); } else Serial.println("unregistered user"); } void sendsms(String message, String number) { String mnumber = "AT + CMGS = \""+number+"\""; SIM900.print("AT+CMGF=1\r"); delay(1000); SIM900.println(mnumber); delay(1000); SIM900.println(message); delay(1000); SIM900.println((char)26); delay(1000); SIM900.println(); delay(100); }