ไม่ได้เขียนบทความในเชิงเทคนิคเสียนาน ขอเขียนหน่อยละกันนะ 🙂
เผอิญมีโอกาสได้ทำงานเกี่ยวกับ NFC บน Nexus S ก็เลยมาแบ่งปันประสบการณ์ว่าการที่ทีมแอนดรอยด์บอกว่า Android 2.3 Gingerbread สนับสนุน NFC นั้นมันเป็นอย่างไร
NFC คืออะไร
ก่อนอื่นก็คงขอพูดโดยคร่าวๆก่อนว่า NFC คืออะไร
NFC ย่อมาจาก Near Field Communication หรือการสื่อสารด้วยการจับให้อุปกรณ์มาอยู่ใกล้ๆกัน โดยระยะทำการจะอยู่แค่เพียง 5 ซม. เรียกว่าแทบจะจูบปากกันแล้วทีเดียว โดยอุปกรณ์ทั้งสองจะใช้การเหนี่ยวนำของขดลวดในการสื่อสารซึ่งกันและกัน หากนึกไม่ออกมันก็คือบัตรรถไฟฟ้าที่เราแค่แตะประตูก็เดินเข้าไปได้แล้วนั่นเอง
แต่เจ้าสิ่งที่เราเห็นบนรถไฟฟ้าอันนั้นจริงๆเรียกว่า Proximity หรือถ้าเรียกอีกชื่อหนึ่งที่คนอาจจะคุ้นเคยกว่าคือ RFID (ซึ่งจริงๆแล้วมันคือคนละคำกัน RFID เป็น Proximity แบบหนึ่ง) การทำงานจะต้องมีตัวที่เรียกว่าตัวอ่าน (Reader) และการ์ด (Tag)
ส่วน NFC นั้นก็คล้ายกับ RFID อีกนั่นแหละเพราะเบื้องหลังมันคือ Proximity ตัวหนึ่งและมันสนับสนุนเทคโนโลยี RFID ได้แบบเต็มรูปแบบ เราสามารถใช้ NFC ในการอ่านหรือเขียน RFID ได้ทันที แต่สิ่งที่ NFC เหนือกว่าคือ NFC สามารถปรับเปลี่ยนตัวเองให้เป็น Reader หรือ Tag ก็ได้! ยังผลให้เราสามารถนำมันไปใช้ในการสื่อสารระหว่างกันได้ โดยจะมีอยู่ 3 โหมดการใช้งานที่ใช้กันคือ
1) ทำตัวเป็น Reader
2) แปลงร่างเป็น Tag
3) คุยกันแบบ P2P
Android 2.3 พร้อมสนับสนุน NFC มันเป็นอย่างไรกัน!?!
ตอนแรกก็ไม่เข้าใจว่ามันสนับสนุนยังไงกัน ก็เลยมาลองเล่นเอง ปรากฎว่ามันทำงานเป็น Intent ตัวนึง …. แบบนี้!
เราสามารถสั่งเปิดปิด NFC ได้เหมือนที่ทำกับ WiFi และ Bluetooth
และทันทีที่เราเปิด ระบบจะสั่งยิงสัญญาณออกไปเพื่อรอรับสัญญาณกลับอย่างต่อเนื่อง แน่นอนว่ากินไฟแน่ๆ ถึงจะไม่ได้มากมายแต่ก็ทำให้แบตคุณหมดเร็วขึ้นอย่างเห็นได้ชัดชัวร์! ดังนั้นปิดได้ขอให้ปิดไว้
และเมื่อมี Tag มาเข้าใกล้ ระบบก็ยิง Intent ที่ชื่อว่า android.nfc.action.TAG_DISCOVEREDg ออกมา จากนั้นโปรแกรมทั้งหลายที่เรียกดัก Intent ไว้ก็จะเสนอหน้าออกมาให้เลือก
ซึ่งตรงนี้มันก็เหมือนกับว่าเราจะสั่งเปิดเว็บ ถ้าเราลงโปรแกรมไว้หลายตัว มันก็จะเด้งให้เลือกว่าจะเปิดเว็บด้วยโปรแกรมอะไร
เมื่อเราเลือกโปรแกรมเสร็จ ก็สามารถนำ ID และข้อมูลในการ์ดไปใช้งานต่อได้ทันทีในฟังก์ชั่น resolveIntent(…)
ตรงนี้จะเห็นความไม่สะดวกของการใช้งานเกิดขึ้นแล้ว เพราะสิ่งที่แอนดรอยด์วาง NFC ไว้คือการยิง Intent ออกมาให้โปรแกรมต่างๆรับไป แต่มันเป็นไปไม่ได้เลยที่ทุก Service ที่เกิดจาก NFC จะรวมอยู่ในโปรแกรมเดียวกัน ดังนั้นจึงไม่สามารถเลือกโปรแกรมใดโปรแกรมหนึ่งเป็น Default Application ได้ในการใช้งานจริง
สรุปคือการใช้งานจะต้อง (1) เปิด NFC (2) แตะบัตร (3) เลือกโปรแกรมที่จะเปิด … ซึ่งไม่สะดวกเอาเลยหละจริงๆแล้ว
ข้อดีและข้อเสียของ NFC
ข้อดี
– อ่านทะลุวัสดุหลายๆชนิดได้เช่นกระจก(บางๆ) หรือเนื้อคน
– การตรวจจับและเริ่มต้นเชื่อมต่อทำได้เร็วมาก
– ใช้ในที่มืดได้
– นำไปใช้แทนระบบ RFID ที่มีอยู่ในชีวิตประจำวันได้ … ตามหลักการแล้วเราสามารถเปลี่ยนมือถือของเราเป็นบัตรรถไฟฟ้าได้ทันที (แต่ไม่ใช่แบบข่าวใน DroidSans ที่เพิ่งเขียนไปนะ!)
– อายุการใช้งานยืนยาว อายุขัยค่อนข้างสูง
ข้อเสีย
– ใช้อ่านทะลุโลหะไม่ได้
– นำ Tag ไปวางไว้บนโลหะจะอ่านไม่ได้
– ความเร็วในการรับส่งข้อมูลยังไม่สูงมากนัก
– ต้นทุนสูงกว่า Barcode และ 2D Barcode (มากกกกก)
– ต้องพึ่งพา Hardware พิเศษ ต่างกับ 2D Barcode ที่ใช้กล้องมือถือธรรมดาๆได้เลย
การประยุกต์ใช้ NFC
เอาวีดีโอบางตัวมาให้ดูกันจะได้เกิดแรงบันดาลใจ ^_^
ตัวแรกเป็นของโนเกีย ทำเอาไว้เมื่อ 2 ปีที่แล้ว อธิบายถึงการใช้งานของ NFC บนมือถือของตนว่าจะเปลี่ยนโลกได้อย่างไรบ้าง
อันนี้เป็นวีดีโอสดๆใหม่ๆ เมื่อมีโรงแรมหัวใสพัฒนาระบบ Check-in โรงแรมตั้งแต่เราอยู่ที่สนามบิน เมื่อถึงโรงแรมเราสามารถนำมือถือไปเปิดประตูห้องได้ทันที!
ความคิดเห็นส่วนตัวเกียวกับ NFC
ทั้งนี้ทั้งนั้น NFC ไม่ใช่เทคโนโลยีใหม่เลย หากแต่เป็นเทคโนโลยีที่โนเกียเคยทำมาแล้วเมื่อ 4-5 ปีที่แล้ว จนถึงตอนนี้มีเป็นสิบรุ่นที่มี NFC แต่… NFC ก็ไม่เกิด คงเพราะว่า Target ของ Nokia User ต่างออกไปและไม่คิดที่จะใช้อะไรพวกนี้ แต่พอ Nexus S ประกาศตัวมาว่าสนับสนุนปุ๊บ ก็เริ่มเห็นวี่แววของอนาคตลางๆแล้วหละ ^_^ และยิ่งได้ยินแว่วๆว่า iPhone 5 ก็จะสนับสนุน ดังนั้น … NFC … มาแน่ 😀
อย่างไรก็ตาม NFC ยังต้องพึ่งพา Hardware โดยเฉพาะในการใช้งาน จึงเกิดเป็นคำถามว่า ดังนั้นเทคโนโลยีนี้จะเกิดหรือไม่ก็ขึ้นอยู่กับผู้ผลิตโทรศัพท์มือถือเป็นส่วนใหญ่ หากสุดท้าย Device ยังไม่สามารถเข้าถึงคนส่วนใหญ่ได้ เทคโนโลยีนี้ก็ยากนักที่จะเกิดในวงกว้าง
Resource ที่น่าสนใจสำหรับนักพัฒนา
1. ใน SDK ที่โหลดมา ค้นหาตัวอย่างที่ชื่อว่า NFCDemo ตัวนี้เหมาะกับการเริ่มต้นมาก
2. สำหรับการต่อยอด ดูมาหลายเว็บแล้วพบว่าเว็บนี้เวอร์คที่สุด ไปอ่านกันได้เลย http://programming-android.labs.oreilly.com/ch18.html
อย่างไรก็ตามมันจะมีเรื่ององค์ความรู้เกี่ยวกับ RFID หลายประการที่อาจจะต้องศึกษากันเพิ่มอีก อันนี้ก็ลองหาอ่านหาลองกันดูครับ ซับซ้อนนิดหน่อยแต่ก็ไม่ได้ยากเกินความสามารถแน่นอน ^_^
ความรู้ดีๆ จากนักพัฒนาดีๆ แบบนี้
เยี่ยม!!!!!
ว่ะว๊าวววขอบคุณสำหรับข้อมูลดีๆครับ
เบื่อกับ RFID เเล้วมาเล่นอันนี้ดูบ้างดีกว่า
NFC = nuuneoi fan club
เค้านี่ไง ตัว คนหนึ่ง NFC
อีกหน่อย Meeting ต้องทำป้ายไฟด้วยมั้ยครับ
กรี้ดดดด
ฮา 1 จึ๊ก
+Like
แบบนี้ เราก็สามารถก๊อบ RFID มาเก็บไว้ในเครื่องเราได้เลยหรอครับ ?
อนาคตเร็ว ๆ นี้ได้มีการ hack rfid แน่ ๆ เลย ฮ่าๆ
เข้ามาฮา กับ noonoei fan club อิอิ
ถ้าอ่านและเขียนได้ แสดงว่า NFC นำมา re-use ได้ใช่หรือเปล่า?
ถ้าหมายถึง Tag ก็ได้งับ ด้านในเป็น EEPROM
แต่ถ้าหมายถึงตัว NFC เลย มันปรับเปลี่ยนตัวเองเป็น Tag ที่ส่งค่าได้ตามใจได้เลย
ไม่เข้าใจตรง P2P อ่ะครับ ในเมื่อมันต้องใช้การเหนี่ยวนำของขดลวดในการสื่อสารซึ่งกันและกัน ต้องวางไว้ใกล้กัน พูดคุยกันตรงนั้นไม่ได้เหรอครับ LOL
ก็น่าจะเอาใว้ส่งข้อมูลครับ ไม่ได้พูด
คือว่าเคยเขียนโปรแกรมกับ contactless smartcard ใช้ chip (Mifare ISO14443 A) มา เห็น ISO ตัวเดียวกันเลย
ไม่รู้มันจะอ่านด้วยกันได้ป่าว ใครรู้ช่วยตอบทีครับ ขอบคุณครับ
ได้ครับ ทดสอบเรียบร้อย
แหล่ม ก้อปบัตรกันสนุก
ถ้ามือถือหายคงแย่แน่เลย
ยอดครับผม แต่ผมกลัวเรื่องความปลอดภัยอุ่ะครับ
มันอาจจะเป็นเหมือนดาบสองคมได้เหมือนพวกบัตรเครดิตอ่ะ
สัปดาห์ที่แล้วเห็นออกรายการ เช้าข่าวข้น ด้วยนี่ครับ
^_^
นึกว่าแบบ NFC ใช้ขึ้นรถไฟฟ้าในกระทู้แถวๆนี้
ชอบตัวที่ใช้ขึ้นรถไฟฟ้า กว่า =]
เจ๋งเลยคับ