Lập trình ứng dụng iBeacons App


Phát triển lập trình ứng dụng iBeacon App

Chúng ta đã có thiết bị iBeacon, với nó ứng dụng App có thể "nhìn" thế giới bằng cách nhận tín hiệu từ thiết bị ibeacon và tính toán ra khoảng cách gần nó, từ đó chúng ta có thể lập trình ứng dụng để làm nhiều điều thú vị.
   Các định nghĩa và thiết bị ibeacon

Một ứng dụng app cửa hàng
Dữ liệu quảng bá (advertising packet)
Một hiểu lầm về beacons là chúng giống như các thiết bị WiFi: mà truyền nội dung tới ứng dụng app, dẫn tới ý tưởng sai là thiết bị ibeacon tự bản thân nó truyền thông tin giảm giá, khuyễn mại, hình ảnh, phim và các nội dung khách tới ứng dụng app của người dùng. Thực ra hiểu đúng là thiết bị iBeacon không truyền gì thêm ngoài việc truyền một ít dữ liệu nhận dạng bằng sóng vô tuyến tới các thiết bị xung quanh nó.

Dữ liệu đó gọi là thông tin quảng bá (advertising packet), dữ liệu cực kỳ nhỏ, và thiết bị iBeacon không làm gì nhiều cả, vì vậy mức năng lượng tiêu thị rất thấp tốt cho nó và các thiết bị giao tiếp với nó như điện thoại và máy tính bảng để phát hiện và truyền thông tin quảng bá.

Ở mức độ đơn giản nhất, một gói dữ liệu bao gồm:
+ Một số nhận dạng gọi là UUID (số này có thể ngẫu nhiên), cộng với hai giá trị gọi là mã số chính (major) và mã số phụ (minor).
+ Các cờ (flags)
+ Mức công suất truyền thông tin (TX power)
+ Tên cục bộ
+ Các dịch vụ

Mã UUID và mã Major/Minor

Mỗi beacon có một tập mã nhận dạng. Trong đó UUID là mã nhận dạng chung từ nhà sản xuất thiết bị iBeacon. Còn mã Major/Minor thì giúp nhận dạng các loại beacons khách nhau và tùy vào mã đó chúng ta có kế hoạch triển khai tương ứng. Mã Major có thể đại diện cho đặt tính của cửa hàng, trong khi mã Minor đại điện cho từng beacons riêng lẻ ở trong cửa hàng đó. Những mã số này là chìa khóa để lập trình ứng dụng Apps để phải hồi chi tiết đối với từng beacons riêng lẻ.

Bộ mã của iBeacons


Tình toán khoảng cách gần (Proximity)

Chúng ta nghĩ vấn đề tính toán khoảng cách gần là một vấn đề lớn. Nó đại diện cho kỷ nguyên mà chuyển dịch từ bản đồ địa lý: ở đó thay vì ứng dụng apps biết nó ở vị trí địa lý nào, chuyển thành ứng dụng được hành động dựa trên cái gì gần vị trí nó. Trong hầu hết các trường hợp beacons là vị trí cố định, như gắn cố định ở cửa hàng.
Một ứng dụng app tính toán khoảng cách gần dựa trên mức năng lượng và độ mạnh tín hiệu của beacon. Ở thiết bị iOS, Apple đã tạo sẵn API để làm chuyện tình toán dễ dàng và có các class cho bạn tìm được ứng dụng app là thật gần (Immediate), gần (Near) hay là xa (Far) từ thiết bị beacon. Nhưng bạn cũng có thể sử dụng tín hiều và mức năng lượng để tình toán vị trí theo cách riêng của bạn.

Những thách thức

Khi bạn bắt đầu nhận dạng vị trí beacon, ngay lập tức bạn sẽ thấy được những thách thức chính từ beacon như: hiện tượng nhiễu trong môi trường ( do tường, vật liệu cản trở, gây ra nhiễu cho các beacon ..) và nhiều sự không rõ ràng, không giải thích được khi phần mềm chạy với điện thoại và máy tình bảng, làm khó khăn hơn việc cấu hình ứng dụng cho những thiết bị beacon. Những thử thách này bao gồm các trạng thái không mong đợi như:

+ Ứng dụng app phát hiện beacon, tìm ra beacon thứ 2, sau đó tự chuyển đổi không ổn định giữa 2 beacons
+ Ứng dụng app có thể tự chuyển đổi không ổn định giữa cách khoảng cách khác nhau, từ Near thành Far và ngược lại
+ Ứng dụng app có thể mất liên lạc/ tín hiệu với tất cả beacons trong khoảng thời gian
+ Hiện tượng trễ trong việc nhận tín hiệu thông báo ở màn hình khóa
...
Những lỗi này không phải là lỗi của nhà phát triển app, hãy theo dõi trên trang cộng đồng lập trình để giải quyết các vấn đề này.

Xây dựng hệ thống iBeacon cho bạn

Tối thiếu bạn cần:
+ Một beacon: Coi danh sách thiết bị beacon ở đây. Nhưng bạn cũng có thể thử nghiệm bằng cách biến iPhone hay iPad của bạn thành một beacon, coi ở đây.
+ Một ứng dụng app: với iOS, bạn sử dụng CoreLocation để lập trình ứng dụng của bạn tương tác với các beacons. Với android, bạn sử dụng Bluetooth LE Kitkat (4.3) framework để lập trình.

Ngoài ra bạn còn cần quan tâm tới những kinh nghiệm:
+ Ứng dụng quản lý beacon: để cập nhận firmware hay kiểm tra kết nối và lượng pin cho beacon
+ Dịch vụ quản lý nội dung: Có 2 lựa chọn: Bạn xây dựng cứng nội dung tích hợp trong ứng dụng app, mỗi lần thay đổi nội dung, người dùng phải cập nhật lại ứng dụng app. Cách thứ 2, nội dung được quản lý tập chung trên internet (tự thiết lập hệ thống hay sử dụng dịch vụ cloud), để dễ cập nhật thay đổi, nhưng thiết bị di động phải hỗ trợ WiFi, 3G, 4G để lấy thông tin, mỗi cách có ưu nhược điểm.

Tổng hợp từ Internet
Share on Google Plus

About Henry Tran

Henry Tran is iBeacon expert in Vietnam with over 10 years experience in technology applications.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.