Мы пытаемся подключить модуль bluetooth к Raspberry Pi, используя Python, а не вводить команды терминала напрямую. При использовании приведенного ниже кода соединение между модулем HC-05 и Raspberry pi не устанавливается. Мы опробовали функции Popen
и run
из модуля subprocess
.
Код:
from subprocess import Popen, PIPE, run
mac = "20:17:07:25:51:04"
#code to open an rfcomm to connect bluetooth and raspberry pi
run("sudo rfcomm connect 0" + mac + "1 -i hci0 &", shell=True)
#separating above and below code
print("===========================SPACER========================")
#detecting if raspberry pi is connected to bluetooth module
process = Popen(["sudo", "bluetoothctl", "-a"], stdin=PIPE, stdout=PIPE, universal_newlines=True)
process.stdin.write('info 20:17:07:25:51:04')
output, errors = process.communicate()
print(output)
Выход:
===========================SPACER======================== Waiting to connect to bluetoothd...
#[0;94m[bluetooth]#[0m#
[#[0;92mNEW#[0m] Controller B8:27:EB:CC:0E:69 raspberrypi [default]
#[0;94m[bluetooth]#[0m#
[#[0;92mNEW#[0m] Device 20:17:07:25:51:04 hc01.com HC-05
#[0;94m[bluetooth]#[0m#
Agent registered
#[0;94m[bluetooth]#[0m# info 20:17:07:25:51:04 Device 20:17:07:25:51:04 Name: hc01.com HC-05 Alias: hc01.com HC-05 Class:
0x001f00 Paired: yes Trusted: yes Blocked: no Connected: no
LegacyPairing: no UUID: Serial Port
(00001101-0000-1000-8000-00805f9b34fb)
#[0;94m[bluetooth]#[0m#
Agent unregistered
#[0;94m[bluetooth]#[0m#
[#[0;91mDEL#[0m] Controller B8:27:EB:CC:0E:69 raspberrypi [default]
#[0;94m[bluetooth]#[0m#
Waiting to connect to bluetoothd...
Мы ожидали, что «подключенная» линия на выходе будет «да», но все равно будет «нет». Хотя при непосредственном вводе этих команд в терминал мы получаем yes для подключенных.