Photo by Rougerouge
Now let’s have a closer look at the individual parts of the reference model by starting out in the pool. An important requirement Rfish should meet is allowing more than one person swimming on the same lane, at the same time. So Rfish must be able to distinguish between swimmers to maintain separate lap counts for each one of them. We will achieve this by attaching an ID (i.e. a unique number) to each swimmer, which can be read by a reader of some sort. Hooking up those readers to the web requires the IDs to be unique in the entire system. One person can then visit different pools with Rfish readers installed without messing up other peoples lap counts.
The personal ID should cost as little as possible. It’s desirable but far less important to also have a cheap reader, as its cost can be shared between multiple swimmers or maybe even paid for by your pool operator. Without having used them before, my first guess is to work with RFID tags. They can be bought in the form of water resistant wristbands for a few dollars and do not require a direct contact with the reader. While the RFID technology might not work under water, it at least allows us to put the reader in a watertight case.
Of course there are several alternatives to using RFID technology as a means of identification. A personal web-enabled counter or sensor similar to the Nike Plus system could probably be built using a simple controller that might be attached to the internet via USB, making the reader obsolete. The downside of using USB to upload lap counts is that the data is not available on the web at real time, preventing scenarios such as lap swimming competitions. Another approach makes use of computer vision. Instead of an RFID tag, swimmers would wear a QR code (or another 2D bar code) on their head. The reader could be a standard mobile phone with a camera and some QR code reader software. A possible downside of this approach is that cameras are banned from many pools. Considering this, RFID seems to be worth a try.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Switzerland License.