ข้อแตกต่างของการพัฒนา iBeacon บน Android กับ iOS ที่ควรทราบ

บน iOS

  1. iBeacon เป็น service ของ OS ซึ่งทำงานตลอดเวลา นักพัฒนาต้องลงทะเบียน Proximity UUID, Major และ Minor (Major และ Minor สามารถเป็น nil ได้) ที่สนใจไว้ เมื่อ iOS ตรวจพบเจออุปกรณ์ตามเงื่อนไขที่ตั้งไว้ ก็จะแจ้ง App ของเราให้ทราบเพื่อตื่นขึ้นมาทำงานได้
  2. ข้อมูลที่ได้รับจาก service จะทราบเพียง Service UUID ซึ่งจะเปลี่ยนไปแต่ละครั้งที่พบ beacon ตัวนั้น ถ้า beacon ยังอยู่ในระยะ Service UUID จะคงที่ ถ้าห่างไปจนหายแล้วกลับเข้ามาใหม่ Service UUID จะเปลี่ยนไป ค่าที่สามารถรับค่าได้คือ Major, Minor, RSSI ค่าที่ไม่สามารถรู้ได้คือ Proximity UUID และ MAC Address
  3. สามารถโปรแกรมให้ iOS ทำตัวเป็น Broadcaster หรือ Receiver ก็ได้

บน Android

  1. บน Android ไม่มี iBeacon service นักพัฒนาต้องสร้าง service ขึ้นมาเองซึ่งเสี่ยงที่ต้องชนกับ service ของ App อื่นที่อาจจะใช้ Bluetooth LE เพื่อ scan เหมือนกัน ดังนั้นต้องตรวจสอบค่อนข้างละเอียดเพื่อไม่ให้แย่งกันใช้ Hardware ในเวลาเดียวกัน
  2. ข้อมูลที่ได้จากการ scan จะได้ Hardware address (MAC address), RSSI, Device Name และ Scan Record ใน Scan Record เป็นข้อมูลดิบต้องสกัดข้อมูลออกมาเองเพื่อให้ได้ Proximity UUID, Minor และ Major ตามข้อกำหนดของ iBeacon
  3. ณ ปัจจุบัน Android ไม่สามารถทำตัวเป็น Broadcaster ได้ คือจำลองตัวเองเป็นอุปกรณ์ iBeacon เพื่อกระจายสัญญาณไม่ได้ ทำได้แค่ Receiver ซึ่งไม่ใช่ข้อจำกัดทางฮาร์ดแวร์ แต่เป็นที่ API ของ Android เอง ในอนาคตน่าจะสามารถทำได้

การประมาณระยะห่างโดยประมาณจากค่า RSSI

ค่า RSSI หรือดัชนีความแรงของสัญญาณที่ได้รับ มีหน่วยเป็น เดซิเบล หรือหน่วยอื่นก็ได้

การคำนวนระยะห่างโดยใช้ RSSI สามารถทำได้หลายวิธี ในบทความนี้จะทำเสนอวิธีที่คำนวนได้ง่าย ๆ วิธีหนึ่ง ซึ่งมีหลักการง่าย ๆ เพียง 2 ข้อดังนี้

  1. วัดค่า RSSI ที่ระยะ 1 เมตร
  2. ทุก ๆ 6 dB ที่ลดลง ระยะจะเพิ่มขึ้นเป็น 2 เท่า

ตัวอย่างผลลัพธ์การคำนวน

  • สมมติวัดค่า RSSI ที่ระยะ 1 เมตร ได้ -51 dB
  • แปลว่า -57 dB จะได้ระยะ 2 เมตร
  • -63 dB จะได้ระยะ 4 เมตร
  • -69 dB จะได้ระยะ 8 เมตร
  • -75 dB จะได้ระยะ 16 เมตร
  • -81 dB จะได้ระยะ 32 เมตร

อย่างไรก็ตาม ค่า RSSI ที่ได้ ขึ้นกับอุปกรณ์ที่ส่งสัญญาณ และอุปกรณ์ที่ใช้รับสัญญาณ เช่นมี iBeacon 2 ตัวอยู่ห่างจากมือถือในระยะเท่า ๆ กัน แต่ค่า RSSI ที่ปรากฎที่มือถือก็อาจจะไม่เท่ากันได้ รวมถึงมือถือยี่ห้อเดียวกันรุ่นเดียวกัน ก็อาจจะได้รับค่า RSSI ไม่เท่ากันก็ได้

เรียบเรียงโดย สมศักดิ์ แซ่ลิ้ม

เริ่มต้นพัฒนา iBeacon App บน Android

ขั้นตอนแบบคร่าว ๆ

  1. สร้างโปรเจคใหม่ กำหนด Minimum SDK เป็น 18 ขึ้นไป
  2. เพิ่ม
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

    ใน AndroidManifest.xml

  3. หากต้องการให้อุปกรณ์ที่มีคุณบัติ BLE เท่านั้นที่จะติดตั้ง App นี้ได้ ให้ใส่
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>

    ในไฟล์ code>AndroidManifest.xml

  4. เตรียมออบเจ็ค BluetoothAdapter
    final BluetoothManager bluetoothManager =
            (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
    mBluetoothAdapter = bluetoothManager.getAdapter();
  5. ตรวจสอบว่าบลูทูธเปิดอยู่หรือไม่ หากยังไม่เปิด ให้พาไปเปิด หรือบังคับเปิด
    if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }

    ถ้าบังคับเปิด

    mBluetoothAdapter.enable()
  6. เริ่ม scan โดยใช้ mBluetoothAdapter.startLeScan(mLeScanCallback) ตัวอย่าง
    mBluetoothAdapter.startLeScan(new BluetoothAdapter.LeScanCallback() {
        @Override
        public void onLeScan(final BluetoothDevice device, int rssi,
                byte[] scanRecord) {
            Log.d(TAG, "Found beacon " + device.getAddress());
       });
  7. ยังไงควรตั้งเวลาหยุด scan ไว้ด้วย เพราะการ scan ตลอดเวลาจะกินแบตมาก การหยุดใช้ mBluetoothAdapter.stopLeScan(mLeScanCallback)

ที่มา: developer.android.com

Apple Store ใช้เทคโนโลยี iBeacon ส่งข้อมูลให้ผู้ซื้อระหว่างเดินชมสินค้านั้น ๆ

เมื่อกี่วันที่ผ่านมานี้ทาง Apple ได้นำระบบ iBeacon เข้ามาใช้ใน Apple Store  ซึ่งจะช่วยให้ผู้ซื้อจะได้รับข้อมูลหรือโปรโมชันของสินค้าตัวนั้นระหว่างที่กำลังเดินชมสินค้า

ตัวอย่างการใช้งาน ลองนึกดูในทำนองที่ว่า วันนี้คุณเดินเข้าไปดู Apple Store แล้วต้องการไปเลือกซื้อ iPad สักเครื่อง ระหว่างนั้นเองข้อมูลที่เกี่ยวข้องกับ iPad ก็จะถูกส่งเข้ามาที่ iPhone ของคุณทันทีระหว่างที่เดินไปทั้งที่อาจจะยังไม่ถึงสินค้าตัวนั้นด้วยซ้ำ Continue reading

ยืนยัน Apple จับมือ PayPal ทำระบบการชำระเงิน หนุน iBeacon

Paypal ซึ่งมี eBay เป็นเจ้าของกำลังมาเป็นส่วนหนึ่งของระบบการชำระเงินของ Apple และจะทำงานกันอย่างใกล้ชิดด้วยกับบริษัทที่ Cupertino จากข่าวลือก่อนหน้าได้รับการยืนยันว่าเป็นจริงจากผู้บริหารท่านหนึ่งในบริษัทบริการระบบชำระเงิน Continue reading

Macy’s ลอง iBeacon ส่งข้อมูลเข้า iPhone ลูกค้าทันทีที่เดินเข้าร้าน

ความน่าตื่นเต้นของความเคลื่อนไหวครั้งนี้ของ Macy’s คือการนำเทคโนโลยีมาทำให้ iPhone ของทุกคนรู้ว่าเจ้าของเครื่องกำลังเดินเข้าไปในร้านค้าใด ก่อนจะเริ่มเสนอโปรโมชันพิเศษที่ควรมองหาในร้านนั้น

รายงานระบุว่า Macy’s คือผู้ค้าปลีกรายแรกที่เปิดตัวแคมเปญสนับสนุนคุณสมบัติพิเศษของ Apple อย่าง iBeacons ซึ่งเป็นรูปแบบ Bluetooth hotspot ที่แอปเปิลเพิ่งเปิดตัวในระบบปฏิบัติการ iOS7 โดย Macy’s จะนำ iBeacons มาใช้กับแอปพลิเคชันชื่อ Shopkick มาใช้งานจริงภายในปีนี้

Continue reading

Philips ใช้เทคโนโลยี iBeacon ของแอปเปิล ทำระบบแสงไฟอัจฉริยะสำหรับนักช้อป

Philips กำลังนำเทคโนโลยี iBeacon ที่ช่วยระบบ Location-Base ในร้านค้า ห้างสรรพสินค้า มาออกแบบระบบแสงไฟที่ช่วยบอกนักช้อปว่าของที่ต้องการซื้ออยู่ตรงไหนแบบ Personalized เพียงแค่แตะที่หน้าจอสมาทโฟนแล้วแสงไฟแต่ละจุดในร้านก็จะบ่งบอกตำแหน่งของชั้นวางได้ Continue reading

iBeacon เริ่มติดตั้งที่ร้านค้าท้องถิ่น ช่วยนักช้อปประหยัดสตางค์

แอปเปิลได้เริ่มเข็น iBeacon ออกมาจำหน่ายที่ร้านค้าหลักแล้วและเทคโนโลยีนี้ได้เคยทดสอบที่ Sun Life Stadium ในรัฐฟลอริด้า และมันจะถูกใช้ร่วมกับฟีเจอร์ indoor-mapping ใน iOS7 สำหรับซุปเปอร์มาเก็ตในท้องถิ่นบางแห่ง Continue reading

คู่แข่ง iBeacon บน Android

การโฆษณาโดยบอกพิกัดจะกลายเป็นเทรนด์ใหม่ของปีนี้ หลังจากที่ Apple เริ่มนำ iBeacon มาให้บริการในร้านกว่า 254 สาขา

iBeacon ก็คือการใช้บลูทูธในการส่งสัญญาณ ส่งการแจ้งเตือนไปยังสมาร์ทโฟนของลูกค้าที่กำลังเดินอยู่ในร้าน รวมถึงนำทางไปหาสินค้าที่ต้องการได้ ทางด้าน Foursquare เองก็เพิ่งเปิดตัวบริการคล้ายๆ กัน ในการติดตามพิกัดและส่งการแจ้งเตือนไปยังมือถือ เมื่อมันตรวจจับได้ว่าคุณกำลังอยู่ใกล้สิ่งที่สนใจ Continue reading

iBeacon ถูกนำมาใช้กับ Super Bowl เพื่อการโฆษณา…

กีฬาอเมริกันฟุตบอลนั้น ถือได้ว่าเป็นกีฬาประจำชาติของคนสหรัฐฯ ก็ว่าได้ และแน่นอนว่าคนจำนวนมากเข้ามามีส่วนร่วมกันในทุกๆ สัปดาห์จนกระทั่งจะมีรอบชิงชนะเลิศหรือศึก Super Bowl ประจำปีนี้ในวันพรุ่งนี้แล้ว และเมื่อเป็นที่รวมของคนจำนวนมาก การโฆษณาสำหรับการแข่งขัน Super Bowl จึงถือได้ว่าเป็นแหล่งของเม็ดเงินมหาศาล แต่รูปแบบของการโฆษณาเดิมๆ จะเปลี่ยนไป เมื่อมีการนำ iBeacon ซึ่งนำเอา Location Based มาช่วยให้รูปแบบการโฆษณามีประสิทธิภาพและดึงดูดมากขึ้น Continue reading