تبلیغات
مطالب اینترنتی - با برد آردوینو و تگ RFID دستگاه حضور و غیاب بسازید
 
مطالب اینترنتی



مفیدستان:

#include <Wire.h>

#include <SPI.h>

#include <SD.h>

#include <RTClib.h>

#include <LiquidCrystal.h>

String tag[2]=

“۵۴۵۴۴۸۴۸۵۳۶۹۵۶۶۶۶۶۵۲”,“۵۴۵۴۴۸۴۸۵۳۶۹۵۶۶۹۵۷۵۱”;

String name[2]=

“Rahul Kar”,“Engineers Garage”;

String roll[2]=

“۲۰۱۳۰۱۷۴”,“۲۰۱۳۰۲۰۷”;

const int chipSelect=10;

int val=0,n=2;

int bytesread=0;

int buttonState=0;

String gettag=String();

char filename[]=“00000000.CSV”;

RTC_DS1307 RTC;

LiquidCrystal lcd(9,8,7,6,5,4);

void setup()

Serial.begin(9600); // RFID reader SOUT pin connected to Serial RX pin at 9600bps

lcd.begin(16,2);

Wire.begin(); // Initiate I2C

RTC.begin(); // Initiate RTC

pinMode(2,OUTPUT); // Set digital pin 2 as OUTPUT to connect it to the RFID /ENABLE pin

digitalWrite(2,HIGH); // Activate the RFID reader

//Serial.print(“Initializing SD card…”);

pinMode(10,OUTPUT); // ۵۳ for Mega 10 for UNO

if(!SD.begin(chipSelect)) // See if the card is present and can be initialized

//Serial.println(“Card failed, or not present”);

return;

delay(100);

//Serial.println(“Card initialized.”);

if(!RTC.isrunning())

//Serial.println(“RTC is NOT running!”);

char filename[]=“00000000.CSV”;

void getFilename(char *filename)

DateTime now=RTC.now();

int year=now.year();

int month=now.month();

int day=now.day();

filename[0]=‘2’;

filename[1]=‘0’;

filename[2]=(year2000)/10+‘0’;

filename[3]=year%10+‘0’;

filename[4]=month/10+‘0’;

filename[5]=month%10+‘0’;

filename[6]=day/10+‘0’;

filename[7]=day%10+‘0’;

filename[8]=‘.’;

filename[9]=‘C’;

filename[10]=‘S’;

filename[11]=‘V’;

return;

void printdate_time()

DateTime now=RTC.now();

lcd.setCursor(0,1); // set column zero row 2

lcd.print(“Time”); // display the word “time”

lcd.setCursor(5,1); // set column 5 row 2

lcd.print(now.hour(),DEC); // display hour

lcd.setCursor(7,1); // set column 7 row 2

lcd.print(‘:’); // display colon

lcd.setCursor(8,1); // set column 8 row 2

lcd.print(now.minute(),DEC); // display minute

lcd.setCursor(10,1); // set column 9 row 2

lcd.print(‘:’); // display colon

lcd.setCursor(11,1); // set column 11 row 2

lcd.print(now.second(), DEC); // display seconds

// display DATE on FIRST ROW

lcd.setCursor(0, 0); // set column zero row 1

lcd.print(“Date”); // display the word “Date”

lcd.setCursor(5, 0); // set column 5 row 1

lcd.print(now.month(), DEC); // display current month

lcd.setCursor(7, 0); // set column 7 row 1

lcd.print(‘/’); // display forwared slash

lcd.setCursor(8, 0); // set column 8 row 1

lcd.print(now.day(), DEC); // display current day

lcd.setCursor(10, 0); // set column 10 row 1

lcd.print(‘/’); // display forward slash

lcd.setCursor(11, 0); // set column 11 row 1

lcd.print(now.year(), DEC); // print current year

void printdata(String name,String roll)

lcd.clear();

lcd.print(name);

lcd.setCursor(0,1);

lcd.print(roll);

delay(800);

lcd.clear();

printdate_time();

String getname(String t)

int index=0;

for(int i=0;i<n;i++)

if(t.equals(tag[i]))

index=i;

break;

return name[index];

String getroll(String t)

int index=0;

for(int i=0;i<n;i++)

if(t.equals(tag[i]))

index=i;

break;

return roll[index];

void readtag_dumpSD()

{

if(Serial.available()>0) // if data available from reader

{

if((val=Serial.read())==10) // check for header

bytesread=0;

while(bytesread<10) // read 10 digit code

if(Serial.available()>0)

(val==13)) // if header or stop bytes before the 10 digit reading

break; // stop reading

gettag=gettag+val; // add the digit

bytesread++; // ready to read next digit

if(bytesread==10) // if 10 digit read is complete

DateTime now=RTC.now();

String stu=getname(gettag); //Get student name

String rol=getroll(gettag); //Get student roll..

digitalWrite(2, LOW); // deactivate the RFID reader for a moment so it will not flood

delay(1500); // wait for a bit

digitalWrite(2, HIGH); // Activate the RFID reader

getFilename(filename);

if(!SD.exists(filename)) //If filename doesnt exist create one

File dataFile=SD.open(filename,FILE_WRITE);

if(dataFile)

dataFile.print(“Name”);

dataFile.print(“,”);

dataFile.print(“Roll”);

dataFile.print(“,”);

dataFile.print(“Time”);

dataFile.println();

dataFile.print(stu);

dataFile.print(“,”);

dataFile.print(rol);

dataFile.print(“,”);

dataFile.print(now.hour());

dataFile.print(“:”);

dataFile.print(now.minute());

dataFile.print(“:”);

dataFile.print(now.second());

dataFile.println();

dataFile.close();

printdata(stu,rol);

else if(SD.exists(filename)) //If filename exist then use it

File dataFile=SD.open(filename,FILE_WRITE);

if(dataFile)

dataFile.print(stu);

dataFile.print(“,”);

dataFile.print(rol);

dataFile.print(“,”);

dataFile.print(now.hour());

dataFile.print(“:”);

dataFile.print(now.minute());

dataFile.print(“:”);

dataFile.print(now.second());

dataFile.println();

dataFile.close();

printdata(stu,rol);

else // if the file isn’t open, pop up an error:

//Serial.println(“Error opening file”);

bytesread=0;

digitalWrite(2, LOW); // deactivate the RFID reader for a moment so it will not flood

delay(1500); // wait for a bit

digitalWrite(2, HIGH); // Activate the RFID reader

gettag=NULL;

}

}

void loop()

printdate_time();

readtag_dumpSD();



لینک منبع

بازنشر: مفیدستان

مطلب با برد آردوینو و تگ RFID دستگاه حضور و غیاب بسازید در سایت مفیدستان
برای دریافت مطالب مفید به سایت مفیدستان مراجعه فرمایید.


لینک منبع و پست :با برد آردوینو و تگ RFID دستگاه حضور و غیاب بسازید
http://mofidestan.ir/%d8%a8%d8%a7-%d8%a8%d8%b1%d8%af-%d8%a2%d8%b1%d8%af%d9%88%db%8c%d9%86%d9%88-%d9%88-%d8%aa%da%af-rfid-%d8%af%d8%b3%d8%aa%da%af%d8%a7%d9%87-%d8%ad%d8%b6%d9%88%d8%b1-%d9%88-%d8%ba%db%8c%d8%a7%d8%a8-%d8%a8/



نوع مطلب :
برچسب ها :
لینک های مرتبط :
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :