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ả

Giới thiệu SDR - Ứng dụng MATLAB và RTL-SDR trong nghiên cứu sóng vô tuyến - P1

Trong bài viết này, tôi sẽ thực hiện các thí nghiệm về xử lý tín hiệu không dây sử dụng công nghệ Software Defined Radio (SDR), đây là một chủ đề đã được nghiên cứu trong 20 năm trở lại đây và đang là xu hướng phát triển trong các thiết bị IoT ngày nay.

lên
8 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Giới thiệu Intel Edison - Cylon.js - P6

CylonJS là một thư viện Javascript hỗ trợ trong việc phát triển Robot và các dự án IoT trên nền tảng Node.js. Sức mạnh của CylonJS nằm trong số lượng 43 mạch điều khiển và phần mềm mà nó hỗ trợ. Trường hợp bạn đang sở hữu một mạch Arduino và muốn tìm hiểu về CylonJS, hãy truy cập ngay trang web chính thức để có thể bắt đầu từ bây giờ https://cylonjs.com/documentation/platforms/arduino/.

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