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

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Giới thiệu Intel Edison - Intel IoT Analytics - P7

Intel cung cấp hệ thống phân tích dữ liệu phát triển trên nền điện toán đám mây thực hiện thu thập và phân tích các dữ liệu từ các cảm biến kết nối với Edison gởi đến. Thông qua dịch vụ này, người dùng sở hữu một thiết bị Intel Edison hoặc Intel Galileo có thể gởi dữ liệu trực tiếp đến hệ thống mà Intel hỗ trợ, không cần đầu tư thêm một hệ thống phân tích dữ liệu đắt đỏ nào khác.

lên
10 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.