VBLUno kit- Tự làm một thiết bị Beacons với VBLUno

Mô tả dự án: 

Như mọi người đã biết, công nghệ Beacons ngày càng được ứng dụng rộng rãi trong công nghiệp, giải trí, an ninh, thương mại,...  Có thể xem Beacons là "ngọn hải đăng" chứa những thông tin tối thiểu, phát ra môi trường dựa trên công nghệ BLE, giúp truyền tải những thông tin đến các thiết bị khác. Với VBLUno, việc thử nghiệm một thiết bị beacons trở nên dễ dàng hơn bao giờ hết.

Giới thiệu

Nội dung trình bày:

  • Những nét cơ bản về công nghệ Beacons.
  • iBeacons.
  • Thực hành phát iBeacons với bo mạch VBLUno

Những nét cơ bản về công nghệ Beacons

Về công nghệ Beacons nhiều bạn đã được nghe đến hoặc trực tiếp sử dụng nó. Vậy beacons là gì và lợi ích của nó ra sao. Sau đây mình sẽ giới thiệu những nét chính về công nghệ Beacons.

Beacon là thiết bị điện tử nhỏ phát ra tín hiệu Bluetooth năng lượng thấp (Bluetooth Low Energy - BLE). Bất kỳ thiết bị nào có công nghệ BLE đều có thể thu được tín hiệu này, chẳng hạn như điện thoại thông minh hay máy tính bảng.

Một thiết bị Beacon hoạt động như một "broadcasting device" - thiết bị chỉ quảng bá tín hiệu ra không gian. Điều này đồng nghĩa với việc các thiết bị BLE Central sẽ không thể kết nối đến thiết bị beacons. Thiết bị này hỗ trợ các thiết bị BLE khác nhau có thể đọc được thông tin từ Beacon tại cùng một thời điểm. Có thể xem thiết bị beacon như một ngọn hải đăng, một đèn báo hiệu để các thiết bị khác có thể dễ dàng nhận được một số thông tin cần truyền tải.

Hình 1: Minh họa một ứng dụng của Beacons

Đây là giao thức một chiều từ Beacon đến các thiết bị BLE mà không cần tạo một kết nối giữa hai thiết bị. Giống như công nghệ GPS, dựa vào cường độ tín hiệu BLE mà các thiết bị có thể xác định khoảng cách giữa Beacon và các thiết bị BLE xung quanh. 

Beacon giải quyết các bài toán như: định vị trong tòa nhà, trung tâm thương mại - xác thực thanh toán (contactless payment) - lấy mã khuyến mại (checkin coupons) - quảng cáo thông minh (proximity marketing). Đối với giáo dục, một số công ty đã áp dụng Beacon để phân tích hành vi sinh viên, hỗ trợ kết nối sinh viên và giáo viên từ đó chống được tỷ lệ drop-out.

            

Hình 2: Cấu trúc gói tin quảng bá Beacons

 

Phân loại các chuẩn Beacons:

  • iBeacons của Apple
  • Eddystone của Google
  • AltBeacon của Radius Networks vv..

Phần tiếp theo trình bày cấu trúc phần user data và ý nghĩa các tham số quan trọng của chuẩn iBeacons. Các bạn có thể tìm hiểu các chuẩn beacons khác thông qua Internet.

iBeacons

Hình dưới trình bày cấu trúc 31 byte dữ liệu trong thông tin mà iBeacons phát quảng bá ra môi trường.

Hình 3: Cấu trúc phần user data trong iBeacons

Với iBeacons, Apple đã chuẩn hóa định dạng các gói tin quảng bá BLE. Theo định dạng này, với một packet quảng bá bạn cần quan tâm 4 thông tin chính sau:

  • UUID: ID độc nhất với độ dài 16 bytes (128 bit) được dùng để phân biệt giữa các nhóm sản phẩm với nhau. Ví dụ, nếu Coca-Cola có một mạng các beacons trong một chuỗi các cửa hàng thì các thiết bị beacons đi kèm sản phẩm của Coca-Cola nên có chung một giá trị UUID này.
  • Major: Có độ dài 2 byte được dùng để phân biệt một nhóm beacons nhỏ so với một nhóm lớn. Ví dụ, nếu Coca-Cola có bốn beacons trong một cửa hàng tạp hóa, cả bốn beacons này nên có cùng một Major. Điều này cho phép Coca-Cola biết chính xác cửa hàng mà khách đang ở trong đó.
  • Minor: Có độ dài 2 byte để định danh các beacons riêng biệt trong từng nhóm nhỏ. Trong ví dụ với Coca-Cola ở trên, có một beacons đặt ở phía trước cửa hàng mang một giá trị Minor độc nhất. Điều này cho phép ứng dụng đi kèm biết chính xác nơi mà khách hàng đang đứng
  • Tx Power: Được dùng để xác định khoảng cách đến beacon. Tx power được định nghĩa như độ mạnh của tín hiệu tại vị trí cách thiết bị beacons 1 mét. Các ứng dụng đi kèm có thể dùng điều này như một thông tin cơ bản để ước lượng khoảng cách từ sản phẩm (có beacons đi kèm) đến smartphone chạy ứng dụng.

Thực hành phát iBeacons với bo mạch VBLUno

Các bạn có thể tham khảo mã nguồn ví dụ phát iBeacons cho bo mạch VBLUno trên Arduino IDE: File => Examples => BLE_Examples => BLE_beacon

Một số ghi chú

Đoạn code sau chứa nội dung gói dữ liệu quảng bá beacons

const static uint8_t beaconPayload[] = {

  0x4C,0x00,                                                                       // Company Identifier Code = Apple

  0x02,                                                                            // Type = iBeacon

  0x15,                                                                            // Following data length

  0x71,0x3d,0x00,0x00,0x50,0x3e,0x4c,0x75,0xba,0x94,0x31,0x48,0xf1,0x8d,0x94,0x1e, // Beacon UUID

  0x00,0x49,                                                                       // Major

  0x00,0x0A,                                                                       // Minor

  0xC5                                                                             // Measure Power

};

Các tham số quảng bá quan trọng:

  • LE_GENERAL_DISCOVERABLE: Cho phép discovery
  • MANUFACTURER_SPECIFIC_DATA
  • ADV_NON_CONNECTABLE_UNDIRECTED: Không hỗ trợ kết nối

ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); 

ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, beaconPayload, sizeof(beaconPayload));

ble.setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED);

Kết quả demo

Sau khi biên dịch và nạp firmware cho VBLUno, sử dụng một số phần mềm có tính năng đọc tín hiệu beacons trên smartphone để kiểm tra hoạt động của thiết bị beacons . Ở đây mình dùng phần mềm Beacon Scanner trên Android OS.

Hình 4: Smartphone quét được thiết bị  iBeacon

 

Hình 5: Hiển thị chi tiết thông tin beacon

Có thể thấy, bằng việc sử dụng VBLUno, bạn dễ dàng chế tạo thử nghiệm một thiết bị beacons áp dụng cho nhiều bài toán khác nhau.

lên
6 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

VBLUno - Tutorial hướng dẫn lập trình Arduino IDE cho bo mạch VBLUno

Đây là chuỗi các bài tutorial giới thiệu và hướng dẫn mọi người phát triển ứng dụng trên Arduino IDE cho bo mạch VBLUno của VNG. Đặc biệt là các hướng dẫn và demo về Bluetooth Low Energy. Hôm nay chúng ta sẽ cùng nhau xem cách lập trình cho VBLUno để nói hello world với thế giới từ VBLUNO.

lên
15 thành viên đã đánh giá bài viết này hữu ích.

VBLUno kit - Tutorial 4 - Đo nhiệt độ bên trong chip nRF51822

Bo mạch VBLUno sử dụng CPU là chip nRF51822 của hãng Nordic Semiconductor. Bên trong vi mạch này có tích hợp sẵn một cảm biến nhiệt độ. Chúng ta có thể sử dụng cảm biến này để giám sát nhiệt độ CPU (nRF51822), từ đó biết được mức tải làm việc của hệ thống, đưa ra các cảnh báo cần thiết khi tải làm việc quá cao. Điều này giúp hệ thống làm việc ổn định và bền bỉ hơn.

lên
8 thành viên đã đánh giá bài viết này hữu ích.