RaspberryPizero에서 블루투스 시리얼 통신을하는 방법

RaspberryPi와 Android 스마트 폰을 블루투스로 통신하고 싶습니다.


  • RaspberryPizero가 있습니다
  • 작기 때문에 스마트 폰과 무선으로 협력하고 싶다
  • wifi는 액세스 포인트가 필요 & 스마트 폰은 인터넷에 연결하고 싶다

  • RaspberryPizero 소개


  • 소형 PC라고 불리는 RaspberryPi의 더욱 소형판
  • 작지만 Linux가 작동 가능
  • 버전이 올라 RaspberryPi 용 카메라를 연결할 수있게되었습니다 (필요한 zero 용 카메라 케이블)

  • 블루투스로 시리얼 통신


  • Bluetooth 통신 방법 중 하나 (자세한 설명은 할애)
  • 안드로이드 샘플 앱의 일부를 수정하기 만하면 통신 할 수 있습니다 (간단)

  • 만든 것, 만드는 법



    RaspberryPizero 편


  • 초기 설정은 RaspberryPizero의 설정이 필요하기 때문에, 직접 또는 ssh 접속할 수 있도록 특히
  • 블루투스 USB 동글 필요
  • OS는 Raspbian
  • Bluetooth 라이브러리 도입
  • sudo apt-get install bluez
    sudo apt-get install bluetooth blueman bluez-tool
    

  • 블루투스 페어링
  • 페어링 할 장치 (이번에는 Android)를 검색 가능 상태로 두십시오.
    sudo bluetoothctl -a
    scan on //ペアリング対象のアドレスを確認
    scan off
    pair <ペアリング対象のアドレス>
    trust <ペアリング対象のアドレス> //次回起動時に自動接続
    

  • Bluetooth SPP (직렬 통신) 설정
  • /etc/systemd/system/dbus-org.bluez.service에 다음 설명을 추가 (설정 후 재부팅하는 것이 좋습니다)
  • ExecStart=/usr/lib/bluetooth/bluetotthd -C
    ExecStartPost=/usr/bin/sdptool add SP
    

  • 블루투스 직렬 연결을 C 언어에서 사용
  • 라이브러리 소개
  • sudo apt-get install libbluetooth-dev
    
  • RFCOMM을 이용한 접속, 통신
  • 샘플 코드 rfcomm-server.c 사용 h tp : // / p p. c 사이 l. 미 t. 에즈/아l rt/bぅ에~인 t로/x502. HTML
  • 빌드
  • gcc <.cファイル> -o <出力ファイル> -lbluetooth
    
  • 출력 된 파일을 실행하면 Bluetooth 서버로 페어링 된 장치에서 연결을 기다리는 상태가됩니다.


  • Android 앱편


  • AndroidStudio 사용
  • 시작할 때 Import an Android code sample에서 Bluetooth Chat를 선택하여 프로젝트 만들기

  • 코드 수정
  • 샘플 프로젝트가 Blueotth 직렬 통신을 지원합니다.
  • BluetoothChatService.java의 50,51 행을 다음과 같이 변경 (시리얼 통신용으로 UUID를 변경)
  • private static final UUID MY_UUID_SECURE =
                UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
    
  • 디버그 등으로 RaspberryPizero와 페어링 한 Android 기기에 설치


  • 연결


  • RaspberryPizero로 만든 rfcomm-server 프로그램을 시작합니다.
  • Android에 설치된 Bluetothth Chat 앱을 시작합니다
  • Android 앱의 Connect a device - secure 또는 Bluetooth 마크에서 페어링 한 RaspberryPizero를 선택
  • 텍스트 상자에 문자를 입력하고 send를 누릅니다
  • 입력 문자와 같은 문자가 돌아오면 시리얼 통신 성공!



  • 미래의 도전


  • 초기 페어링 설정에 ssh 또는 직접 입력이 필요하기 때문에 더 쉽게 페어링하고 싶습니다
  • 여러 장치에서 연결하거나 다른 Bluetooth 프로토콜 통신과 함께 사용하여 무언가를 만들고 싶습니다
  • 좋은 웹페이지 즐겨찾기