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

DLink DNS-323 - это Linux и имеет MediaTomb в качестве медиа-сервера, но процессор на 500 МГц на устройстве слишком слаб, чтобы действительно обрабатывать диск, полный файлов размером более 250 МБ.

1
задан 7 March 2014 в 08:54

2 ответа

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

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

2) Я не совсем уверен в этом необходимо, но в меню bluetooth gui соедините устройство.

3) в файле /etc/bluetooth/rfcomm.conf

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

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

4) sudo rfcomm connect 0

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

] 5) screen /dev/rfcomm0

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

11
ответ дан 25 May 2018 в 02:00
  • 1
    Я получаю " Отсутствует параметр dev " когда я пытаюсь запустить & rfcomm connect 0 " – someonewithpc 27 March 2016 в 19:43
  • 2
    Вы правильно отредактировали файл conf? – Brian Ballsun-Stanton 28 March 2016 в 03:58
  • 3
    Попробуйте sudo rfcomm connect rfcomm0 00: 07: 80: 44: 4F: 37 – elopio 4 July 2016 в 08:52
  • 4
    @ elopia's oneliner очень прост. Это сработало для меня – ptetteh227 31 March 2018 в 05:27

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

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

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

sudo bluetoothctl

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

# power on

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

# agent on

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

# 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.

Предоставьте полезный файл /def/rfcomm0

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

sudo killall rfcomm

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

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

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

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

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

stty: /dev/rfcomm0: Device or resource busy

Первая опция: connect using screen

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

sudo apt-get install screen

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

sudo screen /dev/rfcomm0

Если вы забудете запустить его как root, вы получите сообщение об ошибке например, Aleksander got:

[screen is terminating]

Чтобы выйти из него, введите «Ctrl A +: exit»

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

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

sudo apt-get install minicom

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

sudo minicom -D /dev/rfcomm0

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

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

Чтобы выйти

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

Загрузите этот скрипт и запустите:

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

Запишите прямо в file

Сначала выполните следующую команду (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 tail -f /dev/rfcomm0

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

5
ответ дан 25 May 2018 в 02:00

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

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