Guest User

Untitled

a guest
Feb 10th, 2022
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.22 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <MFRC522.h>
  3. #include <Keyboard.h>
  4. #include <Wire.h>
  5. #include <TimeLib.h>
  6. #include <DS1307RTC.h>
  7. #include <SdFat.h>
  8. SdFat SD;
  9. #define SD_CS_PIN 4
  10. #define MRF_CS_PIN 10
  11. #define MRF_RST_PIN 9
  12.  
  13. char lang = 'E';
  14. uint32_t user = 0xEC783823;
  15. char password[] = "r10012000R";
  16. uint32_t admin = 0xC6B8532B;
  17. char password2[] = "admin12345";
  18. File myFile;
  19. String sfilename;
  20. char filename[20];
  21. MFRC522 mfrc522(MRF_CS_PIN, MRF_RST_PIN);
  22. uint32_t id = 0x00000000;
  23. tmElements_t tm;
  24. unsigned long millis1 = 0;
  25. String record = "";
  26. String curr = "";
  27.  
  28. void setup() {
  29.   pinMode(SD_CS_PIN,OUTPUT);
  30.   pinMode(MRF_CS_PIN,OUTPUT);
  31.   pinMode(MRF_RST_PIN,OUTPUT);
  32.   Keyboard.begin();
  33.   SPI.begin();
  34.   mfrc522.PCD_Init();
  35.   SD.begin(SD_CS_PIN);
  36.   //mfrc522.PCD_Init();
  37.   Serial.begin(115200);
  38. }
  39.  
  40. void loop() {
  41.   SPI.begin();
  42.   mfrc522.PCD_Init(MRF_CS_PIN , MRF_RST_PIN );
  43.   if ( ! mfrc522.PICC_IsNewCardPresent()) {
  44.     return;
  45.   }
  46.  
  47.   if ( ! mfrc522.PICC_ReadCardSerial()) {
  48.     return;
  49.   }
  50.  
  51.   id = 0;
  52.   id = 0x1000000 * mfrc522.uid.uidByte[0] + 0x10000 * mfrc522.uid.uidByte[1] + 0x100 * mfrc522.uid.uidByte[2] + mfrc522.uid.uidByte[3];
  53.  
  54.   Serial.println(id, HEX);
  55.  
  56.   if (id == user)
  57.   {
  58.     curr = "User ";
  59.     pass(password);
  60.   }
  61.   else if (id == admin)
  62.   {
  63.     curr = "Admin ";
  64.     pass(password2);
  65.   }
  66.   delay(1000);
  67. }
  68.  
  69.  
  70. void pass(char p[])
  71. {
  72.   if (lang == 'R')
  73.   {
  74.     Keyboard.press(KEY_LEFT_ALT);
  75.     Keyboard.press(KEY_LEFT_SHIFT);
  76.     Keyboard.release(KEY_LEFT_SHIFT);
  77.     Keyboard.release(KEY_LEFT_ALT);
  78.     delay(20);
  79.   }
  80.     Keyboard.press(KEY_LEFT_GUI);               //Нажимает клавишу WIN
  81.     Keyboard.press('l');                        //Нажимает клавишу 1
  82.     Keyboard.releaseAll();                      //Отпускает все клавиши
  83.     delay (100);
  84.     //Keyboard.write(KEY_RETURN);                      //Нажимает Enter
  85.     //Keyboard.releaseAll();                    //Отпускает все клавиши
  86.     delay(300);
  87.     Keyboard.print(p);                   // Вводит пароль
  88.     Keyboard.releaseAll();                      //Отпускает все клавиши
  89.     delay(500);
  90.     Keyboard.write(KEY_RETURN);                      //Нажимает Enter
  91.     Keyboard.releaseAll();                      //Отпускает все клавиши
  92.     delay(1000);                                 //Пауза чтобы успело отработать
  93.     rec(curr);
  94. }
  95. void rec (String curr1) {
  96.   SPI.begin();
  97.   SD.begin(SD_CS_PIN);
  98.   sfilename = get_file_name();
  99.   Serial.print("filename=");
  100.   Serial.println(sfilename);
  101.   sfilename.toCharArray(filename, 20);
  102.   myFile = SD.open(filename, FILE_WRITE);
  103.   record = get_time();
  104.   record += " ";
  105.   record += String(curr1);
  106.   record += "\n";
  107.   Serial.print("record=");
  108.   Serial.println(record);
  109.   myFile.println(record);
  110.   myFile.close();
  111. }
  112. String get_time() {
  113.   String time1;
  114.   RTC.read(tm);
  115.   time1 = String(tm.Hour, DEC);
  116.   time1 = ":" + String(tm.Minute, DEC);
  117.   return time1;
  118. }
  119. String get_file_name() {
  120.   String date1;
  121.   RTC.read(tm);
  122.   date1=String(tm.Day,DEC);
  123.   date1=":"+String(tm.Month,DEC);
  124.   return date1;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment