Bir ham seri terminali bluetooth bağlantısına nasıl bağlarım?


10

Bluetooth sürücüleri sunmayan bir Totalstation'a bağlanmaya çalışıyorum. Bunu sadece teşhis amaçlı yaptığım için, kurulan seri bağlantıdan gelen ham çıktıyı görmek istiyorum.

Bluetooth bağlantısından terminale tüm çıkışları aktarmak için ne yapmam gerekir ?


Bluetooth-> Seri, Seri-> Bluetooth veya iki yönlü mü yapıyorsunuz?
Ocak'ta nanofarad

Totalstation Bluetooth <-> Ubuntu Bluetooth. Tüm istasyonun USB üzerinden standart seri yapılandırmaya sahip olduğu göz önüne alındığında, Bluetooth üzerinden seri bağlantı kurduğundan şüpheleniyorum. Tabii ki, tamamen yanlış olabilirim, bu noktada yanlış olduğum ve bluetooth'un XYZ kullandığı cevaba tamamen izin verilir.
Brian Ballsun-Stanton

İki yönlü kanıt açısından, "ekran" üzerinden boş bir seri bağlantı kurmayı başardım, bu da klavyede bir tuşa bastığımda cihazda bir bip sesine neden oluyor. Bu yüzden orada yarı yolda olduğumdan şüpheleniyorum, sadece yarısını bilmiyorum.
Brian Ballsun-Stanton

Hızlı bir diyagram çizebilir misiniz? Seri veya bluetooth üzerinden seri olup olmadığını ve verileri kimin nereye aktardığını anlayamıyorum. Sadece GIMP veya başka bir şeyle yapın ve buraya yükleyin
nanofarad

Çok iyi çalışıyor ama RFCOMM ile bazı aksaklıklarla karşılaşıyorum. SCREEN ile bağlantı kurduğumda, bazı AT Dizileri otomatik olarak "ATE1 E0" <RETURN> üç kez yazılır. Bu nedenle, Raspi tarafında bazı "Oturum açılamadı" belirir. Bundan sonra, başarıyla giriş yapabilir ve başka herhangi bir aksaklık olmadan terminal oturumunu kullanabilirim.
Cody

Yanıtlar:


5

Brian'ın cevabına ek olarak. Ekran benim için çalışmadı, hemen görüntüleniyor[screen is terminating]

Bu miniterm python betiğini buldum . Kullanımı benzer:

sudo miniterm.py /dev/rfcomm0

12

1) hcitool scanAygıtın Mac adresini bulmak için kullanın .

Cihaz, bilinen bir pim ile bağımlı moda ayarlanmalıdır. Bilinen bir raptiyeyi kullanmıyorsanız, ubuntu bir tane oluşturur ve genellikle ölçme aracınızın tıknaz menülerine girmek için zamanınız olmaz.

2) Bunun gerekli olduğundan tamamen emin değilim, ancak bluetooth gui menüsünde cihazı eşleştirin.

3) /etc/bluetooth/rfcomm.conf içinde

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

"Bağlama yok" önemlidir, aksi takdirde cihaza gerçekten erişmek için her türlü sorunu sunan otomatik olarak bağlamaya çalışacaktır (ilişkili olduğu zaman oldukça seçici olduğu için)

4) sudo rfcomm connect 0

Hatalarınız varsa, bluetooth hizmetini yeniden başlatın.

5) screen /dev/rfcomm0

Bu şekilde iletilen gerçek seri komutlar için satıcınıza başvurun ve dilenin.


3
Ben "connect 0 RFCOMM" çalıştırmayı denediğinizde "dev parametre eksik" olsun
someonewithpc

Conf dosyanızı doğru bir şekilde düzenlediniz mi?
Brian Ballsun-Stanton

5
Sudo rfcomm connect deneyin rfcomm0 00: 07: 80: 44: 4F: 37
elopio

@ elopia'nın oneliner'ı çok basit. Benim için çalıştı
ptetteh227

10

İşte benim arduino takılı bir HC-05 bluetooth cihazına bağlanmak için benim yol. Brian'ın cevabında olduğu gibi bir dosya yazmasına gerek yok, ancak fikir benzer. Ben HC-05 cihazında bir baud 9600 hızı kurulumu ile test ettim.

İlk adım: cihazı eşleştirin ve PIN kodunu girin

GUI'den eşleştirmeyi ayarlamaya çalıştım, ama işe yaramadı. İşte benim için çalışan komut satırı yolu. İlk olarak, cihazı komut satırından eşleştirelim. Çalıştırmak :

sudo bluetoothctl

Bluetooth cihazının başlatıldığından emin olun:

# power on

Şimdi "pimi hatırlayacak" ajanı başlatıyoruz rfcomm:

# agent on

Şimdi tarama modunu cihazımızı bulmak ve eşleştirmek için etkinleştiriyoruz:

# scan on

Birkaç saniye sonra cihazınızın MAC'si görünmelidir. Sonrası olarak göstereceğiz. Ardından, cihazı şu şekilde eşleştirmeniz yeterlidir:

# pair <MAC>

Bir PIN girmeniz istenir, varsayılan olarak 1234HC-05 aygıtımda bulunur. Cihazınızın şu şekilde bir mesajla bağlanıp bağlantısının kesilebileceğini unutmayın:

[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

ama bu bir sorun değil. Bağlanmanıza gerek yok, böylece şimdi bluetoothctlyazarak çıkabilirsiniz Ctrl + D.

Kullanılabilir bir dosya sağlayın /dev/rfcomm0

Öncelikle, daha önce herhangi bir rfcomm komutu çalıştırmadığınızdan emin olun. Gerçekten de, Ctrl+Cprogramı kapatsanız bile arka planda çalışır.

sudo killall rfcomm

Şimdi koşabilirsin

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

Eğer rfcom girdisi üzerine yazmaya çalışırsanız, hiçbir şey olmadı. Başka bir program kullanmanız gerekiyor.

Üçüncü ve son adım: /dev/rfcomm0

Dosyaya yazmanın birkaç yolu vardır, ancak devam etmenin tüm yollarının kök içerdiğini unutmayın. Burada bunu yapabilen birkaç program açıklıyorum (böylece ihtiyacınıza veya örneğin sisteminizde yüklü olana bağlı olarak seçim yapabilirsiniz). Programı root olarak çalıştırmayı unutursanız, bir hatayla karşılaşabilirsiniz:

stty: /dev/rfcomm0: Device or resource busy

İlk seçenek: kullanarak bağlan screen

Ekran çok güçlü bir araçtır. Şunları kullanarak yükleyebilirsiniz (artık her zaman kullanışlıdır):

sudo apt-get install screen

ve sonra koş

sudo screen /dev/rfcomm0

Kök olarak çalıştırmayı unutursanız, Aleksander'ın aldığı gibi bir hata alırsınız:

[screen is terminating]

Çıkmak için "(CTRL + A) +: quit" yazın.

İkinci seçenek: kullanarak bağlan minicom

Yükle

sudo apt-get install minicom

ve sonra koş

sudo minicom -D /dev/rfcomm0

Kök olarak çalıştırmayı unutursanız, aşağıdaki gibi bir hata alırsınız

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

Çıkmak için "Ctrl + A X" yazın.

Üçüncü seçenek: python script miniterm

Bu komut dosyasını indirin ve çalıştırın:

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

Doğrudan dosyaya yazın

Öncelikle aşağıdaki komutu çalıştırın (9600 baud hızıdır):

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

Şimdi bu dosyaya klasik bir dosya gibi yazabilirsiniz:

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

ve teorik olarak kullanarak

sudo tail -f /dev/rfcomm0

Ama bilmiyorum, eğer bir fikriniz varsa okuma işe yaramaz ...


/def/rfcomm0olmalı/dev/rfcomm0
stewSquared
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.