嗨,我翻譯了一本書,在這裡打打廣告。
顧名思義,這本書的主題是NFC(近距離無線通訊),NFC裝置貼近後,便能透過無線電波傳遞訊號交換資料,諸如無線支付、電子錢包、悠遊卡,無不與NFC(或RFID)有關。
書中範例包含各式各樣的技術,將會介紹各種規格的NFC標籤,採用PhoneGap,可在各種行動裝置上運行,但以Android為主,也會有Node.js的範例,另外,不僅會介紹微控制器開發板Arduino,也會介紹單板電腦Raspberry Pi與BeagleBone,內容非常豐富。
書名:初探 NFC:近距離無線通訊與Arduino、Android 和 PhoneGap
原書名:Beginning NFC: Near Field Communication with Arduino, Android, and PhoneGap
作者:Tom Igoe、Don Coleman、Brian Jepson
譯者:我
出版社:碁峰
出版日期:2014年10月16日
頁數:250
內容簡介
第一章:導論
概觀本書。
第二章:NFC 與RFID
藉由比較 NFC(Near Field Communication,近距離無線通訊)與 RFID(Radio
Frequency Identification,無線射頻辨識)之間的差異,引領你進入 NFC 的世界。簡言
之,NFC 將 RFID 包含在內,任何短距離 RFID 可辦到的事,NFC 也都做得到,而且功
能更強,在這一章裡,你將看到大部分的重要詞彙,看看 NFC 系統的架構,得知你將
需要使用哪些工具以及去哪取得。
第三章:學習PhoneGap 與PhoneGap-NFC 程式庫
開始介紹 PhoneGap 以及供 PhoneGap 使用的 NFC 附加元件。將會安裝各種所需
程式庫與工具,以之在 Android 平台上開發 PhoneGap 應用程式,建置且執行你的第一
組應用軟體,在這一章結束時,你就能從 Android 裝置讀取 NFC 標籤了。
第四章:介紹NDEF
深入概括介紹 NDEF(NFC Data Exchange Format,NFC 資料交換格式)。
學習它的階層架構,親眼看看如何實際撰寫應用程式、運用不同類型的 NDEF 記錄來完
成功能相同的基本任務,並且瞭解每一種記錄類型如何影響使用者與 Android 裝置之間
的互動操作。
第五章:聆聽NDEF 訊息
內容包含在 Android 上聆聽 NDEF 訊息,你將學習如何過濾不同類型的標籤與
訊息,如何在開發 NFC 應用軟體時,充分利用 Android 的標籤分派系統。
第六章:NFC 應用軟體開發實例
將在 Android 上打造一支完整的 NFC 應用軟體,功能包括使用者互動操作、音樂
播放、以及控制與網站相連接的燈泡,全部都以 NFC 標籤為媒介。本章目標在於告訴
你如何規畫應用軟體的互動設計以及資料格式,充分發揮 NFC 的能力。
第七章:Arduino 與NFC
帶領讀者進入另一套平台:Arduino 微控制器開發平台,你將學習如何使用
Arduino 的 NDEF 程式庫來讀取與寫入 NDEF 訊息,還會使用 Arduino 與 Node.js 來開
發另一支完整的應用程式。
第八章:點對點對等式傳輸
介紹如何在 Android 上運用 NFC 進行點對點對等式資料交換,你將學會透過對等
方式交換的記錄類型如何影響接收方的裝置,也會介紹如何以 NFC 進行協商把傳輸大
量資料的任務換手交給別的無線傳輸技術,諸如藍牙與 WiFi。
第九章:NFC 與嵌入式系統
將 以 Raspberry Pi 與 BeagleBone 為 範 例, 告 訴 你 在 嵌 入 式 Linux 平 台 上 關 於
NFC 發展的最新狀況,你將瞭解目前在嵌入式 Linux 世界裡可做到哪些事情,此章也
會以 Node.js 示範幾個例子;在這個領域裡,仍有許多地方尚待改進、補強,所以請注
意,此章可不適合害怕接觸技術的人,你必須熟悉 Linux 的命令列模式操作介面,才能
看懂此章大部分的內容;不過話說回來,其中也涵蓋了某些 NFC 最令人感到驚奇的可
能性,所以是個值得一探究竟的領域。
附錄A:NFC 規格碼

您是偶的偶像,您的書怎可不買!!!
ReplyDelete聽您的語氣,莫非你是...?
Delete我是您的 super fans
ReplyDelete感謝!
Delete請問
ReplyDelete若是要透過NFC 讓Android與Arduino的PN532交握
需要從哪方面先著手呢 ?
你問的太籠統了。
Delete這本書裡面有講。
你好~
Delete我目前的問題是
Arduino可以依照書上說的範例WrtieTag 透過PN532傳遞到空白的RFID卡
再用手機的NFC讀RFID卡,那手機會跑出我寫的TAG
我想問的是有沒有辦法不透過RFID,讓手機去直接讀Arduino PN532直接發的TAG呢 ?
你說的是peer-to-peer exchange,這本書第8章介紹的主題。
Delete我想問 手機nfc要傳輸給pn532是靠什麼訊號傳輸uid還是imie碼 我手機要當tag傳輸資料給pn532接收然後arduino做控制 這是哪方面的傳輸方式
ReplyDelete不太懂你說的問題。
Delete應該就是NFC的peer-to-peer exchange吧。
你好 我想問手機要對nfc開發板接arduino 那有什麼範例可以測試 這個nfc開發板是我們可以使用的
ReplyDelete該怎麼測試nfc開發板可以讀取到手機資料
> 手機要對nfc開發板接arduino
Delete不懂。
請問 這程式碼是在說什麼 為什麼我arduino連接pn532會顯示Didn't find PN53x board 是什麼原因
ReplyDelete#include
#define SCK 13
#define MOSI 11
#define SS 10
#define MISO 12
PN532 nfc(SCK, MISO, MOSI, SS);
void setup(void) {
Serial.begin(9600);
Serial.println("Hello!");
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.print("Didn't find PN53x board");
while (1); // halt
}
// Got ok data, print it out!
Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX);
Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC);
Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
Serial.print("Supports "); Serial.println(versiondata & 0xFF, HEX);
// configure board to read RFID tags and cards
nfc.SAMConfig();
}
char DataOut[]="HELLO INITIATOR"; //16bytes
char DataIn[16];//Should be 16bytes
void loop(void) {
// Configure PN532 as Peer to Peer Target
if(nfc.configurePeerAsTarget()) //if connection is error-free
{
//trans-receive data
if(nfc.targetTxRx(DataOut,DataIn))
{
Serial.print("Data Received: ");
Serial.println(DataIn);
}
}
}
你用的程式庫跟板子,不是同一國的吧。
Delete我想問nfc手機程式透過pn532傳到arduino適用什麼指令
ReplyDelete像是透過tag是寫String const myUID = "56 60 CB 3B";
NfcTag tag = nfc.read(); // read the NFC tag
String scannedUID = tag.getUidString(); // get the NFC tag's UID
那想請問手機的程式指令要要怎麼寫
呃,您問的問題,不就是這本書的內容嗎?
Delete請查閱相關章節。
為什麼這個程式 用其他tag也可以控制繼電器 它們uid不同 為什麼還可以執行動作
ReplyDelete#include
#include "PN532_SPI.h"
#include "PN532.h"
#include "NfcAdapter.h"
String const myUID = "56 60 CB 3B";
const int relayPin = 9;
int relayState = 0;
PN532_SPI interface(SPI, 10);
NfcAdapter nfc = NfcAdapter(interface);
void setup(void) {
Serial.begin(115200);
nfc.begin();
pinMode(relayPin, OUTPUT);
}
void switchRelay()
{
if (relayState == 1)
relayState = 0; // 把繼電器狀態改為 ON
else
relayState = 1; // 把繼電器狀態改為 OFF
digitalWrite(relayPin, relayState); // 讓繼電器作動, 切換開關
Serial.print("Relay status: "); // 把繼電器的狀態印到 Serial Port
Serial.println(relayState);
}
void loop(void) {
if (nfc.tagPresent())
{
NfcTag tag = nfc.read(); // read the NFC tag
String scannedUID = tag.getUidString(); // get the NFC tag's UID
if( myUID.compareTo(scannedUID) == 0)
Serial.print("open door");
switchRelay();
delay(3000);
switchRelay();
}
}
看不出問題所在。
Delete用Serial.println把東西印出來吧,
查看myUID與scannedUID
This NFC application sounds promising! It's exciting to see how user interaction, music playback, and smart lighting control can all come together using NFC technology. For an engaging experience, consider integrating fun elements like uno online for multiplayer interaction. It would enhance user engagement and showcase NFC’s versatility. Looking forward to seeing how this project develops!
ReplyDelete