iBeacon SDK trên Android

ibkcon

Các trường hợp sử dụng và mô hình kinh doanh có thể có cho đèn hiệu cho phép tương tác người dùng phụ thuộc vào vị trí ngay cả trong các tòa nhà hiện đang được tranh luận sôi nổi. Quảng cáo tại cửa hàng và giảm giá, thanh toán di động, dẫn đường, phương tiện giao thông công cộng, nội địa hóa trong các tòa nhà công cộng và bảo tàng và tự động hóa nhà chỉ là những mẹo của tảng băng trôi. Và tất nhiên là bộ sưu tập dữ liệu toàn diện – bây giờ mới và với thông tin vị trí chính xác. Trước khi tìm hiểu thêm về công nghệ iBeacon, chúng tôi cũng sẽ đề cập đến iBeacon SDK trong bài viết.

Sự cường điệu là gì?

Giao thức iBeacon do Apple phát triển dựa trên Bluetooth Low Energy được hỗ trợ bởi nhiều thiết bị. Bài viết giải thích iBeacons và Bluetooth Low Energy và sử dụng ví dụ về phát triển ứng dụng Android cho danh sách mua sắm phụ thuộc vào vị trí để hiển thị tương tác phụ thuộc vào vị trí của ứng dụng với iBeacons. Việc triển khai dựa trên SDK MOKOSmart iBeacon.

iBeacon, Bluetooth 4.0, ĐÃ TRỞ THÀNH, THÔNG MINH. Thắng?

Công nghệ cơ bản cho iBeacon là Bluetooth. Bluetooth năng lượng thấp (ĐÃ TRỞ THÀNH), thường được gọi là nhãn tiếp thị thông minh Bluetooth, đã được đưa vào phiên bản 4.0 của chuẩn Bluetooth. BLE không tương thích ngược với các phiên bản trước có tên Bluetooth Classic. Bluetooth 4.0 xác định rằng các thiết bị tuân thủ tiêu chuẩn phải thực hiện một hoặc cả hai biến thể, I E. Năng lượng thấp hoặc cổ điển.

BLE được triển khai trên hầu hết các điện thoại thông minh hiện tại như iPhone 4+ và Samsung Galaxy 3+. Một chiếc iPhone có thể hoạt động như một bộ thu tín hiệu iBeacon và – không giống như Android – như một đèn hiệu chinh no. Android bao gồm trình điều khiển BLE từ phiên bản API 18, I E. Android 4.3. Ngẫu nhiên, máy tính hiện tại cũng có khả năng BLE. Trong Windows, Tuy nhiên, Các trình điều khiển chỉ có trên Windows từ Windows 8 và kể từ khoảng giữa năm 2011, BLE đã có sẵn trên máy tính Apple.

BLE tiếp tục hỗ trợ nhiều thiết bị ngoại vi như máy đo nhịp tim và máy bay trực thăng đồ chơi, nhiệt kế, thiết bị thể dục và bàn chải đánh răng, Đúng, bàn chải đánh răng và giày thể thao.

Thú vị khi kết nối với iBeacons là Cảm biến

Tag từ Texas Cụ, ngoài chức năng là iBeacon còn có thể đo nhiệt độ, độ ẩm, sức ép, và tăng tốc. Thẻ cảm biến cũng đi kèm với một con quay hồi chuyển, từ kế, và hai nút phần cứng. Thiết bị lý tưởng để điều khiển từ xa các bài thuyết trình trong khi truyền và hiển thị độ ẩm và nhiệt độ của tay loa Loa. Tôi nghĩ rằng dự án sandpit tiếp theo của tôi sẽ là giai đoạn sợ hãi. Bạn có thể tìm thấy danh sách chi tiết các thiết bị trên trang web Bluetooth chính thức.

GATT đã sẵn sàng

Mô hình truyền thông được các thiết bị sử dụng để trao đổi dữ liệu được gọi là GATT – Hồ sơ thuộc tính chung. GATT xác định vai trò của máy khách và máy chủ. Máy khách yêu cầu dữ liệu từ máy chủ thông qua các dịch vụ. Một nhóm dịch vụ một số cặp khóa / giá trị nguyên tử, được gọi là đặc điểm. Cả hai dịch vụ và đặc điểm được xác định thông qua UUID và cũng có thể chứa các mô tả khác. Các dịch vụ và đặc điểm của chúng được phân loại theo dạng hồ sơ; đặc điểm kỹ thuật xác định toàn bộ phạm vi của chúng từ các lĩnh vực chăm sóc sức khỏe, thể thao và thể dục và – trong trường hợp của chúng tôi thú vị – cảm biến gần. Các cấu hình riêng lẻ cũng như các dịch vụ và đặc điểm của chúng có thể được tìm thấy trong cổng thông tin dành cho nhà phát triển Bluetooth trong Thông số kỹ thuật của GATT.

gatt ibeacon

Đến đèn hiệu

Vậy iBeacons là gì? iBeacon là một công nghệ rất đơn giản (và nhãn hiệu của Apple cho phép tương tác phụ thuộc vào vị trí với các ứng dụng. Đèn hiệu gửi tín hiệu có thể nhận được bằng các thiết bị tương thích BLE và được xử lý bởi các ứng dụng được cài đặt trên nó Tín hiệu chứa nhận dạng đèn hiệu và cường độ tiếp nhận. iBeacons chính họ là, vì thế – trái với những tuyên bố không chính xác trên báo chí – không thể cung cấp nội dung hoặc theo dõi hành vi của khách hàng. Đây là trách nhiệm của các ứng dụng nhận và do đó các nhà phát triển.

iBeacon IRL

Việc triển khai iBeacons lớn hơn ở Đức có lẽ sẽ còn lâu nữa, nhưng có một số ví dụ từ Hoa Kỳ và Hà Lan. Ví dụ, Bóng chày Major League đã được trang bị 28 sân vận động với iBeacons và sử dụng chúng, Trong số những thứ khác, để đăng ký trong ứng dụng MLB “Tại sân bóng”.

Một cuộc trưng bày đã được thực hiện tại Nhà Rubens ở Antwerp, nơi cung cấp thông tin cơ bản như tia X của tranh và trò chơi gắn thẻ địa lý cho du khách.

Ví dụ điển hình về kích thước đến từ chính Apple. Kết thúc 250 Cửa hàng Apple đã được trang bị iBeacons. Kết hợp với ứng dụng Apple Store, tin nhắn phụ thuộc vào địa điểm được gửi đến người mua đang ở trong cửa hàng. Tuy nhiên, các tương tác có thể hiện tại dường như khá hạn chế: Báo cáo đánh giá đầu tiên chỉ có hai khác nhau (và khá chung chung) tin nhắn mà họ sẽ nhận được. Ưu đãi đặc biệt hoặc thông tin cụ thể về các sản phẩm riêng lẻ gần đó không được cung cấp.

Chức năng

iBeacon SDK không sử dụng cấu hình BLE riêng, mà là các gói quảng cáo Bluetooth, I E. gói phát sóng, được sử dụng để khám phá các thiết bị Bluetooth. Nếu bạn quan tâm đến cấu trúc chính xác của gói, bạn có thể đọc cái này, ví dụ, trên blog Adam Warski sườn.

Gói như vậy được gửi theo định kỳ có thể được cấu hình qua GATT. Nó chứa UUID của đèn hiệu, thường được cấu hình sẵn bởi nhà sản xuất. Vì vậy, tất cả các đèn hiệu MOKOSmart đều gửi cùng một UUID. ID chính và ID phụ cũng được sử dụng để xác định các đèn hiệu riêng lẻ. ID chính có thể đại diện, ví dụ, một chi nhánh của một cửa hàng hoặc một nhà hàng trong chuỗi nhượng quyền, ID phụ một kệ hoặc bảng.

Hơn nữa, cường độ tín hiệu được bao gồm trong gói quảng cáo, có thể được sử dụng để đo khoảng cách của máy thu từ đèn hiệu. Tuy nhiên, bạn không thể mong đợi độ chính xác cao ở đây, vì tín hiệu có thể bị cản trở bởi các chướng ngại vật không gian như đồ đạc hoặc con người.

IBeacon SDK cung cấp hai khái niệm cho sự tương tác của một ứng dụng với thông tin này: giám sát phạm vi và khu vực. Khi phạm vi, khoảng cách đến đèn hiệu được xác định. Do sự không chính xác được đề cập ở trên, điều này diễn ra chỉ trong ba giai đoạn. “Ngay tức khắc” là một khoảng cách vài cm, “Ở gần” là một vài mét và “Xa” là một khoảng cách hơn mười mét. Phạm vi chỉ có thể nếu ứng dụng nhận được kích hoạt.

Điều này là không cần thiết để giám sát khu vực. Ở chế độ này, một ứng dụng không hoạt động cũng có thể được thông báo khi vào hoặc rời một khu vực được xác định bởi một hoặc nhiều đèn hiệu. Mới nhất bây giờ nó đã trở nên rõ ràng những gì làm cho công nghệ này hấp dẫn cho quảng cáo và bán lẻ. Ngoài ra, cho hầu hết các cảnh báo, cường độ truyền và khoảng thời gian có thể được cấu hình để tối ưu hóa thời lượng pin dựa trên các điều kiện địa phương.

“Hầu hết các cảnh báo” ngụ ý rằng có nhiều hơn một nhà sản xuất iBeacons trên thị trường. Trong thực tế, có khá nhiều: MOKOSmart, Kontakt.io, Nước đá, Tôi đánh giá cao bạn, và Gimbal. Ngoài phần cứng, các nhà sản xuất này cũng cung cấp dịch vụ iBeacon SDK và các giải pháp đám mây để quản lý đèn hiệu. Những người có sở thích trong chúng ta có thể tự thiết lập các máy phát iBeacon với rất ít nỗ lực sử dụng Raspberry Pi hoặc Arduino.

Danh sách nhấp nháy

Chúng ta hãy giả sử tình huống sau đây cho ví dụ thực hiện: Nhà phát triển đang ở trong siêu thị vào sáng thứ bảy. Trẻ em đói đang chờ ở nhà và buổi chiều có bán bánh nướng ở trường.. Chỉ sau đó, cuối tuần mới thực sự bắt đầu. Vì vậy, lý do tốt để nhanh lên. không may, danh sách mua sắm dài và không phù hợp với cách bố trí của siêu thị. Nếu siêu thị được trang bị iBeacons ở các bộ phận khác nhau, một ứng dụng danh sách mua sắm có thể làm nổi bật các mục thích hợp và giảm đáng kể mức độ căng thẳng của (tất nhiên là hoàn toàn hư cấu) nhà phát triển.

Vì ứng dụng của chúng tôi phải giao tiếp với Bluetooth, trước tiên chúng tôi yêu cầu ủy quyền BLUETOOTH và BLUETOOTH_ADMIN trong tệp kê khai Android. Để có thể sử dụng dịch vụ được cung cấp bởi API ước tính để tương tác với iBeacons, chúng ta cũng phải làm cho nó được biết đến và đặt API đã tải xuống trong thư mục libs / của chúng ta.

Nguyên mẫu của chúng tôi bao gồm một đơn giản, danh sách điền sẵn và các khu vực được xác định trước, I E. các bộ phận trong siêu thị của chúng tôi. Một mục danh sách biết nó được gán cho khu vực nào. Trong ví dụ của chúng tôi, chúng tôi chỉ gán một đèn hiệu cho mỗi khu vực. Cũng có thể kết hợp một danh sách các đèn hiệu vào một khu vực. Hoạt động chính chịu trách nhiệm nhận biết khu vực hiện tại và chuyển thông tin này đến bộ điều hợp, có trách nhiệm làm nổi bật các mục danh sách. Ngoài ra, chúng tôi thêm tùy chọn để chọn vùng hoạt động mà không có đèn hiệu để làm cho giao diện người dùng của chúng tôi có thể kiểm tra mà không cần phần cứng bổ sung.

Trong hoạt động Lừa trên phương thức Tạo, chúng tôi khởi tạo Trình quản lý Beacon từ MOKOSmart cho ứng dụng của chúng tôi. Chúng tôi sử dụng trình lắng nghe để theo dõi khu vực bằng cách làm cho khu vực hiện tại được biết đến với bộ điều hợp của chúng tôi và xác định khoảng thời gian để quét đèn hiệu. Trong ví dụ, chúng tôi xác định rằng một giây nên được quét và sau đó 250 tôi nên đợi. Các giá trị này được chọn tương đối tích cực để có kết quả nhanh trong các thử nghiệm. Thực tế, sự cân bằng khó khăn giữa khả năng đáp ứng vs. Để đáp ứng tuổi thọ pin. Trong nguyên mẫu này, chúng tôi cũng điền vào danh sách mua sắm của chúng tôi với các giá trị giả. Chúng tôi bắt đầu hoặc dừng theo dõi vào ngày () Bắt đầu hoặc trên đỉnh () phương pháp của hoạt động chính.

Mục danh sách

Bộ điều hợp được triển khai như là một dẫn xuất của Bộ điều hợp android.widget.Array và ghi đè lên phần Xem () phương pháp, được gọi cho mỗi dòng được hiển thị. Tiêu đề của mục được viết trong dòng đầu tiên của đánh giá được xác định trong bố cục, trong khu vực thứ hai.

Như có thể thấy trong Liệt kê 1, vùng đã nhập được chuyển đến bộ điều hợp trong Vùng đã nhập () gọi lại của MonitorListener, được gán cho BeaconManager của chúng tôi: danh sách mục Adaptor. cách ly (khu vực). Khi gọi getView (), cái này kiểm tra xem vùng của mục trong dòng có khớp với vùng hiện tại không. Nếu đây là trường hợp, nó tô màu nền của dòng. Ngoài ra hoặc thay thế, người ta cũng có thể đặt các mục cho khu vực hiện tại ngay từ đầu bằng cách sắp xếp danh sách.

Mã của ứng dụng là rõ ràng; Nó không mất nhiều nỗ lực triển khai để nhận tín hiệu iBeacon và xử lý chúng trong ứng dụng. Các khái niệm phạm vi và giám sát của iBeacon được ánh xạ trong SDK iBeacon MOKOSmart để chúng có thể được sử dụng một cách trực quan. Mã nguồn đầy đủ của ứng dụng có thể được tìm thấy trên GitHub.

Kết luận và triển vọng

Chúng tôi thấy rằng việc tương tác với iBeacons bằng SDK MOKOSmart iBeacon rất dễ thực hiện. Vì vậy, tôi không mong đợi những trở ngại lớn trong công nghệ thực hiện, mà là trong việc triển khai các đèn hiệu và điều chỉnh công suất truyền. Các tham số này có tác động trực tiếp đến khả năng phản hồi của ứng dụng khi vị trí thay đổi. Trong bất kỳ trường hợp nào, việc cân bằng phải khó khăn.

Đối với đặc biệt thú vị, ví dụ. B. trong lĩnh vực tự động hóa nhà, Tôi xem xét sự kết hợp của iBeacons với các cảm biến, như trong Thẻ cảm biến từ Texas Cụ đã đề cập ở trên. Ước tính cũng sẽ ra mắt đèn hiệu di động với cảm biến chuyển động và nhiệt độ trên thị trường với Nhãn dán ước tính. Các bản xem trước dành cho nhà phát triển đầu tiên nên được gửi vào cuối tháng 10 2014, nhưng không có bộ dụng cụ nào được chuyển vào cuối 2014.

Vẫn còn phải xem liệu khu vực ứng dụng điều hướng trong nhà có thể được lập bản đồ mạnh mẽ với công nghệ này không. Do tính nhạy cảm của tín hiệu Bluetooth với các yếu tố nhiễu, chiếu sáng mạnh với tín hiệu iBeacon của các tính toán diện tích và vị trí tương ứng bằng cách sử dụng tam giác với các kế hoạch phòng là cần thiết. Các giải pháp phù hợp được cung cấp bởi MOKOSmart (Điều hướng trong nhà SDK iBeacon) và nhiều nhà sản xuất khác như LabWerk, nhưng tác giả không biết về bất kỳ báo cáo thực tế nào.

Với sự phát triển của một ứng dụng tương tác với iBeacons, các khía cạnh bảo mật và bảo vệ dữ liệu cũng phải được tính đến. Do sự đơn giản của tín hiệu, iBeacon dễ bị giả mạo, không nên quên trong quá trình phát triển. Dữ liệu như vị trí hiện tại và cấu hình chuyển động có thể được thu thập dựa trên hành vi của người dùng cũng có nhu cầu bảo vệ cao.

SDK iKeacon MOKOSMART

giải pháp sdk ibeacon

 

Nói chuyện với chuyên gia