Bagaimana saya menghubungkan terminal seri mentah ke koneksi bluetooth?

10

Saya mencoba untuk terhubung ke Totalstation yang tidak menawarkan driver bluetooth. Karena saya melakukan ini semata-mata karena alasan diagnostik, saya ingin melihat output mentah dari koneksi serial yang ada.

Apa yang harus saya lakukan untuk mem - pipe semua output dari koneksi bluetooth ke terminal?

Brian Ballsun-Stanton
sumber
Apakah Anda melakukan Bluetooth-> Serial, Serial-> Bluetooth, atau dua arah?
nanofarad
Totalstation Bluetooth <-> Bluetooth Ubuntu. Mengingat bahwa totalstation memiliki konfigurasi serial standar melalui USB, saya menduga itu membuat koneksi serial melalui Bluetooth. Tentu saja, saya bisa benar-benar salah, pada titik mana jawaban bahwa saya salah dan bluetooth yang menggunakan XYZ sepenuhnya diizinkan.
Brian Ballsun-Stanton
Dalam hal bukti dua arah, saya telah berhasil membuat koneksi serial kosong melalui "layar" yang menyebabkan bip bip pada perangkat ketika saya menekan tombol pada keyboard. Jadi saya curiga saya setengah jalan ke sana, saya tidak tahu setengahnya.
Brian Ballsun-Stanton
Bisakah Anda membuat diagram cepat? Saya tidak bisa mengerti apakah itu serial over atau bluetooth over serial, serta siapa yang menyampaikan data ke mana. Lakukan saja di GIMP atau apalah dan unggah di sini
nanofarad
Bekerja dengan sangat baik tetapi saya mengalami beberapa gangguan dengan RFCOMM. Ketika saya terhubung dengan SCREEN, beberapa AT-Sequence diketik secara otomatis "ATE1 E0" <RETURN> tiga kali. Karena itu, beberapa "Login gagal" muncul di sisi Raspi. Setelah itu, saya berhasil masuk dan menggunakan sesi terminal tanpa gangguan lebih lanjut.
Cody

Jawaban:

5

Sebagai tambahan untuk jawaban Brian. Layar tidak berfungsi untuk saya, segera ditampilkan[screen is terminating]

Jadi saya menemukan skrip python miniterm ini . Penggunaannya serupa:

sudo miniterm.py /dev/rfcomm0
Aleksander Belov
sumber
12

1) Gunakan hcitool scanuntuk menemukan alamat Mac perangkat.

Perangkat harus diatur ke mode slave dengan pin yang dikenal. Jika Anda tidak menggunakan pin yang dikenal, ubuntu membuatnya dan Anda biasanya tidak akan punya waktu untuk memasukkannya ke dalam menu kikuk dari alat ukur Anda.

2) Saya tidak sepenuhnya yakin ini perlu, tetapi dalam menu bluetooth gui, pasangkan perangkat.

3) di /etc/bluetooth/rfcomm.conf

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

"Bind no" itu penting, jika tidak maka akan mencoba untuk mengikat secara otomatis, yang menghadirkan segala macam masalah untuk benar-benar mengakses perangkat (karena cukup pilih-pilih ketika dikaitkan)

4) sudo rfcomm connect 0

Jika Anda memiliki kesalahan, restart layanan bluetooth.

5) screen /dev/rfcomm0

Untuk perintah serial aktual yang dikirimkan dengan cara ini, hubungi vendor Anda dan mohon.

Brian Ballsun-Stanton
sumber
3
Saya mendapatkan "Parameter dev hilang" ketika saya mencoba menjalankan "rfcomm connect 0"
someonewithpc
Apakah Anda mengedit file conf Anda dengan benar?
Brian Ballsun-Stanton
5
Coba sudo rfcomm connect rfcomm0 00: 07: 80: 44: 4F: 37
elopio
Oneliner @ elopia sangat sederhana. Itu bekerja untuk saya
ptetteh227
10

Inilah cara saya untuk melanjutkan menghubungkan ke perangkat Bluetooth HC-05 yang terhubung ke Arduino saya. Tidak perlu menulis file seperti dalam jawaban Brian, tetapi idenya serupa. Saya sudah mengujinya dengan pengaturan baud 9600 pada perangkat HC-05.

Langkah pertama: pasangkan perangkat dan berikan PIN

Saya mencoba mengatur dari GUI pemasangan, tetapi tidak berhasil. Berikut adalah cara baris perintah untuk melanjutkan yang bekerja untuk saya. Pertama, mari kita pasangkan perangkat dari baris perintah. Lari :

sudo bluetoothctl

Pastikan perangkat bluetooth dimulai:

# power on

Kami sekarang memulai agen yang akan "mengingat pin" untuk rfcomm:

# agent on

Sekarang kami mengaktifkan mode pindai untuk menemukan perangkat kami dan dapat memasangkannya:

# scan on

Setelah beberapa detik MAC perangkat Anda akan muncul. Kami akan menyatakannya sebagai setelah. Kemudian, Anda hanya perlu memasangkan perangkat seperti ini:

# pair <MAC>

Anda akan diminta untuk mengetik PIN, secara default ada di 1234perangkat HC-05 saya. Anda dapat mencatat bahwa perangkat Anda terhubung kemudian terputus dengan pesan seperti itu:

[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

tapi itu bukan masalah. Anda tidak perlu terhubung, jadi sekarang Anda dapat keluar bluetoothctldengan mengetik Ctrl + D.

Berikan file yang dapat digunakan /dev/rfcomm0

Pertama, pastikan Anda tidak menjalankan perintah rfcomm sebelumnya. Memang, bahkan jika Anda menutup dengan Ctrl+Cprogram, itu masih berjalan di latar belakang.

sudo killall rfcomm

Sekarang, kamu bisa berlari

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

Perhatikan bahwa jika Anda mencoba menulis pada input rfcom, tidak ada yang terjadi. Anda harus menggunakan program lain.

Langkah ketiga dan terakhir: tulis ke dalam /dev/rfcomm0

Ada beberapa cara untuk menulis di file, tetapi perhatikan bahwa semua cara untuk melanjutkan melibatkan root. Saya jelaskan di sini beberapa program yang dapat melakukan itu (sehingga Anda dapat memilih tergantung pada kebutuhan Anda atau pada apa yang diinstal pada sistem Anda misalnya). Jika Anda lupa menjalankan program sebagai root, Anda mungkin memiliki kesalahan:

stty: /dev/rfcomm0: Device or resource busy

Opsi pertama: terhubung menggunakan screen

Layar adalah alat yang sangat kuat. Anda dapat menginstalnya (selalu berguna lagi) dengan menggunakan:

sudo apt-get install screen

dan kemudian jalankan

sudo screen /dev/rfcomm0

Jika Anda lupa menjalankannya sebagai root, Anda akan mendapatkan kesalahan seperti Aleksander:

[screen is terminating]

Untuk keluar, ketik "(CTRL + A) +: berhenti"

Opsi kedua: terhubung menggunakan minicom

Pasang itu

sudo apt-get install minicom

dan kemudian jalankan

sudo minicom -D /dev/rfcomm0

Jika Anda lupa menjalankannya sebagai root, Anda akan memiliki kesalahan seperti

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

Untuk keluar, ketik "Ctrl + A X".

Opsi ketiga: miniterm skrip python

Unduh skrip ini , dan jalankan:

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

Tulis langsung ke file

Pertama jalankan perintah berikut (9600 adalah baud rate):

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

Sekarang Anda dapat menulis di file ini seperti di file klasik:

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

dan secara teori baca dari itu menggunakan

sudo tail -f /dev/rfcomm0

Tapi saya tidak tahu baca tidak berfungsi, jika ada di antara Anda yang punya ide ...

tobiasBora
sumber
/def/rfcomm0harus/dev/rfcomm0
stewSquared