Preface
The process of identifying physical objects is such a fundamental part of our experience that we seldom think about how we do it. We use our senses, of course: we look at, feel, pick up, shake and listen to, smell, and taste objects until we have a reference for themthen we give them a label. The whole process relies on some pretty sophisticated work by our brains and bodies, and anyone whos ever dabbled in computer vision or artificial intelligence in general can tell you that teaching a computer to recognize physical objects is no small feat. Just as its easier to determine location by having a human being narrow it down for you, its easier to distinguish objects computationally if you can limit the field, and if you can label the important objects.
Just as we identify things using information from our senses, so do computers. They can identify physical objects only by using information from their sensors. One of the best-known digital identification techniques is radio frequency identification , or RFID. The network identity of a physical object can be centrally assigned and universally available, or it can be provisional. It can be used only by a small subset of devices on a larger network or used only for a short time. RFID is an interesting case in point. The RFID tag pasted on the side of a book may seem like a universal marker, but what it means depends on who reads it. The owner of a store may assign that tags number a place in his inventory, but to the consumer who buys it, it means nothing unless she has a tool to read it and a database in which to categorize it. She has no way of knowing what the number meant to the store owner unless she has access to his database. Perhaps he linked that ID tag number to the books title or to the date on which it arrived in the store. Once it leaves the store, he may delete it from his database, so it loses all meaning to him. The consumer, on the other hand, may link it to entirely different data in her own database, or she may choose to ignore it entirely, relying on other means to identify it. In other words, there is no central database linking RFID tags and the things theyre attached to, or whos possessed them.
Like locations, identities become more uniquely descriptive as the context they describe becomes larger. For example, knowing that my name is Tom doesnt give you much to go on. Knowing my last name narrows it down some more, but how effective that is depends on where youre looking. In the United States, there are dozens of Tom Igoes. In New York, there are at least three. When you need a unique identifier, you might choose a universal label, like using my Social Security number, or you might choose a provisional label, like calling me Franks son Tom. Which you choose depends on your needs in a given situation. Likewise, you may choose to identify physical objects on a network using universal identifiers, or you might choose to use provisional labels in a given temporary situation.
The capabilities assigned to an identifier can be fluid as well. Taking the RFID example again: in the store, a given tags number might be enough to set off alarms at the entrance gates or to cause a cash register to add a price to your total purchase. In another store, that same tag might be assigned no capabilities at all, even if its using the same protocol as other tags in the store. Confusion can set in when different contexts use similar identifiers. Have you ever left a store with a purchase and tripped the alarm, only to be waved on by the clerk who forgot to deactivate the tag on your purchase? Try walking into a Barnes & Noble bookstore with jeans you just bought at a Gap store, and you might trip the alarms if the two companies use the same RFID tags but dont set their security systems to filter out tags that are not in their inventory.
Note
This short book presents a couple of RFID projects for Processing and Arduino from the first edition of Making Things Talk (OReilly 2007). When this book was updated to a second edition in 2011, the RFID examples were updated to work with newer RFID readers, specifically those that interoperate with the Near-Field Communications (NFC) readers found in mobile phones such as the Nexus S. Because there is still interest in the Parallax RFID reader used in the first edition, this book is here to preserve those projects for anyone whos interested in building them.
Who This Book Is For
If youve got some experience with Arduino and Processing, and are curious to experiment with radio frequency identification, this book is for you. You wont need any advanced skills: as long as you know enough about Arduino and Processing to run simple sketches, and are able to connect basic circuits on a breadboard with jumper wire, youll be able to use this book. If you dont have any experience with Arduino or Processing, the book Getting Started with Arduino , second edition, by Massimo Banzi (OReilly) and Getting Started with Processing by Casey Reas and Ben Fry (OReilly) will get you started.
Companion Kit
A kit is coming soon from Maker Shed to go along with this book. It will include all the components youll need, from the Arduino to the RFID reader. For more information, see http://www.makershed.com/.
Conventions Used in This Book
The following typographical conventions are used in this book:
ItalicIndicates new terms, URLs, email addresses, filenames, and file extensions.
Constant width
Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.
Constant width bold
Shows commands or other text that should be typed literally by the user.
Constant width italic
Shows text that should be replaced with user-supplied values or by values determined by context.
Tip
This icon signifies a tip, suggestion, or general note.
Caution
This icon indicates a warning or caution.
Using Code Examples
This book is here to help you get your job done. In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless youre reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from OReilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your products documentation does require permission.
We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: Getting Started with RFID by Tom Igoe (OReilly). Copyright 2012 Tom Igoe, 978-1-449-32418-6.
If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at .
Safari Books Online
Note
Safari Books Online (www.safaribooksonline.com) is an on-demand digital library that delivers expert content in both book and video form from the worlds leading authors in technology and business. Technology professionals, software developers, web designers, and business and creative professionals use Safari Books Online as their primary resource for research, problem solving, learning, and certification training.