天天看點

NFC:Arduino、Android與PhoneGap近場通信

NFC:Arduino、Android與PhoneGap近場通信(第一本全面講解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

附錄ANFC 規範代碼 ............................................... 213

作者簡介

Tom Igoe 在紐約大學Tisch藝術學院教實體計算和網絡互動電訊項目的課程。

Don Coleman 是PhoneGap NFCplug-in 的作者,上司着 ChariotSolutions 的移動實踐。

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 感興趣,想了解它的工作原理,以及知道能用它做些什麼,那麼本書絕對是一個非常好的選擇。