•     프롤로그
  •     출판도서
    • Notice
    • Preview
  •     모두의수학
  •     수학실험실
    • 고1수학
    • 수학1·2
    • 미적분
    • 확률통계
    • 기하
    • 응용수학
    • 3D프린팅
    • 호기심수학
    • webCDF
    • EnterpriseCDF
  •     그래프ART
    • v2.7
    • v5.0
  •     수학과교육
    • 수학생각
    • 수학과교육
  •     학습자료실
    • 동영상
    • 사진
    • 문서
    • 학습자료
    • 포스트
    • 저널
  •     사물인터넷
    • AIOT
    • Device
    • Arduino
    • RaspberryPi
  •     그래프스케치북

 

 

AIOT44.gif

 

 
  [RaspberryPi] 09-라즈베리파이 블루투스(파일_송수신)
  
 작성자 : 이장훈
작성일 : 2016-07-12     조회 : 7,226  



09-라즈베리파이3 : 블루투스 파일 송수신(라즈베리파이 ⇔ 모바일 or 노트북)

블루투스(Bluetooth)는 무선통신방식중의 하나이다. 앞서, 블루투스를 이용해 사운드를 출력(스피커)하였고, 또한 모바일과의 블루투스 연결(테더링)을 하여 인터넷을 사용하기도 하였다. 또 하나의 무선통신으로 중요한 것이 하나 있다. 바로 데이터(파일)의 송ㆍ수신 이다. 이번에는 라즈베리파이와 모바일(또는 노트북)의 파일에 대한 블루투스 송ㆍ수신 방법에 대하여 알아본다.

 


1. 이미 설치되어 있어야 할 Bluetooth 관련 패키지 확인

우리는 앞의 강의(08-모바일의 블루투스 테더링을 이용한 라즈베리파이 인터넷 연결)에서 라즈베리파이의 블루투스 활용을 위한 필수 패키지를 설치하였다. 혹시, 아직 미설치한 패키지가 있다면 라즈베리파이-모바일 블루투스 페어링을 하기전에 아래의 패키지들의 설치를 LX터미널에서 실행하도록 하자.

특히, sudo apt-get install bluez-tools bluez-obexd obexpushd를 설치하기 전에 라즈베리파이-모바일 블루투스 페어링을 해버린 상태라면, 양쪽의 등록된 페어링 장치를 삭제하고 패키지를 설치한 후에, 다시 페어링 하도록 한다. 본 패키지 설치는 모바일(노트북)에 있는 파일을 라즈베리파이로 블루투스방식의 전송을 할 때, 라즈베리파이가 FTP 혹은 OBEX 서버로의 기능을 수행할 수 있도록 하는 패키지이다. 

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo apt-get install pi-bluetooth 
sudo apt-get install bluetooth blueman bluez python-gobject python-gobject-2 
sudo apt-get install bluez-tools bluez-obexd obexpushd

 


2. 라즈베리파이 ⇒ 모바일(노트북) : 블루투스 파일전송

위의 설치가 잘 되었고, 라즈베리파이와 모바일(노트북)과의 블루투스 장치연결(페어링)이 잘 이루어졌다면 다음과 같이 라즈베리파이에 있는 데이터(사진 등과 같은 파일들)를 모바일로 블루투스 방식의 전송을 할 수 있다.

아래와 같이 라즈베리파이-MENU-기본설정-블루투스관리자를 열자.

600_01_블루투스관리자_열기.png

600_02_블루투스관리자_열린화면.png

 

 

이제, 전송할 데이터를 하나 만들자. 
여기서는 현재의 라즈베리파이 화면을 캡쳐한 사진파일을 모바일로 전송해 볼 것이다. 아래와 같은 키보드 자판에서 [Print Screen] 자판을 한 번 누른다.

600_키보드자판.jpg


Print Screen으로 캡쳐된 화면은 라즈베리파이 메뉴바에 있는 탐색기(File Manager) 아이콘을 실행하면 Pi 라는 폴더내에 캡쳐된 이미지파일(png)로 생성된다.

600_03_화면캡쳐_파일확인.png

 

이 파일을 더블클릭하면 사진보기 프로그램으로 열어볼 수 있다.

600_03_화면캡쳐_파일_열어본화면.png


이제, 이 파일(png)을 모바일로 전송해보자.
블루투스 관리자에서 모바일(Galaxy S6) 장치를 선택하고 마우스 오른쪽 버튼을 눌러, 파일보내기를 선택한다.

600_04_블루투스 파일전송(From라즈베리To모바일)_메뉴.png

 

 

이때, 아래와 같이 전송할 파일을 선택하는 팝업창이 하나 열리는데, 사진(png)파일이 저장되어 있는 위치인 홈에 들어가서 사진파일을 선택한다.

600_05_전송할 파일 선택 팝업창.png


이제는 모바일에서 파일수신을 수락해 주어야 한다.
라즈베리파이에서 블루투스 파일전송을 실행하면, 바로 모바일에서는 아래와 같이 수신을 허용할 것인지 메세지가 뜬다. 수락을 선택하기만 하면, 파일전송상태가 표시되며 일정시간이 지나면 전송이 완료됨을 알 수 있다. 이 수신된 사진은 모바일-갤러리(사진)-Download 에서 확인할 수 있으며, 만약 사진파일이 아닌 다른 데이터 파일인 경우 모바일-탐색기(내파일)를 통하여 찾을 수 있다.   

600_모바일로 파일이 전송되는 과정.png


라즈베리파이 ⇒ 노트북으로 블루투스 파일전송도 장치연결(페어링)후, 위와 같은 방법으로 진행하면 된다. 노트북의 경우 처음에는 수락여부를 묻는 권한요청 메세지가 나오는데 이때 항상허용을 선택하면, 앞으로는 승인여부의 질문없이 바로 수신할 수 있다. 수신된 파일은 내문서-Bluetooth Folder 내에 있다.


추가_권한요청.png

추가_권한요청_항상허용.png

600_06_노트북 블루투스 파일수신 화면.png

600_06_노트북 블루투스 파일수신 위치.png
 
 
  
3. 모바일(노트북) ⇒ 라즈베리파이 : 블루투스 파일전송

라즈베리파이 ⇒ 모바일(노트북) 역방향인 모바일(노트북) ⇒ 라즈베리파이 블루투스 파일전송은 다소 까다롭니다. 앞서, 언급한 sudo apt-get install bluez-tools bluez-obexd obexpushd를 반드시 설치하고 장치연결(페어링) 한 후, 아래와 같이 OBEX 서버를 실행한 상태에서 진행하여야 한다. 먼저 라즈베리파이에서 LX터미널 창을 열고 다음의 명령어를 실행한다. 여기서 "/home/pi/Downloads"는 블루투스로 전송받을 파일의 저장위치 이다.

bt-obex -s "/home/pi/Downloads"

600_08_LX터미널 OBEX명령어 실행.png

위와 같이 라즈베리파이의 OBEX 서버를 실행시킨 상태에서, 모바일에서 전송하고자 하는 파일(사진)을 열어, 공유를 선택한다.

600_1 (2).jpg

모바일에서 사진공유를 선택하면, 아래와 같은 팝업창이 뜨는데 '블루투스'를 선택한다.

600_4 (2).jpg

블루투스를 선택하면, 현재 모바일에 등록된 블루투스 장치목록이 나타난다. 나의 라즈베리파이(raspberrypi)를 선택한다. 

600_2 (2).jpg

블루투스 디바이스를 raspberrypi로 선택하고 나면, 모바일은 전송상태를 표시하고 동시에 라즈베리파이의 LX터미널에서는 수신여부를 묻는 메세지가 나타난다. y를 입력하고 엔터를 치면 수신이 시작된다.

600_3 (2).png

600_09_LX터미널수신허용질문.png

600_10_LX터미널수신완료화면.png


위와 같이 파일전송이 종료(100%)되면, 라즈베리파이-탐색기에서 pi-Downloads 폴더에 수신된 파일(사진)을 확인할 수 있다.

600_11_수신파일확인.png

 

 

노트북도 방법은 같다. 참고로 나의 노트북은 Windows7을 사용환경이다. 라즈베리파이 LX터미널에서 OBEX 서버실행을 닫지만 않는다면, 계속하여 블루투스 파일수신을 할 수 있다.

먼저, 노트북에서 작당한 파일(사진)을 선택하고 마우스 오른쪽 버튼을 눌러 'Bluetooth로 전송할 대상'을 선택한다.

 

600_2016-07-17 오후 1-46-24.png

 

이후 전송할 대상(장치)을 검색하는데... '취소' 버튼을 누르면, 다음의 파일작업관리자 팝업창이 나타난다.

 

600_2016-07-17 오후 1-47-04.png

 

600_2016-07-17 오후 1-47-19.png


추가 버튼을 누르면, 노트북에 연결된 블루투스 장치 목록이 나타난다. raspberrypi를 선택하고 확인 한다.

600_2016-07-17 오후 1-48-11.png


확인과 동시에 라즈베리파이의 LX터미널 창에는 파일의 수신여부를 묻는 메세지가 나타난다. y를 입력하고 엔터를 치면, 승인하고 파일을 수신받는다.

600_2016-07-17 오후 1-48-39.png

600_2016-07-17 오후 1-49-05.png


위와 같이 파일전송이 종료(100%)되면, 라즈베리파이-탐색기에서 pi-Downloads 폴더에 수신된 파일(사진)을 확인할 수 있다.

600_2016-07-17 오후 1-50-34.png


이와 같이 ( 라즈베리파이 ⇔ 모바일 or 노트북 ) - 블루투스 파일 송ㆍ수신의 방법을 살펴보았다. 나름, 내가 겪은 시행착오의 어려운 시간들을 생각하며 자세하게 기록하고자 노력하였지만, 사용자들의 환경에 따라 추가적인 조치가 필요할 수도 있을 것이다.

사실, 블루투스 파일 전송(송ㆍ수신)의 속도는 그렇게 빠르지는 못하다. FTP-서버, WIFI-다이렉트 등 인터넷 기반의 다른 방법이 더 좋은 수단이 될 것이다. 그러함에도 라즈베리파이3에서 처음 추가된 디바이스인 블루투스 모듈을 한번쯤은 활용해봐야 하겠다는 생각과 인터넷 환경이 미치지 못할 때의 나름의 대안으로 사용방법을 소개하였다. 그동안의 경험에 대한 소견은 라즈베리파이3 에서의 블루투스 장치는 아직 불안정한 느낌(ex. 블루투스 테더링, 블루투스 스피커의 간헐적 사운드 끊김현상 등)이 들었다. 펌웨어 업데이트 등으로 점차 좋아질 것이라 기대한다. 
 
  
 
   
 

 
 
  Copyright ⒞ 수학생각(MATHOUGHT.COM) Since 2000 파주광일중학교 & 파주여자고등학교 수학과 이장훈 ☏ 031) 940-1935