RFID+Menu

=__Week 5: Production Release__= =Presentation:= [] = =

=__Week 4: Beta__= =Hardware Update= = =

=__Week 3: Alpha__= =Hardware Update= ==
 * Gave up on right-angle headers
 * ID-12 RFID reader works; range between 3 cm and 10 cm
 * Will probably need to provide RFID scan success
 * Server, POST, and GET working (we're using POST)

=__Week 2: Detailed Design__= =Backend= The backend was created with scaffolding, and now provides basic functionality: git repo: [] production test: []

The only time information is shared between the arduino and server is creating an order from the scanned rfids. This is done with the following POST: /orders/from_tags?table_num= &rfid[]= &rfid[]=

=Hardware Update=

=__Week 1: Specification__= =Concept= This project will provide a fun and easy way to order food at a restaurant. Patrons place small "tokens" (provided) of the food they wish to order onto a re-purposed lazy Susan. These would ideally be miniature models of the food items they represent. The patrons submit their order by placing the "submit" token placed onto the lazy Susan and spinning it to send the order is sent to the kitchen. Feedback at the table will be kept at a minimum, perhaps just a light or buzzer to indicate a successful submission, and another light to communicate when the order is ready. The system may be expanded to include tokens for other items, such as water and silverware.

Each token will contain a passive RFID tag sticker, and the lazy Susan will contain an RFID reader that is fixed beneath. The RFID reader will be connected to an Arduino board, which will send and receive data over a WiFi connection (using a WiFly Arduino shield). The backend will be a Ruby on Rails web application hosted on Heroku. The kitchen connects to this web application to read and update the status of orders.

=Storyboard=

Kitchen interface


=Architecture=

Lazy Susan to RFID Reader

 * A token (food item, etc.) on the lazy Susan physically passes over the RFID reader while the lazy Susan is spinning
 * The RFID reader's read signal (a 125 kHz signal) activates the RFID tag stuck onto the token
 * The token replies with its formatted ID to the RFID reader

RFID Reader to Arduino

 * ground and power pins (5V)
 * reset pin held high (5V)
 * transmit data pin (serial, 9600 Baud)

Arduino to WiFly Shield

 * ground and power pins (5V, regulated to 3.3V by the shield)
 * 4 data pins for [|SPI communication]
 * [|SparkFun WiFly shield library]

WiFly Shield to LAN (Internet)
The WiFly shield will connect to one of the University's wireless networks - likely UR_RC_GUEST.

LAN (Internet) to Server
To submit an order, an http post with the table and the rfid tags would be sent. The order for table 10 could look like:

/orders/new?table=10&order_item[]=45&order_item[]=12&order_item[]=2&order_item[]=22

The server then looks up what each of the rfid tags represents (two burgers, a pizza and a grilled cheese) and makes new Order and Order_Item entries.

Backend Data Model
The data flow to and from the backend is determined by the data model. Here is a preliminary model. Each table has implicit an implicit _id field:

Items - the items we can offer.
 * description (eg "burger")
 * price

Tags - the physical rfid tags. There can be more than one tag per item.
 * rfid (unique)
 * item_id

Orders - correspond to the rows seen in the mockup.
 * time
 * table_num
 * status_id

Order_Items - the items that make up an order.
 * item_id
 * order_id

Statuses - the different statuses that an order can have
 * description (eg "done", "sent to table")

LAN (Internet) to Kitchen Client
The client can read and update the status of orders. REST dictates that a request to read all orders would be an http get to /orders, and a request to update would be an http put to /orders/[id].

=Bill of Materials=
 * Arduino Uno - $32.53 (Gabe's)
 * ID-12 125 kHz RFID reader - $29.95
 * RFID reader breakout board - $0.95
 * sample 125 kHz RFID tag card - $1.95
 * WiFly shield - $89.95
 * Arduino stackable header kit - $1.50
 * 12" male-male jumper wires - $4.50
 * break away female headers - 2X$1.50 = $3.00
 * [|12" male-female jumper wires] - $4.50
 * 30mm 125 kHz EM4102 RFID tags - 10x$0.99 = $9.90
 * lunch foods set - $19.97
 * PARTS TOTAL: **$198.70**


 * shipping SparkFun #1 - $3.56
 * shipping SparkFun #2 - $3.56
 * shipping SparkFun #3 - $3.90
 * shipping Trossen Robotics - $7.99
 * shipping Amazon.com - $0.00
 * **GRAND TOTAL: $217.71 **