- Cài đặt Gói bắt buộc cho Giao tiếp Bluetooth:
- Ghép nối thiết bị với Raspberry Pi qua Bluetooth:
- Sơ đồ mạch:
- Điều khiển đèn LED với ứng dụng Android BlueTerm:
- Giải thích lập trình:
Raspberry Pi rất phổ biến cho các dự án IoT vì khả năng liên lạc không dây qua internet liền mạch. Raspberry Pi 3 có Wi-Fi và Bluetooth sẵn có, và Bluetooth là một Giao thức truyền thông không dây rất phổ biến. Vì vậy, hôm nay chúng ta sẽ điều khiển Raspberry Pi GPIO Pin thông qua một ứng dụng Android bằng Bluetooth.
Ở đây chúng tôi đang sử dụng Raspberry 2 Pi Model B không có Bluetooth tích hợp sẵn, vì vậy chúng tôi đang sử dụng một dongle USB Bluetooth đơn giản. Ngoài ra, chúng tôi chỉ cần một điện trở (220R) và một đèn LED để chứng minh điều khiển GPIO. Ở đây chúng tôi đang sử dụng giao thức Bluetooth RFCOMM cho giao tiếp không dây.
Lập trình cho Bluetooth bằng Python tuân theo mô hình lập trình ổ cắm và giao tiếp giữa các thiết bị Bluetooth được thực hiện thông qua ổ cắm RFCOMM. RFCOMM (Giao tiếp tần số vô tuyến) là một Giao thức Bluetooth cung cấp các cổng nối tiếp RS-232 được mô phỏng và còn được gọi là Mô phỏng Cổng Nối tiếp. Cấu hình cổng nối tiếp Bluetooth dựa trên giao thức này. RFCOMM rất phổ biến trong các ứng dụng Bluetooth vì hỗ trợ rộng rãi và API có sẵn công khai. Nó bị ràng buộc với giao thức L2CAP.
Chúng tôi cũng đã sử dụng mô-đun Bluetooth HC-06 trong dự án trước của mình: Đèn LED điều khiển bằng giọng nói sử dụng Raspberry Pi. Ngoài ra, hãy kiểm tra các Dự án Raspberry Pi trước đây của chúng tôi cùng với một số Dự án IoT tốt.
Cài đặt Gói bắt buộc cho Giao tiếp Bluetooth:
Trước khi bắt đầu, chúng ta cần cài đặt một số phần mềm để thiết lập giao tiếp Bluetooth trong Raspberry Pi. Bạn nên chuẩn bị sẵn thẻ nhớ đã cài đặt Raspbian Jessie với Raspberry Pi. Kiểm tra bài viết này để cài đặt hệ điều hành Raspbian và bắt đầu với Raspberry Pi. Vì vậy, trước tiên chúng ta cần cập nhật Raspbian bằng các lệnh dưới đây:
sudo apt-get cập nhật sudo apt-get nâng cấp
Sau đó, chúng tôi cần cài đặt một số gói liên quan đến Bluetooth:
sudo apt-get install bluetooth blueman bluez
Sau đó khởi động lại Raspberry Pi:
khởi động lại sudo
BlueZ là một dự án mã nguồn mở và ngăn xếp giao thức Bluetooth chính thức của Linux. Nó hỗ trợ tất cả các giao thức Bluetooth cốt lõi và hiện trở thành một phần của Nhân Linux chính thức.
Blueman cung cấp giao diện Desktop để quản lý và điều khiển các thiết bị Bluetooth.
Cuối cùng, chúng ta cần Thư viện python cho giao tiếp Bluetooth để chúng ta có thể gửi và nhận dữ liệu thông qua RFCOMM bằng ngôn ngữ Python:
sudo apt-get install python-bluetooth
Cũng cài đặt các thư viện hỗ trợ GPIO cho Raspberry Pi:
sudo apt-get install python-rpi.gpio
Bây giờ chúng ta đã hoàn tất việc cài đặt các gói bắt buộc cho giao tiếp Bluetooth trong Raspberry Pi.
Ghép nối thiết bị với Raspberry Pi qua Bluetooth:
Việc ghép nối Thiết bị Bluetooth, như điện thoại di động, với Raspberry Pi rất dễ dàng. Ở đây, chúng tôi đã ghép nối Điện thoại thông minh Android của mình với Raspberry Pi. Trước đây chúng tôi đã cài đặt BlueZ trong Pi, cung cấp tiện ích dòng lệnh có tên “bluetoothctl” để quản lý các thiết bị Bluetooth của chúng tôi. Nhưng trước đó, hãy kết nối USB Bluetooth dongle của bạn với Raspberry Pi và kiểm tra xem nó có được phát hiện hay không bằng cách sử dụng lệnh dưới đây:
lsusb
Bây giờ mở tiện ích bluetoothctl bằng lệnh dưới đây:
sudo bluetoothctl
Bạn có thể kiểm tra tất cả các lệnh của tiện ích bluetoothctl bằng cách gõ 'trợ giúp' . Bây giờ chúng ta cần nhập các lệnh dưới đây theo thứ tự nhất định:
# bật nguồn # tác nhân trên # có thể phát hiện trên # có thể ghép nối trên # quét trên
Sau lệnh cuối cùng “quét trên”, bạn sẽ thấy thiết bị Bluetooth (Điện thoại di động) của mình trong danh sách. Đảm bảo rằng điện thoại di động của bạn đã bật Bluetooth và các thiết bị lân cận có thể nhìn thấy. Sau đó, sao chép địa chỉ MAC của thiết bị của bạn và ghép nối nó bằng cách sử dụng lệnh đã cho:
đôi
Sau đó, bạn sẽ được nhắc nhập Mật mã hoặc Ghim trong Bảng điều khiển đầu cuối, sau đó nhập mật mã vào đó và nhấn enter. Sau đó, nhập cùng một mật mã vào điện thoại di động của bạn khi được nhắc và bây giờ bạn đã ghép nối thành công với Raspberry Pi. Chúng tôi cũng đã giải thích toàn bộ quá trình này trong Video của chúng tôi ở cuối.
Như đã nói trước đó, bạn cũng có thể sử dụng giao diện Máy tính để bàn để ghép nối Điện thoại di động. Sau khi cài đặt Blueman, bạn sẽ thấy biểu tượng Bluetooth ở bên phải màn hình Raspberry Pi của mình như hình dưới đây, bằng cách sử dụng nó, bạn có thể dễ dàng thực hiện ghép nối.
Sơ đồ mạch:
Sơ đồ mạch rất đơn giản, chúng tôi chỉ kết nối một đèn LED với PIN 40 (GPIO 21) của Raspberry Pi với điện trở 220 Ohm:
Điều khiển đèn LED với ứng dụng Android BlueTerm:
Bây giờ sau khi ghép nối Điện thoại di động, chúng ta cần cài đặt Ứng dụng Android để giao tiếp với Raspberry Pi bằng Bộ điều hợp nối tiếp Bluetooth. Như đã nói trước đó, giao thức RFCOMM / SPP mô phỏng giao tiếp nối tiếp qua Bluetooth, vì vậy chúng tôi đã cài đặt tại đây Ứng dụng BlueTerm hỗ trợ giao thức này.
Bạn cũng có thể sử dụng bất kỳ Ứng dụng đầu cuối Bluetooth nào khác hỗ trợ giao tiếp qua ổ cắm RFCOMM.
Bây giờ sau khi tải xuống và cài đặt Ứng dụng BlueTerm, hãy chạy Chương trình Python cung cấp bên dưới từ thiết bị đầu cuối và kết nối thiết bị raspberrypi đã ghép nối từ Ứng dụng BlueTerm cùng một lúc.
Sau khi kết nối thành công bạn sẽ thấy kết nối: raspberrypi ở góc trên cùng bên phải của Ứng dụng như hình bên dưới:
Bây giờ bạn có thể chỉ cần nhập '1' hoặc '0' từ ứng dụng BlueTerm để đặt chân GPIO lần lượt là CAO và THẤP, từ đó chuyển đổi BẬT và TẮT đèn LED được kết nối với chân này. Nhấn 'q' để thoát khỏi chương trình. Bạn có thể sử dụng Bàn phím nhập bằng giọng nói của Google để điều khiển GPIO bằng Giọng nói của mình. Kiểm tra bản trình diễn hoàn chỉnh trong Video được đưa ra ở cuối.
Vì vậy, đây là cách bạn có thể điều khiển không dây Ghim GPIO bằng Ứng dụng Android qua Bluetooth. Ngoài ra, hãy kiểm tra Cách sử dụng Bluetooth với Arduino.
Giải thích lập trình:
Chương trình Python để điều khiển Raspberry Pi GPIO bằng Ứng dụng Android rất đơn giản và dễ hiểu. Chỉ chúng ta cần tìm hiểu một chút về mã liên quan đến giao tiếp Bluetooth RFCOMM. Đầu tiên, chúng ta cần nhập thư viện ổ cắm Bluetooth cho phép chúng ta điều khiển Bluetooth bằng ngôn ngữ Python; chúng tôi đã cài đặt thư viện cho cùng một trong phần trước.
nhập Bluetooth
Dưới đây là mã chịu trách nhiệm cho giao tiếp Bluetooth:
server_socket = bluetooth.Bl BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Kết nối được chấp nhận từ", địa chỉ trong khi 1: data = client_socket.recv (1024)
Ở đây chúng ta có thể hiểu chúng từng dòng một:
server_socket = bluetooth.Bl BluetoothSocket (bluetooth.RFCOMM): Tạo ổ cắm cho giao tiếp Bluetooth RFCOMM.
server_socket.bind (("", cổng): - Máy chủ liên kết tập lệnh trên máy chủ '' với cổng.
server_socket.listen (1) : Máy chủ lắng nghe để chấp nhận một kết nối tại một thời điểm.
client_socket, address = server_socket.accept () : Máy chủ chấp nhận yêu cầu kết nối của máy khách và gán địa chỉ mac cho địa chỉ biến , client_socket là ổ cắm của máy khách
data = client_socket.recv (1024): Nhận dữ liệu thông qua client_socket socket khách hàng và gán cho dữ liệu biến. Có thể nhận tối đa 1024 ký tự cùng một lúc.
Cuối cùng sau khi lập trình xong, hãy đóng kết nối máy khách và máy chủ bằng đoạn mã dưới đây:
client_socket.close () server_socket.close ()
Tất cả các mã khác đều dễ dàng và dễ hiểu. Kiểm tra mã đầy đủ bên dưới. Cố gắng sửa đổi dự án này và bạn có thể sử dụng nó để điều khiển nhiều thứ khác không dây, chẳng hạn như sử dụng Rơle, bạn có thể điều khiển các thiết bị gia dụng hoặc cũng có thể điều khiển xe Robot thông qua điện thoại Android.