Как подключить необработанный последовательный терминал к соединению Bluetooth?

Посмотрите этот ответ для запущения Вас. Обратите внимание, что indicator-sysmonitor был , разветвился и теперь работает снова в Ubuntu 14.04.

необходимо будет изменить пользовательский сценарий для получения скорости сети хотя, с помощью, возможно это как руководство.

10
задан 15.05.2020, 08:43

3 ответа

Как дополнение к ответу Брайана. Экран у меня не работал, сразу отображалось [screen is terminating]

Так что я нашел скрипт miniterm python . Использование аналогично:

sudo miniterm.py /dev/rfcomm0
5
ответ дан 15.05.2020, 08:44

Вот мой способ подключения к Bluetooth-устройству HC-05, подключенному к моему arduino. Не нужно писать файл, как в ответе Брайана, но идея похожа. Я протестировал его с настройкой скорости 9600 бод на устройстве HC-05.

Первый шаг: сопряжение устройства и предоставление PIN-кода.

Я пытался настроить сопряжение с графическим интерфейсом, но оно не работало. Вот способ командной строки, который работал для меня. Во-первых, давайте подключим устройство из командной строки. Выполните:

sudo bluetoothctl

Убедитесь, что устройство Bluetooth запущено:

# power on

Теперь запустим агент, который «запомнит контакт» для rfcomm:

[ 112]

Теперь мы включаем режим сканирования, чтобы найти наше устройство и иметь возможность его сопряжения:

# scan on

Через несколько секунд должен появиться MAC-адрес вашего устройства. Мы будем обозначать это как после. Затем вам просто нужно выполнить сопряжение устройства следующим образом:

# pair <MAC>

Вам будет предложено ввести PIN-код, по умолчанию это 1234 на моем устройстве HC-05. Вы можете заметить, что, возможно, ваше устройство подключается, а затем отключается с помощью сообщения, подобного этому:

[CHG] Device 20:16:10:24:29:77 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 20:16:10:24:29:77 ServicesResolved: yes
[CHG] Device 20:16:10:24:29:77 Paired: yes
Pairing successful
[CHG] Device 20:16:10:24:29:77 ServicesResolved: no
[CHG] Device 20:16:10:24:29:77 Connected: no

, но это не проблема. Вам не нужно подключаться, поэтому вы можете выйти из bluetoothctl, набрав Ctrl + D.

Предоставьте пригодный для использования файл /dev/rfcomm0

Во-первых, убедитесь, что вы ранее не выполняли команду rfcomm. Действительно, даже если вы закроете Ctrl+C программу, она все равно будет работать в фоновом режиме.

sudo killall rfcomm

Теперь вы можете запустить

sudo rfcomm connect /dev/rfcomm0 20:16:10:24:29:77 1 &

Обратите внимание, что если вы попытаетесь записать на входе rfcom, ничего не произойдет. Вам нужно использовать другую программу.

Третий и последний шаг: записать в /dev/rfcomm0

Есть несколько способов записи в файл, но обратите внимание, что все способы продолжения включают в себя root. Я опишу здесь несколько программ, которые могут сделать это (так что вы можете выбрать в зависимости от ваших потребностей или от того, что установлено в вашей системе, например). Если вы забудете запустить программу от имени пользователя root, у вас может возникнуть ошибка:

stty: /dev/rfcomm0: Device or resource busy

Первый вариант: подключиться с помощью screen

Экран - очень мощный инструмент. Вы можете установить его (это всегда полезно), используя:

sudo apt-get install screen

и затем запустить

sudo screen /dev/rfcomm0

Если вы забудете запустить его как root, вы получите ошибку, такую ​​как Aleksander получил:

[screen is terminating]

Чтобы выйти, введите «Ctrl A +: выход»

Второй вариант: подключиться с помощью minicom

Установить его

[1112 ]

и затем запустите

sudo minicom -D /dev/rfcomm0

Если вы забудете запустить его от имени пользователя root, у вас будет ошибка типа

minicom: cannot open /dev/rfcomm0: Device or resource busy

Чтобы выйти из нее, введите «Ctrl + AX» . [тысяча сто пятьдесят пять]

Третий вариант: сценарий python miniterm

Загрузите этот сценарий и выполните:

chmod +x miniterm.py
sudo ./miniterm.py /dev/rfcomm0

Запишите непосредственно в файл

Сначала запустите следующая команда (9600 - это скорость передачи в бодах):

sudo stty -F /dev/rfcomm0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts 

Теперь вы можете записать в этот файл, как в классическом файле:

sudo su -c "echo 'message' > /dev/rfcomm0"

и теоретически прочитать из него, используя [ 1159]

sudo tail -f /dev/rfcomm0

Но я не знаю, что чтение не работает, если у кого-то из вас есть идея ...

10
ответ дан 15.05.2020, 08:44

1) Используйте hcitool scan, чтобы найти Mac-адрес устройства.

Устройство должно быть переведено в режим ведомого с известным контактом. Если вы не используете известный пин-код, Ubuntu создаст его, и у вас, как правило, не будет времени ввести его в неуклюжие меню вашего измерительного инструмента.

2) Я не совсем уверен, что это необходимо, но в меню интерфейса Bluetooth выполните сопряжение устройства.

3) в /etc/bluetooth/rfcomm.conf

rfcomm0 {
        bind no;
        device 00:07:80:44:4F:37;
        channel 1;
        comment "Serial Port";
        }

«bind no» имеет важное значение, в противном случае он попытается выполнить автоматическое связывание, что создает всевозможные проблемы для доступ к устройству (поскольку он довольно требователен, когда он связан)

4) sudo rfcomm connect 0

Если у вас есть ошибки, перезапустите службу bluetooth.

5) screen /dev/rfcomm0

Для получения информации о последовательных командах, передаваемых таким образом, обратитесь к продавцу и попросите.

12
ответ дан 15.05.2020, 08:45
  • 1
    Попробуйте sudo rfcomm rfcomm0 00:07:80:44:4F:37 подключения – Atzoya 15.05.2020, 08:45
  • 2
    Я получаю " Пропавшие без вести dev parameter" когда я пытаюсь выполнить " rfcomm соединяют 0" – Peet Brits 15.05.2020, 08:45
  • 3
    Вы редактировали свой conf файл правильно? – Peet Brits 15.05.2020, 08:46
  • 4
    @elopia' s очень простая острота. Это работало на меня – Mary Hamlin 15.05.2020, 08:46

Теги

Похожие вопросы