Giới thiệu Intel Edison - Bluetooth - P2

Intel Edison được tích hợp sẵn Bluetooth Smart/Low Energy (BLE) cho phép bạn có thể kết nối đến Edison từ điện thoại thông minh và phù hợp cho bất kỳ dự án IoT nào mà bạn sẽ thực hiện trong tương lai thông qua Bluetooth. Tài liệu hướng dẫn chính thức được Intel cung cấp bao gồm 73 trang tài liệu định dạng PDF. Bạn có thể tải về tại trang web chính thức Intel Edison Bluetooth Guide - R004.

1. Giải pháp tích hợp Bluetooth trên Linux

BlueZ là một dự án mã nguồn mở cung cấp giao thức kết nối Bluetooth trên nền tảng Yocto Linux. Các tiện ích mà BlueZ mang đến cho người dùng bao gồm rfkill và hci (rfkill, hcidump, hciconfig, hcitools, v.v...)

  • rfkill: thực hiện bật/tắt chip Bluetooth.
  • hcitools: một loạt các lệnh hỗ trợ việc quản lý kết nối Bluetooth (hcidump, hciconfig, hcitool, hciattach)

Hình: Sơ đồ quản lý dữ liệu của BlueZ

Tất cả các thiết lập Bluetooth được lưu trữ tại thư mục /var/lib/bluetooth và người dùng có thể tìm thấy các thông tin hữu ích phục vụ việc debug trong suốt quá trình khởi tạo và kết nối các thiết bị.

root@VisudoBlog:/var/lib/bluetooth# ll -R  
.:
total 12  
drwx------  3 root root 4096 Aug  9 12:38 .  
drwxr-xr-x 14 root root 4096 Aug  9 12:38 ..  
drwx------  3 root root 4096 Aug  9 12:42 98:4F:EE:04:21:A5

./98:4F:EE:04:21:A5:
total 16  
drwx------ 3 root root 4096 Aug  9 12:42 .  
drwx------ 3 root root 4096 Aug  9 12:38 ..  
drwx------ 2 root root 4096 Aug  9 13:25 cache  
-rw------- 1 root root   29 Aug  9 12:42 settings

./98:4F:EE:04:21:A5/cache:
total 12  
drwx------ 2 root root 4096 Aug  9 13:25 .  
drwx------ 3 root root 4096 Aug  9 12:42 ..  
-rw------- 1 root root   42 Aug  9 13:25 F8:77:B8:BE:C9:64

BlueZ còn cho phép người dùng mở rộng các tính năng Bluetooth thông qua thư viện phát triển mở rộng; người dùng có thể tìm hiểu thêm bằng các truy cập thư mục /usr/lib/bluetooth/plugins

root@VisudoBlog:/usr/lib/bluetooth/plugins# ll  
total 24  
drwxr-xr-x 2 root root  4096 Jun  7 00:50 .  
drwxr-xr-x 3 root root  4096 Jun  6 21:47 ..  
-rwxr-xr-x 1 root root   951 Jun  6 21:46 sixaxis.la
-rwxr-xr-x 1 root root 11884 Jun  6 21:47 sixaxis.so

2. Các lệnh cơ bản quản lý Bluetooth trên Intel Edison

Trong phần này, tôi sẽ tiến hành quản lý các thiết bị Bluetooth thông qua giao diện SSH. Bạn có thể đọc lại bài viết Hướng dẫn kết nối Edison sử dụng SSH nếu là người dùng mới làm quen với thiết bị.

a. Bật tắt Bluetooth trên Edison

Thực hiện lệnh rfkill unblock bluetooth để bật và rfkill block bluetooth để tắt việc thu/phát sóng Bluetooth trên thiết bị.

root@VisudoBlog:~# rfkill unblock bluetooth  
root@VisudoBlog:~# rfkill block bluetooth  

Liệt kê các trạng thái kết nối trên Edison;

root@VisudoBlog:~# rfkill list  
0: phy0: wlan  
        Soft blocked: no
        Hard blocked: no
1: brcmfmac-wifi: wlan  
        Soft blocked: no
        Hard blocked: no
2: bcm43xx Bluetooth: bluetooth  
        Soft blocked: no
        Hard blocked: no
4: hci0: bluetooth  
        Soft blocked: no
        Hard blocked: no

b. Quản lý kết nối sử dụng bluetoothctl

bluetoothctl là một tiện ích giúp người dùng quản lý việc bật/tắt thu phát sóng, quét thiết bị, ghép đôi thiết bị, ...

root@VisudoBlog:~# bluetoothctl  
[NEW] Controller 98:4F:EE:04:21:A5 VisudoBlog [default]
[bluetooth]# show
Controller 98:4F:EE:04:21:A5  
        Name: VisudoBlog
        Alias: VisudoBlog
        Class: 0x6c0110
        Powered: yes
        Discoverable: no
        Pairable: yes
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: SIM Access                (0000112d-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
        UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v1D6Bp0246d0525
        Discovering: no

Thực hiện khởi tạo thiết bị bluetooth, người dùng có thể thiết lập các tùy chọn khác nhau như KeyboardDisplay, DisplayOnly, DisplayYesNo, KeyboardOnly và NoInputNoOutput. Mỗi thiết lập có ý nghĩa khác nhau trong việc hoạt động của bluetooth giữa các thiết bị người dùng và Edison.

[bluetooth]# agent KeyboardDisplay
Agent registered  
[bluetooth]# default-agent
Default agent request successful  

Thực hiện quét thiết bị phát sóng bluetooth sử dụng lệnh scan on; sau khi quá trình quét thiết bị ghi nhận các tín hiệu phát từ xung quanh, người dùng có thể tắt quá trình quét sử dụng lệnh scan off.

[bluetooth]# scan on
Discovery started  
[CHG] Controller 98:4F:EE:04:21:A5 Discovering: yes
[NEW] Device F8:77:B8:BE:C9:64 [TV] Samsung 5 Series (49)
[CHG] Device F8:77:B8:BE:C9:64 TxPower: 9
.....
[NEW] Device 98:D6:F7:AD:E9:B3 LG-F160
[CHG] Device F8:77:B8:BE:C9:64 RSSI: -62
.....
[bluetooth]# scan off
[CHG] Device 98:D6:F7:AD:E9:B3 RSSI is nil
[CHG] Device 00:08:CA:26:B1:A1 TxPower is nil
.....
Discovery stopped  
[CHG] Controller 98:4F:EE:04:21:A5 Discovering: no

Để thực hiện kết nối chủ động từ thiết bị bên ngoài đến Edison, bạn cần bật tính năng discovery trên thiết bị bằng lệnh discoverable on

[bluetooth]# discoverable on
Changing discoverable on succeeded  
[CHG] Controller 98:4F:EE:04:21:A5 Discoverable: yes

Ghép đôi thiết bị di động và Edison thông qua lệnh pair DeviceAddress

[bluetooth]# pair 98:D6:F7:AD:E9:B3
Attempting to pair with 98:D6:F7:AD:E9:B3  
[CHG] Device 98:D6:F7:AD:E9:B3 Connected: yes
Request confirmation  
[agent] Confirm passkey 454645 (yes/no): yes
[CHG] Device 98:D6:F7:AD:E9:B3 Modalias: usb:v000Ap0000d0000
.....
[CHG] Device 98:D6:F7:AD:E9:B3 Paired: yes
Pairing successful  
[CHG] Device 98:D6:F7:AD:E9:B3 Connected: no

Kết nối đến thiết bị di động sử dụng lệnh connect DeviceAddress

[bluetooth]# connect 98:D6:F7:AD:E9:B3
Attempting to connect to 98:D6:F7:AD:E9:B3  
[CHG] Device 98:D6:F7:AD:E9:B3 Connected: yes
Connection successful  
[DEL] Device F8:77:B8:BE:C9:64 [TV] Samsung 5 Series (49)

Xem thông tin thiết bị kết nối đến Edison sử dụng lệnh info DeviceAddress

[LG-F160]# info 98:D6:F7:AD:E9:B3
Device 98:D6:F7:AD:E9:B3  
        Name: LG-F160
        Alias: LG-F160
        Class: 0x58020c
        Icon: phone
        Paired: yes
        Trusted: no
        Blocked: no
        Connected: yes
        LegacyPairing: no
        UUID: OBEX Object Push          (00001105-0000-1000-8000-00805f9b34fb)
.....
        Modalias: usb:v000Ap0000d0000

Thực hiện ngắt kết nối thiết bị thông qua lệnh exit

[LG-F160]# exit
Agent unregistered  
[DEL] Controller 98:4F:EE:04:21:A5 VisudoBlog [default]

3. Tạm kết

Bluetooth được tích hợp trên Edison sử dụng mã nguồn BlueZ có thể được xem là một trong những điểm mạnh mà Intel đã mang đến cho người dùng làm IoT. Trong phần tiếp theo, tôi sẽ tiếp tục các vấn đề về tinh chỉnh kết nối trên Edison để tiện lợi cho người dùng khi lập trình và đảm bảo tính ổn định của kết nối.

lên
8 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ả

Tấn công máy tính sử dụng Teensy HID - P1

Kỹ thuật tấn công máy tính sử dụng thiết bị HID đã xuất hiện trong nhiều năm trở lại đây, thiết bị HID là một phân lớp của tiêu chuẩn USB - thường được ứng dụng trong khá nhiều các thiết bị ngoại vi với hình dạng, kích thước và chức năng khác nhau. Trong bài viết này, tôi sẽ tiến hành thử nghiệm các lab sử dụng thiết bị Teensy HID phiên bản phần cứng 3.2 để khai thác, chiếm quyền máy tính và một số hình thức tấn công đa dạng khác.

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

Giới thiệu SDR - Theo dõi thông tin chuyến bay sử dụng MATLAB và RTL-SDR thu nhận tín hiệu ADS-B - P2

Trong bài viết này, tôi sử dụng chương trình Matlab và phần cứng RTL-SDR trong việc thu nhận tín hiệu ADS-B (Automatic Dependent Surveillance-Broadcast) nhằm giám sát chuyến bay trong phạm vi khu vực giới hạn.

Người dùng có thể sử dụng các công cụ khác nhau để có cùng kết quả phân tích dữ liệu. Tuy nhiên, trong các bài viết này tôi tập trung chủ yếu vào việc ứng dụng Matlab và RTL-SDR để làm các thử nghiệm trong môi trường thu/ phát tín hiệu đã được khống chế. Việc sử dụng Matlab cho phép người dùng phát triển và đo lường các giải thuật tốt hơn với các bộ công cụ mà nó hỗ trợ trước khi tiến hành triển khai trên môi trường ứng dụng máy tính.

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