Как я могу использовать rfcomm для подключения нескольких смартфонов Android к моей Raspberry Pi 3?
Я пытаюсь подключить Raspberry Pi 3 к трем телефонам Android через Bluetooth. Я хочу использовать ввод телефонов в коде Python, но прежде чем начать кодирование, я должен убедиться, что я могу подключить все три телефона к Raspberry Pi 3.
Следующее, что я сделал, было:
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo rpi-update
sudo apt-get install python3
sudo apt-get install python-bluetooth
sudo nano /etc/systemd/system/dbus-org.bluez.service
Изменены следующие две строки:
ExecStart=/usr/lib/bluetooth/bluetoothd -C
ExecStartPost=/usr/bin/sdptool add SP
Я использую приложение BlueTooth Serial Conntroller на смартфонах. Далее я подключаюсь через sudo rfcomm listen hci0
который отлично работает
Я проверяю связь с minicom -D /dev/rfcomm0
и это тоже работает. Я могу отправить коммандос с приложением, и оно отображается на терминале моего Raspberry Pi.
Далее, пока это соединение активно, я пытаюсь подключить второй телефон с sudo rfcomm listen hci2
который на мгновение подключается к телефону, но на экране он быстро дает мне сообщение
Не удается создать rfcomm TTY: адрес уже используется
Так что я думаю, что это потому, что я использую канал 1. Поэтому я пытаюсь sudo rfcomm listen hci2 2
который показывает, что он ждет на канале 2. Но это тоже не работает.
Я проверил, могу ли я подключиться ко второму телефону на первом канале (когда он свободен), и он работает.
Итак, мой вопрос: как я могу использовать rfcomm для подключения к нескольким смартфонам Android? Или есть другой лучший способ, зная, что я хочу использовать Python для ввода?
1 ответ
У меня была точно такая же проблема, и вот как я ее решил:
sudo rfcomm listen /dev/rfcommX 1
где X начинается с 0 и увеличивается на 1 для каждого устройства, которое вы хотите подключить.