You can read part 1 of this post here.
The existing solution, which less we forget has worked for many years, requires users to remember a unique ID number and enter this along with the codes for the products they’ve used. How can we make this better? Well there are many options available for a better input method. Rather than remember a unique ID it would be better to use some kind of sensor to detect something unique about the user. This could be something issued to the user like an RF-ID card or tag, like the London Underground Oyster card or the tags we use to log in at the Maker Space. However it would be cooler to use some form of biometrics as cards and tags are easily left in a drawer, lost or left in a pocket and washed. It’s a damn site harder to leave your eyeball in a draw, and washing your hands is generally a good thing.
Retinal scan is a bit expensive at the moment, not to mention creepy. So that’s ruled out. DNA scanning is even more expensive, not to mention even creepier. But fingerprint scanners have dropped in price in recent years thanks to phone companies and laptop manufacturers banging them in everything, so that’s worth investigating.
There is a technology in use everywhere that automates typing in numbers to represent products, but barcode scanning or RF-ID tags seem a little bit of overkill for this solution. Not to mention it’s difficult and time consuming to put a barcode on every instant coffee granule or stick and RF-ID tag on every teabag. Realistically we still need users to select which items they are consuming, however that doesn’t mean to say we can’t improve it.
Touchscreen technology would be the obvious choice here. So a device that has a touchscreen with a fingerprint scanner and can be programmed. This is looking a lot like a Tablet isn’t it? Well here’s a slight complication – USB. Most tablets use a micro USB cable for charging and for connecting to a host PC or Mac for file transfer. In USB terms a PC or Mac is a controller. Controllers can talk to devices, they can’t talk to other controllers. A Tablet is a device. Devices can talk to controllers, they can’t talk to other devices. A finger print scanner is a device. That’s an issue.
However there’s a simple way to fix this – turn the tablet into a USB controller. Fortunately this is remarkably simple for most tablets and phones. They can be switched from a controller to a device using a USB On The Go (OTG) cable. But this would prevent us using the USB port for charging the tablet. You could modify the Tablet to have a connection direct to the battery but this is risky, you could do clever things with switching the USB-OTG feature in and out but this is already sounding complicated, or you could buy a twin charging/OTG cable which I have never been convinced work on the principle OTG uses a cable swap which should prevent charging (a quick read of some Amazon reviews confirmed this) and we all know the best solutions are simple (or at least have a simple concept).
Is there another option? Of course there is. The Raspberry Pi now has an officially supported touchscreen, it could use either a USB finger print scanner or a scanner connected directly to the GPIO and it gets it’s power from a dedicated connection.
So the proposed solution is to create an application running on the Raspberry Pi 2 Model B, using a fingerprint scanner and the official Pi 7inch touchscreen. There’s only three blocks there and it’s pretty clear how to make them all communicate with each other, and make them do their individual jobs. Also, I’ve never played with a Pi in anger and really, really want to. A simple solution using new toys then. Perfect.
What could possibly go wrong?