RFID project stichting z25.org
The system is based on transmitters and recievers. Visitors wear the transmitters.
The recievers registers the location of the visitors. This information is sent to a
central server, which stores all the information in a database. Another system is
in charge of interpreting & visualisation of the information.
The transmitters consist of a radio-transmitter, which sends a unique number encoded by an encoder.
The number is set directly on the encoder chip, and it is sent at a short interval,
so recieving the unique number from several transmitters should be no problem,
as the transmitters are not transmitting all the time.
The recievers consist of a radio-reciever coupled to a decoder.
The decoder is controlled by a microcontroller. The decoder can listen to 16 numbers at once.
Since we want to use more numbers than that, the microcontroller is programmed to instruct the
decoder to rotate which numbers it listens to.
If a transmitter is in range of the reciever, the reciever picks up the number.
This number is transmitted by the microcontroller to a PC.
The number sent by the reciever is handled by a program written in C++ with wxWidgets on the pc.
The numbers are sent over a serial (rs232) cable, and read into the program.
This program's job is to keep track of who is near the reciever. Upon seeing someone,
that person is registered as being near the reciever, and this information is sent to the server.
The PC keeps a list of all the recievers near it. As long as the person stays in reach of the reciever,
the PC keeps getting the transmitters number. When a person is not seen by the reveicer for a
configurable amount of time, the PC notifies the server saying that person is no longer there.
The server uses Apache, php & mysql. It receives notifications from recievers on the arrival & departure of visitors.
Upon arrival, it stores the location and time at which the person arrived at a position. Once the server receivers
word that the visitor has left the location, the server computes how long it has been there, and stores that information.
If the server is told someone arrived at a reciever, but he hasn't left his previous position yet, that means the person
has moved to the new location before the previous reciever has registered the visitor as having left.
The server then silently assumes the visitor has left the old location before being at the new location.
The system responsible for the visualisation can get the data from the database in a lot of different ways,
and has to make assumptions based on this data. PHP or other techniques can be used to retrieve the data
from the database.
The transmitters & recievers are build on a custom circuit-board, designed with the gEDA suite,
especially with gschem & pcb, and uses a few custom .sym files for the components
used which were not in the default library.
 Radiotransmitter: type TLP434A, http://futurlec.com/Radio.shtml
 Encoder: type HT12E, http://www.commlinx.com.au/Holtek_HT12E.htm
 Radioreciever: type RLP434A, http://futurlec.com/Radio.shtml
 Decoder: type HT12d, http://www.commlinx.com.au/Holtek_HT12D.htm
 Microcontroller: type 16F628, http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE
 JAL programming language, http://jal.sourceforge.net/
 wxWidgets toolkit, http://wxwidgets.org
 Serial code borrowed from NQC, http://bricxcc.sourceforge.net/nqc/
 Apache webserver, http://httpd.apache.org/
 PHP preprocessor, http://www.php.net
 MySQL database, http://www.mysql.com
 gEDA suite, http://www.geda.seul.org/
 gschem schematic designer, http://www.geda.seul.org/tools/gschem/index.html
 pcb printed circuit board designer, http://www.geda.seul.org/tools/pcb/index.html