Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Config
- #define SD_ENABLED 1
- #define USE_SDFAT_LIBRARY 1
- // Pins
- #define SD_CS_PIN 4
- #define MRF_CS_PIN 10
- #define MRF_RST_PIN 9
- // Libraries
- #include <SPI.h>
- #include <MFRC522.h>
- #include <Keyboard.h>
- #include <Wire.h>
- #include <TimeLib.h>
- #include <DS1307RTC.h>
- #if defined(SD_ENABLED)
- #if !defined(USE_SDFAT_LIBRARY)
- #include <SD.h>
- #else
- #include "SdFat.h"
- #endif
- #endif
- char lang = 'E';
- uint32_t user = 0xEC783823;
- char password[] = "r10012000R";
- uint32_t admin = 0xC6B8532B;
- char password2[] = "admin12345";
- MFRC522 mfrc522(MRF_CS_PIN, MRF_RST_PIN);
- #if defined(USE_SDFAT_LIBRARY) && defined(SD_ENABLED)
- SdFat SD;
- #endif
- #if defined(SD_ENABLED)
- File myFile;
- String sfilename;
- char filename[20];
- #endif
- uint32_t id = 0x00000000;
- tmElements_t tm;
- unsigned long millis1 = 0;
- String record = "";
- String curr = "";
- void setup() {
- Serial.begin(115200);
- Keyboard.begin();
- SPI.begin();
- mfrc522.PCD_Init();
- #if defined(SD_ENABLED)
- SD.begin(SD_CS_PIN);
- #else
- pinMode(SD_CS_PIN, OUTPUT);
- digitalWrite(SD_CS_PIN, HIGH);
- #endif
- }
- void loop() {
- if ( ! mfrc522.PICC_IsNewCardPresent()) {
- return;
- }
- if ( ! mfrc522.PICC_ReadCardSerial()) {
- return;
- }
- id = 0;
- id = 0x1000000 * mfrc522.uid.uidByte[0] + 0x10000 * mfrc522.uid.uidByte[1] + 0x100 * mfrc522.uid.uidByte[2] + mfrc522.uid.uidByte[3];
- //id = (mfrc522.uid.uidByte[0] << )
- Serial.println(id, HEX);
- if (id == user)
- {
- curr = "User ";
- pass(password);
- }
- else if (id == admin)
- {
- curr = "Admin ";
- pass(password2);
- }
- delay(1000);
- }
- void pass(const char *p)
- {
- if (lang == 'R')
- {
- Keyboard.press(KEY_LEFT_ALT);
- Keyboard.press(KEY_LEFT_SHIFT);
- Keyboard.release(KEY_LEFT_SHIFT);
- Keyboard.release(KEY_LEFT_ALT);
- delay(20);
- }
- Keyboard.press(KEY_LEFT_GUI); //Нажимает клавишу WIN
- Keyboard.press('l'); //Нажимает клавишу 1
- Keyboard.releaseAll(); //Отпускает все клавиши
- delay (100);
- //Keyboard.write(KEY_RETURN); //Нажимает Enter
- //Keyboard.releaseAll(); //Отпускает все клавиши
- delay(300);
- Keyboard.print(p); // Вводит пароль
- Keyboard.releaseAll(); //Отпускает все клавиши
- delay(500);
- Keyboard.write(KEY_RETURN); //Нажимает Enter
- Keyboard.releaseAll(); //Отпускает все клавиши
- delay(1000); //Пауза чтобы успело отработать
- #if defined(SD_ENABLED)
- rec(curr);
- #endif
- }
- #if defined(SD_ENABLED)
- void rec (String curr1) {
- sfilename = get_file_name();
- Serial.print("filename=");
- Serial.println(sfilename+".txt");
- sfilename.toCharArray(filename, 20);
- myFile = SD.open(filename, FILE_WRITE);
- record = get_time();
- record += " ";
- record += String(curr1);
- record += "\n";
- Serial.print("record=");
- Serial.println(record);
- myFile.println(record);
- myFile.close();
- }
- String get_time() {
- String time1;
- RTC.read(tm);
- if (tm.Hour<10){
- time1= "0" + String(tm.Hour, DEC);
- }
- else time1 = String(tm.Hour, DEC);
- if (tm.Minute<10){
- time1 = time1+ ":0" + String(tm.Minute, DEC);
- }
- else time1 = time1+ ":" + String(tm.Minute, DEC);
- return time1;
- }
- String get_file_name() {
- String date1;
- RTC.read(tm);
- date1 = String(tm.Day,DEC);
- date1 = date1 + "_" + String(tm.Month,DEC);
- date1 = date1 + "_" + tmYearToCalendar(tm.Year);
- return date1;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment