원시 직렬 터미널을 블루투스 연결에 연결하는 방법은 무엇입니까?


10

블루투스 드라이버를 제공하지 않는 Totalstation에 연결하려고합니다. 순수한 진단을 위해이 작업을 수행하면서 설정된 직렬 연결의 원시 출력을보고 싶습니다.

블루투스 연결의 모든 출력을 터미널 로 파이프하려면 어떻게해야 합니까?


Bluetooth-> Serial, Serial-> Bluetooth 또는 양방향입니까?
nanofarad

Totalstation Bluetooth <-> 우분투 블루투스. 토탈 스테이션에 USB를 통한 표준 직렬 구성이 있다고 가정하면 Bluetooth를 통해 직렬 연결을 설정하는 것 같습니다. 물론, 나는 완전히 틀릴 수 있습니다.이 시점에서 내가 틀렸고 블루투스가 XYZ를 사용한다는 대답은 완전히 허용됩니다.
Brian Ballsun-Stanton

양방향 증명 측면에서, 키보드의 키를 눌렀을 때 장치에서 오류 경고음을 발생시키는 "스크린"을 통해 빈 직렬 연결을 설정했습니다. 그래서 나는 반쯤 거기에 있다고 생각합니다. 나는 단지 절반을 모릅니다.
Brian Ballsun-Stanton

빠른 도표를 작성할 수 있습니까? 시리얼 오버인지 블루투스 오버인지, 누가 어디로 데이터를 전달하는지 이해할 수 없습니다. 김프 나 다른 방법으로 그냥 여기에 업로드하십시오
nanofarad

잘 작동하지만 RFCOMM에 결함이 있습니다. SCREEN으로 연결하면 일부 AT 시퀀스가 ​​자동으로 "ATE1 E0"<RETURN>으로 세 번 입력됩니다. 이로 인해 일부 "로그인 실패"가 Raspi쪽에 나타납니다. 그런 다음 성공적으로 로그인하고 더 이상 글리치없이 터미널 세션을 사용할 수 있습니다.
Cody

답변:



12

1) hcitool scan장치의 Mac 주소를 찾는 데 사용 합니다.

장치는 알려진 핀으로 슬레이브 모드로 설정해야합니다. 알려진 핀을 사용하지 않으면 우분투가 핀을 만들어 일반적으로 측정 도구의 복잡한 메뉴에 입력 할 시간이 없습니다.

2) 이것이 꼭 필요한지는 확실하지 않지만 블루투스 GUI 메뉴에서 장치를 페어링하십시오.

3) /etc/bluetooth/rfcomm.conf에서

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

"바인드 번호 없음"이 중요합니다. 그렇지 않으면 자폐 적으로 바인딩하려고 시도합니다. 이로 인해 실제로 디바이스에 액세스 할 때 발생하는 모든 종류의 문제가 발생합니다 (연결될 때 매우 까다롭기 때문에).

4) sudo rfcomm connect 0

오류가 있으면 블루투스 서비스를 다시 시작하십시오.

5) screen /dev/rfcomm0

이 방법으로 전송 된 실제 직렬 명령은 공급 업체에 문의하여 구걸하십시오.


3
나는 "연결 0 RFCOMM"를 실행하려고하면 "DEV 매개 변수를 누락"얻을
someonewithpc

conf 파일을 올바르게 편집 했습니까?
Brian Ballsun-Stanton

5
sudo rfcomm connect rfcomm0 시도 00 : 07 : 80 : 44 : 4F : 37
elopio

@elopia의 oneliner는 매우 간단합니다. 그것은 나를 위해 일했다
ptetteh227

10

내 arduino에 연결된 HC-05 블루투스 장치에 연결하는 방법은 다음과 같습니다. Brian의 답변과 같은 파일을 작성할 필요는 없지만 아이디어는 비슷합니다. HC-05 장치에서 전송 속도 9600 속도로 테스트했습니다.

첫 번째 단계 : 장치를 페어링하고 PIN을 제공하십시오

GUI에서 페어링을 설정하려고 시도했지만 작동하지 않았습니다. 여기 나를 위해 일한 진행 명령 줄 방법이 있습니다. 먼저 장치를 명령 줄에서 페어링 해 보겠습니다. 운영 :

sudo bluetoothctl

블루투스 장치가 시작되었는지 확인하십시오 :

# power on

이제 "핀을 기억하는"에이전트를 시작합니다 rfcomm.

# agent on

이제 스캔 모드를 활성화하여 장치를 찾아 페어링 할 수 있습니다.

# scan on

몇 초 후에 장치의 MAC이 나타납니다. 우리는 그것을 이후로 표시 할 것입니다. 그런 다음 장치를 다음과 같이 페어링하면됩니다.

# pair <MAC>

기본적 1234으로 내 HC-05 장치에 PIN을 입력하라는 메시지가 표시됩니다 . 다음과 같은 메시지로 장치를 연결하고 연결을 끊을 수 있습니다.

[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

파일을 작성하는 방법에는 여러 가지가 있지만 진행하는 모든 방법에는 루트가 포함됩니다. 여기에이를 수행 할 수있는 몇 가지 프로그램이 설명되어 있습니다 (예를 들어 필요에 따라 또는 시스템에 설치된 항목에 따라 선택할 수 있음). 프로그램을 루트로 실행하는 것을 잊어 버린 경우 오류가 발생할 수 있습니다.

stty: /dev/rfcomm0: Device or resource busy

첫 번째 옵션 : 연결 screen

화면은 매우 강력한 도구입니다. 다음을 사용하여 설치할 수 있습니다 (더 이상 유용합니다).

sudo apt-get install screen

그런 다음 실행

sudo screen /dev/rfcomm0

루트로 실행하는 것을 잊어 버린 경우 Aleksander와 같은 오류가 발생합니다.

[screen is terminating]

종료하려면 "(CTRL + A) + : quit"를 입력하십시오.

두 번째 옵션 : 연결 minicom

설치

sudo apt-get install minicom

그런 다음 실행

sudo minicom -D /dev/rfcomm0

루트로 실행하는 것을 잊어 버린 경우 다음과 같은 오류가 발생합니다

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

종료하려면 "Ctrl + A X"를 입력하십시오.

세 번째 옵션 : python script miniterm

이 스크립트를 다운로드 하고 다음을 실행하십시오.

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

하지만 아이디어가 있다면 읽기가 작동하지 않는다는 것을 모르겠습니다 ...


/def/rfcomm0해야/dev/rfcomm0
stewSquared
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.