Arduino based class attendance devie

Ok I am a high school instructor and am tired of wasting valuable instruction time on taking roll before every class. What I would like to do is combine an arduino uno r3 wtih a fingerprint scanner and a thermal printer. I would like for this unit to be mounted near the door and as students come in they scan their finger, then 15 minutes into the class the arduino would compare who has scanned in to who is in the class roll and then print a list of students who didn't scan in. Is this feasible, would I have to link the arduino to a pc possibly running excel or access to acomplish this or can it be done as a standalone unit? I have 3 students who have been asking me to get an arduino to experiement with and if this is feasible it would be my 1st arduino project aswell as the students 1st.

we are looking at getting the following printer and scanner

Thanks
Jason

The first question that comes up is if this is allowed to take a persons fingerprint.
Second My experience with fingerprint recognition is that unless you have a small set of people to recognize the fail rate increases quite a bit (disclaimer, no experience with this particular FP scanner).
Have you considered using RFID tags instead?

It is feasible - sounds like the device has numeric codes for each stored fingerprint, so you'll need a way to program in new
fingerprints and record the name (to EEPROM in the Arduino?) - perhaps a separate sketch used at the beginning of term/year?

A RTC module would allow date/time stamps and make the unit standalone for normal operation... Note the PSU will need to supply 1.5A+ to drive that printer, so something like 9V 2A PSU might be best (the printer can take 5 to 9V it claims).

Not a trivial project, but the support at Adafruit will make things a lot easier than otherwise I think.

...and a thermal printer

Why?

rob good point about it being allowed to take a person’s fingerprint, RFID can be the backup method, I was only leaning to fingerprint because it did not require the students to keep up with anything, I am dealing with 15-18 year old students and they are not the best at keeping up with things. Numeric keypad entry could be a possible method but would be one that could be beating (could get a friend to key in their code).

Coding Badly currently I am required to submit a hard copy to the office prior to the end of every class. So phase 1 would be to just integrate with the current requirements. After the success of this project phase 2 would come in to play which I envision every class having one of these and they could digital convey the absentees to the office.

I don't know anything about finger print scanners, but I do know RFID. From what I can understand, what your trying to do is quite complicated for someone who is just starting with Arduino. I would recommend you go with RFID, it is easy to learn, and I believe the cards are very cheap to buy.
Now as for communication to a computer, you may want to use a RF transceiver or Bluetooth. Also you may want to learn a little about a program called Processing. It allows you to receive data and put it in a window that you can make, so it looks somewhat professional.

Printer? I personally never tried to combine an Arduino and a printer, so I can't help you there but I'm positive that there is someone who can.

jdsosa:
Coding Badly currently I am required to submit a hard copy to the office prior to the end of every class.

Have the students pass around a sheet of paper. Have each students' name printed on the sheet. To get credit for attending class, the student signs next to their name. Turn the sheet into the office. Cost: less than 10¢ per day. Burden on you: almost zero.

Is there a computer in the classroom?

If you take the RFID tag route then I suspect you will end up providing an endless stream of replacements for lost cards (and the administrative hassle of tracking which card corresponds to which person on a given day) - you also have no evidence that the person associated with each card was physically present, only that somebody presented their card.

Coding Badly's suggestion seems to be the most sensible solution, to me. (I'd still want to 'count noses' and compare to the number of signatures each day.)

Coding Badly that is probably the most logical thing to do, so I will be implementing that in the morning. But I do plan to go ahead and get something like the sparkfun inventors kit and still pursue the arduino based solution down the road. While it will not save time if it is only used in my classroom, the time would begin to compound greatly if we were able to build one for every classroom and create possibly a macro that could take the data and key it in to the states system that the office staff has to manually key absentees into twice a day.

just give the kids a seating chart and look for empty desks. That is what my teachers use to do

The question is a separate paragraph (making a different subject)…

Is there a computer in the classroom?

arduinopi:
just give the kids a seating chart and look for empty desks. That is what my teachers use to do

Yea but how lame was that, no the seating chart will not work in my case I teach in a lab that is very project based and often the tables are not setup in the classroom. I also teach at what is called a stem academy and my students are bussed to me from 6 different schools and the busses do not arrive at the same time. There is a 20 minute window in wich students arrive they leave at differnt times also. I have never liked calling roll verbally for this reason some students will be 20 minutes into todays task while others are just arriving and I hate to interupt the groups that are already working just so I can call roll. Also the ones that are arriving latter I have to hurry them up and get them on task so they can keep up with the others. I think I will keep working to the arduion based project but I will do several beginner projects and work my way up to it, if for nothing else to give me a reason to learn some coding skills that I can then pass on to my students.

oops I answered that in my head but forgot to key it in, yes I have 23 laptops for the students to use and the students work in groups with every group having atleast one laptop. I have access to another laptop and or desktop that could be dedicated to attendance (not sure were you are going so just throwing this in)

jdsosa:
oops I answered that in my head but forgot to key it in, yes I have 23 laptops for the students to use and the students work in groups with every group having atleast one laptop. I have access to another laptop and or desktop that could be dedicated to attendance (not sure were you are going so just throwing this in)

Your project can be broken into a few distinct pieces. Most of those pieces provide immediate feedback.

Uploading a program to an Arduino is a good example. You download and run the software, wire an LED (and current limiting resistor) connect your Arduino, select the Blink example, then click upload. If the LED blinks, everything worked.

The fingerprint reader is another good example. If everything works the way LadaAda describes (I assume she's provided a tutorial; she usual does) then you know it works. It's that simple.

Transferring data from one system (like your Arduino) to another system (like the state system) is more complicated and can fail in subtle ways. What seems to work correctly may actually be fatally flawed.

I suggest trying to print from a computer instead of the thermal printer. It is an opportunity to dip your toe in the data transfer pool without much risk. If you can't get it working, use the thermal printer instead. If you can get it working, you gain some much needed experience.

First its illegal to store someone's fingerprint.
Secondly, this method is easily crackable (1 person can register multiple users by using their fingerprints)

As result, you end up with 100$ less in your pocket...

xvjeko:
First its illegal to store someone's fingerprint.

Which law makes it illegal in jdsosa's location?

I spent a little time this morning looking for any law in the U.S. that would make this illegal and came up with nothing. It appears that this is becomming increasingly popular in U.S. manufacturing facilites for payroll use.

There are many law's (including the Netherlands) that state that you are not allowed to store biometric or other personal data without agreement of the person involved.
In the Netherlands every person has the right to ask (by law) for all the information stored about him/her by government and companies. There are some exceptions like when there is an investigation by police or so. Fingerprints are definitely personal data under these laws. In those same laws the companies and government must take care that the information does not go to 3rd parties.

( disclaimer I'm no lawyer )

jdsosa:
I spent a little time this morning looking for any law in the U.S. that would make this illegal and came up with nothing. It appears that this is becomming increasingly popular in U.S. manufacturing facilites for payroll use.

Very likely because the actual fingerprint is not stored.

@xvjeko may be correct that storing another person's fingerprint may cause legal trouble (especially in the U.S. by an employee of the Executive Branch of the government) but his post is essentially off-topic because the device is a "fingerprint reader" not a "fingerprint storer".

If you go to the site and look for that scanner it seems to be hashing fingerprints and storing internally, using a sequence number to identify them to the outside world.