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 1234
perangkat 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 bluetoothctl
dengan 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+C
program, 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 ...