NFC:Arduino、Android與PhoneGap近場通訊

broadviewbj發表於2014-09-19

NFCArduinoAndroidPhoneGap近場通訊(第一本全面講解NFC應用開發的技術著作 移動智慧裝置近距離通訊程式設計實戰入門

【美】Tom Igoe(湯姆.伊戈)Don Coleman(.科爾曼)Brian Jepson(布萊恩.傑普森)   

金建剛 馮依 姚尚朗 譯

ISBN 978-7-121-23997-7

20149月出版

定價:65.00

244

16

編輯推薦

歡迎進入近場通訊(NFC)的世界,這種飛速發展的新技術能透過無線訊號在靠近的電子裝置間進行資料傳輸。本書作為動手指南,透過大量的例子、程式碼、練習和一步步的專案操作,教你如何在Android裝置、Arduino微處理器平臺和嵌入式Linux裝置上開發NFC 應用程式。

你也將學到用 NFC 資料交換格式(NDEF)寫應用程式,透過PhoneGapArduino node.js 裡提供的 NDEF 函式從 NFC 標籤裡讀訊息,或者與其他 NFC 裝置交換資料。如果你熟悉 HTML JavaScript,那麼你就準備好開始 NFC 吧。

■ 深入NFC體系結構,瞭解NFCRFID的關係

■ 用PhoneGap和它的NFC外掛寫Android上的NFC應用程式用例

■ 深入瞭解NDEF結構:測試已有的寫標籤程式,然後寫自己的標籤程式

■ 用PhoneGap事件監聽器來監聽和過濾NDEF訊息

■ 寫一個完整的Android應用程式來控制家裡的燈和音響

■ 用Arduino建立一個賓館登記應用程式,從入住到開門鎖

■ 寫一個P2PNFC訊息程式,在兩個Android裝置間傳訊息

■ 透過Raspberry PiBeagleBone上的例子來探索嵌入式Linux應用程式的開發

內容提要

NFCArduinoAndroidPhoneGap近場通訊》將帶你走入近場通訊(NFC)的世界,這是一種快速發展的技術,它能夠讓裝置近距離交換資料或使用無線電訊號。《NFCArduinoAndroidPhoneGap近場通訊》透過大量例項、程式碼樣例、練習以及逐步分析的專案,向你展示瞭如何為ArduinoAndroid PhoneGap 編寫近場通訊的應用程式。《NFCArduinoAndroidPhoneGap近場通訊》內容包括:深入研究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 應用。這裡面還會涉及一些技術,比如HTMLJavaScript,如果你能完全瞭解當然最好,不過就算你只大概瞭解一些基本的標籤、基本的語法也是沒問題的;一旦你跟著本書開發出了一個簡單的NFC 應用,後續你想怎麼去豐富它,我想那都是很容易的事情了。畢竟萬事開頭難。

在翻譯本書的過程中,由於從廣州來北京發展,所以翻譯的進度有一些落後,特別感謝本書的翻譯搭檔hexter 對我的幫助,在我由於其他事情而無暇顧及的時候幫我分擔了一部分工作。也要感謝出版社編輯對本書的校稿,因為翻譯其實是一件非常枯燥的事情,在翻譯的過程中難免會出現一些語句不通順,甚至上下文不銜接的問題,編輯們得一行行地看,看不懂的需要標記出來,或者提供更好的句子。所以很感謝他們,讓本書能順利出版,然後為那些想了解NFC,並且想做出點什麼的人提供一些好的入門材料。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-1273800/,如需轉載,請註明出處,否則將追究法律責任。

相關文章