라즈베리파이로 블루투스 통신하기

메이커 2018-09-27 (목) 20:45 6년전 41189  

라즈베리파이를 사용하면서 블루투스 기능을 사용해볼 기회가 많지 않습니다. 

주로, 1) 블루투스 스피커를 사용하거나 2) 블루투스 키보드와 마우스를 연결하는데 사용하곤하죠. 

 

이번 포스팅은, 라즈베리파이의 블루투스 기능을 통해서 스마트폰으로 데이터를 전송하고, 반대로 스마트폰에서 라즈베리파이로 데이터를 전송하는 방법에 대해서 공유합니다. 

 

1) 패키지 업데이트 하기

 

sudo apt-get update

sudo apt-get upgrade


2) 블루투스 패키지 설치하기


sudo apt-get install bluetooth blueman bluez


3) 라즈베리파이 재부팅하기


sudo reboot


4) 블루투스 관련 파이썬 패키지 설치하기


sudo apt-get install python-bluetooth


5) 블루투스 페어링하기


sudo bluetoothctl 


[bluetooth]#power on

[bluetooth]#agent on

[bluetooth]#discoverable on

[bluetooth]#pairable on

[bluetooth]#scan on

 

c164e88803c2c12e393e41151b020def_1538047

그 다음에는 페어링할 디바이스의 주소를 다음과 같이 적습니다. Galaxy Grand 2의 주소는 4C:3C:16:17:99:1E로 적혀 있었으며, 다음과 같이 추가할 수 있습니다. 


pair 4C:3C:16:17:99:1E

 

c164e88803c2c12e393e41151b020def_1538048
 

스마트폰에서 인증번호가 뜨고, yes를 입력하면 다음과 같이 페어링이 완료됩니다. 

 

c164e88803c2c12e393e41151b020def_1538048
 

 

6) 블루투스 어플 다운받기 


BlueTerm이라는 어플을 다운받아서 데이터를 전송해보겠습니다. 


7) 파이썬 코드 작성하기 (nano bluepi.py)


import bluetooth

 

server_socket=bluetooth.BluetoothSocket( bluetooth.RFCOMM )

 

port = 1

server_socket.bind(("",port))

server_socket.listen(1)

 

client_socket,address = server_socket.accept()

print("Accepted connection from ",address)

while 1:

 data = client_socket.recv(1024)

 print("Received: %s" % data)

 if (data == "q"):

  print ("Quit")

  break

 

client_socket.close()

server_socket.close()

 


8) Blueterm 어플을 실행하고, 라즈베리파이를 페어링합니다. 

 

c164e88803c2c12e393e41151b020def_1538048


9) 파이썬 코드 실행하기


python3 bluepi.py 를 통해 실행합니다.


c164e88803c2c12e393e41151b020def_1538048

 

 

 


메세지를 보내면, 라즈베리파이에서 데이터를 받는 것을 확인할 수 있습니다. 

아두이노와 HC-06으로 통신해보셨다면, 이제 라즈베리파이를 이용해서 데이터 통신도 해보세요~

한큐에 라즈베리파이를 정복하려면, 가성비 우주 최강인 다음 제품으로. 




메카리워즈 Image Map


모바일 버전으로 보기