Saya mencoba menyambung ke Totalstation yang tidak menawarkan driver bluetooth. Karena saya melakukan ini untuk alasan diagnostik murni, saya ingin melihat output mentah dari koneksi serial yang dibuat.
*Apa yang harus saya lakukan untuk menyalurkan semua * output dari koneksi bluetooth ke terminal?
hcitool scan
untuk menemukan alamat Mac perangkat.Perangkat harus disetel ke mode slave dengan pin yang diketahui. Jika anda tidak menggunakan pin yang diketahui, ubuntu akan membuat pin dan anda biasanya tidak akan punya waktu untuk memasukkannya ke dalam menu kikuk pada alat ukur anda.
Saya tidak sepenuhnya yakin ini perlu, tetapi di menu bluetooth gui, pasangkan perangkat.
di /etc/bluetooth/rfcomm.conf
rfcomm0 {
bind no;
device 00:07:80:44:4F:37;
channel 1;
comment "Serial Port";
}
"bind no" penting, jika tidak, ia akan mencoba untuk mengikat secara otomatis, yang menghadirkan segala macam masalah untuk benar-benar mengakses perangkat (karena ia cukup pilih-pilih tentang kapan dikaitkan)
sudo rfcomm menghubungkan 0
Jika Anda mengalami kesalahan, mulai ulang layanan bluetooth.
layar /dev/rfcomm0
Untuk perintah serial aktual yang ditransmisikan dengan cara ini, hubungi vendor Anda dan mohon.
Inilah cara saya untuk melanjutkan koneksi ke perangkat bluetooth HC-05 yang terpasang pada arduino saya. Tidak perlu menulis file seperti pada jawaban Brian, tetapi idenya serupa. Saya telah mengujinya dengan pengaturan baud 9600 rate pada perangkat HC-05.
Saya mencoba mengatur dari GUI untuk memasangkan, tetapi tidak berhasil. Berikut ini adalah cara baris perintah untuk melanjutkan yang berhasil untuk saya. Pertama, mari kita pasangkan perangkat dari baris perintah. Jalankan:
sudo bluetoothctl
Pastikan bahwa perangkat bluetooth sudah dimulai:
# power on
Kita sekarang memulai agen yang akan "mengingat pin &" untuk rfcomm
:
# agent on
Sekarang kami mengaktifkan mode pemindaian untuk menemukan perangkat kami dan dapat memasangkannya:
# scan on
Setelah beberapa detik, MAC perangkat Anda akan muncul. Kami akan menandainya sebagai
# pair <MAC>
Anda akan diminta untuk mengetikkan PIN, secara default adalah 1234
pada perangkat HC-05 saya. Anda dapat mencatat bahwa mungkin saja 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
tetapi itu bukan masalah. Anda tidak perlu terhubung, jadi sekarang Anda dapat keluar dari bluetoothctl
dengan mengetik Ctrl + D
.
/dev/rfcomm0
Pertama, pastikan bahwa Anda tidak menjalankan perintah rfcomm sebelumnya. Bahkan, meskipun anda menutup program dengan ```Ctrl+C````, program tersebut tetap berjalan di background.
sudo killall rfcomm
Sekarang, anda bisa menjalankan
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 perlu menggunakan program lain.
Ada beberapa cara untuk menulis pada 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 terinstal pada sistem Anda misalnya). Jika Anda lupa menjalankan program sebagai root, Anda mungkin mengalami kesalahan:
stty: /dev/rfcomm0: Device or resource busy
screen
Screen adalah alat yang sangat powerfull. 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 error seperti yang didapatkan Aleksander:
[screen is terminating]
Untuk keluar, ketik "Ctrl A + :exit"
minicom
Instal
sudo apt-get install minicom
dan kemudian jalankan
sudo minicom -D /dev/rfcomm0
Jika Anda lupa menjalankannya sebagai root, Anda akan mengalami kesalahan seperti
minicom: cannot open /dev/rfcomm0: Device or resource busy
Untuk keluar, ketik "Ctrl + A X".
Unduh script ini, dan jalankan:
chmod +x miniterm.py
sudo ./miniterm.py /dev/rfcomm0
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 pada file klasik:
sudo su -c "echo 'message' > /dev/rfcomm0"
dan secara teori membaca darinya menggunakan
sudo tail -f /dev/rfcomm0
Tapi saya tidak tahu membaca tidak bekerja, jika ada di antara Anda yang punya ide ...
Sebagai tambahan untuk jawaban Brian. Layar tidak bekerja untuk saya, langsung menampilkan [layar sedang berhenti]
Jadi saya menemukan skrip miniterm python ini. Penggunaannya mirip:
sudo miniterm.py /dev/rfcomm0