I'm a newbie on raspberry pi tinkering world, making a small project with R307 fingerprint module this link was quite helpful to get me used to the module later as the writer presents all the information on the module so good. I realized I can use it for something like a small voting machine demo
But I had some hard work to do like know some information about the identity for what anyone would vote for, like if its a candidate we have to know its name, a photo or some symbol to identify it, also the finger print
.bmp too so they don't just show up and vote for themselves, but they should be allowed to vote, right?
Further searching lead me to this package on github which has all the code ready made I had to add some logic to how things work now basically and had some hiccups using it on my pi i dunno why so looked more and stumbled to this which is what I would recommend if anyone wants to use it
Now, the questions I have are
- How do I store the fingerprint outside of the module? as on the module I can store 1000 something templates but I want to be able to take a backup and do any processes I want on the pi and not the module
Now, I used the download fingerprint code from the pyfingerprint library but can only get one finger at a time, how do I read more than one? from the source file
FINGERPRINT_DOWNLOADIMAGE = 0x0Ais used to download an image from the sensor module to the raspi, should I make a dictionary and get each enrolled user template? Also the templates are in a temp folder, which is useless right? how to store them on other drive like a USB drive? or in a file system that is most secure? The module is connected using UART interface to the Pi
Next I have to find a way to store these securely on the pi or some other place like a cloud, how do I do that? the templates can be in a dictionary which can be compressed into a single zip file maybe and then saved with a password I don't know how to do that right now or the fingerprint of the operator
About the voting machine demo, how do I containerize (sort of a Virtual Machine) ? Suppose I give a menu to the operator on the 16x2 display and they can input using only one button to cycle through the options, their job is to enroll all the participants. An operator can be someone who is higher in authority over the participants(participants are those who are voting, candidate is also a participant, I don't want the operator to be a voter at the moment) and cannot be the candidate. So once in the menu there can be some options like
So in enroll only participants along with the candidates must enroll their fingerprint, here the fingerprint template is saved to the module and a back up to the Pi, each will be indexed appropriately. In vote mode, the Pi will go in a secure mode which will not take any other input but only the vote, it should be efficient and not stop until the operator logs or the time is up for the voting(use datetime in python to vote at certain time setup by the operator) In result mode, again the operator will login and result will count the templates in the favor of one identity to other
One more thing I want to know is what would be better, enroll all the participants once and then just download all of them to the pi and store them securely whichever method I choose? how many can I download at once using UART interface?
I want to be able to run these three processes only, Raspi will not do anything else or won't be wasting any power on any other processes, and each process should be working independently and should use the templates securely and if the module needs it can store some templates on the pi if needed like the operator's because it is supposed to be the one who is going to initiate the voting system. If you can help me with the documentation to get started with finding the documentation to libraries or anything to solve my problems, I would be forever grateful for you assistance.