Как я могу использовать 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 для каждого устройства, которое вы хотите подключить.

Другие вопросы по тегам