Ось мій спосіб перейти до підключення Bluetooth-пристрою HC-05, підключеного до мого ардуїно. Не потрібно писати файл, як у відповіді Брайана, але ідея схожа. Я тестував це з налаштуванням швидкості передачі 9600 бод на пристрої HC-05.
Перший крок: з'єднайте пристрій і введіть PIN-код
Я спробував налаштувати з GUI сполучення, але це не спрацювало. Ось спосіб командного рядка перейти, який працював на мене. Спочатку з’єднаємо пристрій з командного рядка. Виконати:
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
.
Надайте корисний файл /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
Встановіть його
sudo apt-get install minicom
а потім біжи
sudo minicom -D /dev/rfcomm0
Якщо ви забудете запустити його як root, у вас виникне помилка на зразок
minicom: cannot open /dev/rfcomm0: Device or resource busy
Щоб закрити його, введіть "Ctrl + A X".
Третій варіант: мінітерм python script
Завантажте цей сценарій та запустіть:
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"
і теоретично читати з нього, використовуючи
sudo tail -f /dev/rfcomm0
Але я не знаю, читання не працює, якщо хтось із вас має ідею ...