NFC:Arduino、Android与PhoneGap近场通信

NFCArduinoAndroidPhoneGap近场通信(第一本全面讲解NFC应用开发的技术著作移动智能设备近距离通信编程实战入门

【美】Tom Igoe(汤姆.伊戈),Don Coleman(唐.科尔曼),Brian Jepson(布莱恩.杰普森) 著  

金建刚 冯依 姚尚朗 译

ISBN 978-7-121-23997-7

2014年9月出版

定价:65.00元

244

16

编辑推荐

欢迎进入近场通信(NFC)的世界,这种飞速发展的新技术能通过无线信号在靠近的电子设备间进行数据传输。本书作为动手指南,通过大量的例子、代码、练习和一步步的项目操作,教你如何在Android设备、Arduino微处理器平台和嵌入式Linux设备上开发NFC 应用程序。

你也将学到用 NFC 数据交换格式(NDEF)写应用程序,通过PhoneGap、Arduino 和 node.js 里提供的 NDEF 函数从 NFC 标签里读消息,或者与其他 NFC 设备交换数据。如果你熟悉 HTML 和JavaScript,那么你就准备好开始 NFC 吧。

■ 深入NFC体系结构,了解NFC和RFID的关系

■ 用PhoneGap和它的NFC插件写Android上的NFC应用程序用例

■ 深入了解NDEF结构:测试已有的写标签程序,然后写自己的标签程序

■ 用PhoneGap事件监听器来监听和过滤NDEF消息

■ 写一个完整的Android应用程序来控制家里的灯和音响

■ 用Arduino创建一个宾馆登记应用程序,从入住到开门锁

■ 写一个P2P的NFC消息程序,在两个Android设备间传消息

■ 通过Raspberry Pi和BeagleBone上的例子来探索嵌入式Linux应用程序的开发

内容提要

《NFC:Arduino、Android与PhoneGap近场通信》将带你走入近场通信(NFC)的世界,这是一种快速发展的技术,它能够让设备近距离交换数据或使用无线电信号。《NFC:Arduino、Android与PhoneGap近场通信》通过大量实例、代码样例、练习以及逐步分析的项目,向你展示了如何为Arduino、Android 和PhoneGap 编写近场通信的应用程序。《NFC:Arduino、Android与PhoneGap近场通信》内容包括:深入研究NFC 架构;为Android 写带有PhoneGap 和NFC 插件的应用样例;使用PhoneGap 事件监听器监听并过滤NDEF信息;创建一个能控制家中灯光和音乐的Android 应用;编写两个Android 设备之间点对点的NFC信息等。

目录

第1 章 简介 ................................................................. 1

本书面向哪些读者 .................................................................................................2

推荐阅读 ................................................................................................................2

本书有哪些内容 .....................................................................................................3

你需要什么 ............................................................................................................4

硬件 .................................................................................................................4

软件 .................................................................................................................6

其他不错的NFC 应用 .....................................................................................7

本书所使用的约定 .................................................................................................7

使用代码示例 ........................................................................................................8

Safari® 联机丛书 ....................................................................................................8

联系我们 ................................................................................................................9

致谢 .....................................................................................................................10

第2 章 NFC 和RFID .................................................. 11

什么是RFID ........................................................................................................ 11

什么是NFC .........................................................................................................12

RFID 如何工作 ....................................................................................................13

RFID 标准体系 ..............................................................................................13

NFC 如何运作 ......................................................................................................13

NFC 数据交换格式(NDEF) ........................................................................14

NFC 的体系结构 ..................................................................................................15

NFC 标签类型 ...............................................................................................16

从哪里买标签 ................................................................................................17

设备与标签类型匹配 ...........................................................................................18

能用NFC 做什么 .................................................................................................19

总结 .....................................................................................................................20

第3 章 从PhoneGap 和PhoneGap-NFC 库开始 ........ 21

为什么选择Android.............................................................................................21

你的第一个PhoneGap 应用:Hello, World ! .....................................................22

设置开发环境 ................................................................................................22

创建PhoneGap 项目......................................................................................27

重要文件 .......................................................................................................30

一个简单的定位应用程序 ....................................................................................32

NFC 读取器 .........................................................................................................38

安装NFC 插件 ..............................................................................................39

编写NFC 读取器应用程序 ...........................................................................40

故障排除 .......................................................................................................43

总结 .....................................................................................................................44

第4 章 NDEF 介绍 .................................................... 45

NDEF 结构 ...........................................................................................................45

TNF(类型名称格式) ...................................................................................46

载荷类型 .......................................................................................................47

载荷ID ..........................................................................................................48

载荷 ...............................................................................................................49

记录结构 ..............................................................................................................49

记录头部 .......................................................................................................50

一个NDEF 消息可以有多大 .........................................................................50

记录组块 .......................................................................................................51

参考 ...............................................................................................................51

NDEF 实战 ...........................................................................................................52

一个标签写入应用:Foursquare 签到 ..................................................................56

把一条NDEF 记录写入标签 .........................................................................57

写不同的记录类型 ........................................................................................60

PhoneGap-NFC 的NDEF 辅助函数概述 .......................................................65

总结 .....................................................................................................................67

第5 章 监听NDEF 数据 ............................................. 69

PhoneGap-NFC 的事件监听 .................................................................................69

一个NDEF 读取器应用 .......................................................................................71

监听多个事件 ................................................................................................72

读取NDEF 消息 ...........................................................................................75

使用记录类型过滤标签 .................................................................................78

使用MIME 类型过滤 ....................................................................................79

Android 标签分发系统 .........................................................................................82

intent 类型 .....................................................................................................83

Android 应用记录 .........................................................................................86

总结 .....................................................................................................................87

第6 章 一个NFC 应用实践 ......................................... 89

用户交互 .............................................................................................................91

了解Hue ..............................................................................................................92

Hue 数据格式 ................................................................................................94

Hue 的REST API ..........................................................................................97

Android shell ........................................................................................................97

PhoneGap 媒体API ..............................................................................................98

用户接口(UI) ....................................................................................................99

应用程序代码 .................................................................................................... 101

通用功能 .................................................................................................... 102

全局事件处理程序 ..................................................................................... 104

Hub 通信功能 ............................................................................................. 106

用户界面控件事件处理程序 ....................................................................... 110

音乐界面事件处理程序 .............................................................................. 113

NFC 事件处理程序 ..................................................................................... 118

启用后台调度 ............................................................................................. 120

总结 ................................................................................................................... 121

第7 章 Arduino 和NFC 介绍 .................................... 123

数字化遇上物理:Arduino ................................................................................ 123

NFC 的硬件核心 ................................................................................................ 125

Arduino 开发环境 .............................................................................................. 125

串行通信 ..................................................................................................... 129

安装Arduino 库 .......................................................................................... 130

Arduino 的NDEF 库 .......................................................................................... 132

读取Arduino 中的NDEF ............................................................................ 134

在Arduino 中写入NDEF ............................................................................ 137

微型控制器NFC 应用:酒店钥匙卡 ................................................................. 138

交互和数据格式 .......................................................................................... 140

Arduino 的NDEF 写入器设备 .................................................................... 142

Arduino 的NDEF 读取器和门锁装置 ......................................................... 148

Arduino NDEF 写入器设备的浏览器接口 ......................................................... 156

Node.js 的应用规范:package.json ............................................................. 156

客户端代码 ................................................................................................. 157

服务器端代码 .............................................................................................. 158

总结 ................................................................................................................... 162

第8 章 点对点(P2P)交换 ...................................... 165

在PhoneGap 中发送P2P 消息 ........................................................................... 167

在PhoneGap 中接收P2P 消息 ........................................................................... 175

切换 ................................................................................................................... 177

静态切换 ..................................................................................................... 178

在PhoneGap 中发送切换消息 ........................................................................... 178

用Arduino 进行P2P .......................................................................................... 184

卡仿真 ................................................................................................................ 184

总结 ................................................................................................................... 185

第9 章 嵌入式系统里的NFC .................................... 187

嵌入式Linux 设备和包管理器介绍 ................................................................... 187

网络、USB 和NFC .................................................................................... 188

嵌入式Linux 上的NFC :概览 .......................................................................... 190

通用功能 ............................................................................................................ 191

选择熟悉的编辑工具 ................................................................................... 191

了解包管理器 .............................................................................................. 191

设置日期和时间 ......................................................................................... 192

建一个下载目录 ......................................................................................... 193

BeagleBone 特性 ........................................................................................ 193

Raspberry Pi 特性 ....................................................................................... 193

安装NFC 工具 ................................................................................................... 194

安装libusb 兼容库 ..................................................................................... 195

安装libnfc .................................................................................................. 195

Raspberry Pi 或BeagleBone 安装测试 ....................................................... 196

安装libfreefare ........................................................................................... 196

libnfc 和libfreefare 的命令行工具 ..................................................................... 197

Node.js 的NDEF 读写 ....................................................................................... 199

标签写入器的Web 界面 .................................................................................... 203

标签控制物理输出 ............................................................................................. 205

BeagleBone 版本 ......................................................................................... 205

Raspberry Pi 版本 ....................................................................................... 207

总结 ................................................................................................................... 211

附录A NFC 规范代码 ............................................... 213

作者简介

Tom Igoe 在纽约大学Tisch艺术学院教物理计算和网络互动电讯项目的课程。

Don Coleman 是PhoneGap NFC plug-in 的作者,领导着 Chariot Solutions 的移动实践。

Brian Jepson 是 Maker Media 资深编辑,一个黑客,Providence Geeks and the Rhode Island Mini Maker Faire 的组织者之一。

前言

译者序

本书最开始是eoe 社区CTO 姚尚朗(iceskysl)推荐我们翻译的,很巧的是,之前我在上海的时候跟本书里面提到的Arduino 有过一面之缘,并亲眼目睹过对其进行编程,然后运行出来之后的效果。真的感觉非常的酷,并且也非常容易上手,并没有想象中的那么神秘。恰好本书的内容跟Android 也有非常大的联系,而NFC 也是目前移动互联网中非常热门的技术。试看了一些章节之后,知道本书其实也没有涉及非常神秘、难懂的程序设计,或是一些其他门槛很高的内容。

本书并不是完全为程序员编写的,你可以是程序爱好者,也可以是经验老道的程序员;可以是做软件的,也可以是做相关硬件的;可以是Android 开发者,也可以是iOS、黑莓、Windows Phone 等;甚至可以是Web 开发者。不管你使用什么语言进行开发,都能很快地上手。当然,如果你对我上面提到的技术都只是听过那也没关系,因为本书的门槛很低,只要你跟着本书一步步走,只要你对NFC 感兴趣,想了解它的工作原理,以及知道能用它做些什么,那么本书绝对是一个非常好的选择。

本书从什么是NFC 开始介绍,循序渐进地告诉我们如何去选择正确的、简单的工具来搭建一个简易的NFC 应用。这里面还会涉及一些技术,比如HTML、JavaScript,如果你能完全了解当然最好,不过就算你只大概了解一些基本的标签、基本的语法也是没问题的;一旦你跟着本书开发出了一个简单的NFC 应用,后续你想怎么去丰富它,我想那都是很容易的事情了。毕竟万事开头难。

在翻译本书的过程中,由于从广州来北京发展,所以翻译的进度有一些落后,特别感谢本书的翻译搭档hexter 对我的帮助,在我由于其他事情而无暇顾及的时候帮我分担了一部分工作。也要感谢出版社编辑对本书的校稿,因为翻译其实是一件非常枯燥的事情,在翻译的过程中难免会出现一些语句不通顺,甚至上下文不衔接的问题,编辑们得一行行地看,看不懂的需要标记出来,或者提供更好的句子。所以很感谢他们,让本书能顺利出版,然后为那些想了解NFC,并且想做出点什么的人提供一些好的入门材料。

时间: 2024-08-07 00:17:38

NFC:Arduino、Android与PhoneGap近场通信的相关文章

Android NFC近场通信03----读写MifareClassic卡

                                       Android NFC近场通信02----读写MifareClassic卡 一.MifareClassic卡 相关 一般来说,给予MifareClassic的射频卡,一般内存大小有3种: 1K: 16个分区(sector),每个分区4个块(block),每个块(block) 16个byte数据 2K: 32个分区,每个分区4个块(block),每个块(block) 16个byte数据 4K:64个分区,每个分区4个块(

Android NFC近场通信02----读写卡的准备工作

                    Android NFC近场通信02----读写卡的准备工作      由于公司接了一个听上去感觉比较NB的项目,给某油田做派工系统 .并由小女子负责Android客户端的开发工作~~开发时的Android设备看上去是比较高大上哈,防爆的,其实很多次同事们都想开玩笑的说试试摔地上,都防爆嘛,那肯定摔不坏的哈~~开发过程中需要用到NFC技术,所以就在网上学习并整理了一下关于Android nfc相关的知识~好了,切入主题,本文写读写卡前的准备工作: ps:这一

Android近场通信---高级NFC(二)

读写NFC标签 读写NFC标签,要涉及到从Intent对象中获取标签,并要打开与标签的通信.要读写NFC标签数据,你必须要定义自己的协议栈.但是,要记住在直接使用NFC标签工作时,你依然能够读写NDEF数据.这是你想要如何构建的事情.下例演示了如何使用MIFARE超薄标签来工作: package com.example.android.nfc; import android.nfc.Tag; import android.nfc.tech.MifareUltralight; import and

Android近场通信---NFC基础(一)(转)

转自 http://blog.csdn.net/think_soft/article/details/8169483 本文译自:http://developer.android.com/guide/topics/connectivity/nfc/nfc.html 本文介绍在Android系通过你所能执行的基本任务?它解释了如何用NDEF消息格式来发送和接收NFC数据,并且介绍了支持这些功能的Android框架API?有关更高级的话题,包括对非NDEF格式数据的讨论,情况“高级 NFC” NDEF

android中非阻塞socket通信

1.什么是同步与异步,阻塞与非阻塞 首先我们要明白搞明白:同步就等于阻塞?异步就等于非阻塞?这是不对的,同步不等于阻 塞,而异步也不等于非阻塞. 1)那什么是同步编程? 什么是同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回.根据这个定义,android中绝大多数函数都是同步调用.但是一般而言,我们在谈论同步.异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务.在android中,由于主线程(UI线程的不安全性),我们经常会用到handler的SendMessage

(转)android平台phonegap框架实现原理

(原文)http://blog.csdn.net/wuruixn/article/details/7405175 android平台phonegap框架实现原理 分类: Android2012-03-28 23:10 2919人阅读 评论(0) 收藏 举报 phonegap平台android框架apiblackberry 最近研究了下phonegap手机快速开发框架原理,重点探究了android平台上的phonegap框架源码,在参考cutesource写的phonegap源码分析后,更加深入理

MultipeerConnectivity框架,近场通信的基本使用

Multipeer connectivity是一个使附近设备通过Wi-Fi网络.P2P Wi-Fi以及蓝牙个人局域网进行通信的框架.互相链接的节点可以安全地传递信息.流或是其他文件资源,而不用通过网络服务.此框架是在iOS7以后推出,旨在替代GameKit下的GKPeerPickerController通信.通过此框架我们可以直接连接同一网络下的设备,让其直接进行类似微信,qq那样的即时通讯效果. 原理 其中通讯的原理,是利用节点来进行广播服务(标示符),其他节点可以通过服务(标示符)发现广播.

从AIDL开始谈Android进程间Binder通信机制

本文首先概述了Android的进程间通信的Binder机制,然后结合一个AIDL的例子,对Binder机制进行了解析. 概述 我们知道,在Android app中的众多activity,service等组件可以运行在同一进程中,也可以运行在不同进程中.当组件运行在同一进程中进行通信就显得比较简单,在之前的Android线程间通信机制中已经讲过了:而当它们运行在不同的进程中时,就需要使用我们本文中所要介绍的Binder机制了. Binder作为一种进程间通信机制,负责提供远程调用的功能(RPC),

Android进程间的通信之AIDL

Android服务被设计用来执行很多操作,比如说,可以执行运行时间长的耗时操作,比较耗时的网络操作,甚至是在一个单独进程中的永不会结束的操作.实现这些操作之一是通过Android接口定义语言(AIDL)来完成的.AIDL被设计用来执行进程间通信,另一种实现方式见博文Android进程间的通信之Messenger.本文我们将学习如何创建AIDL文件实现Android进程间通信.在正式学习之前,我们先澄清一些"事实". 关于Android Service 1.Android服务不是后台任务