라즈베리파이에서 파이썬 BT/BLE 프로그래밍을 위한 라이브러리 설치

 

Bluetooth 기능을 내장한 라즈베리파이3 B  모델 – 블루투스 제어용 Python 라이브러리 사용법입니다.

 

 

1. 블루투스 모듈 설치

 

파이썬 설치 시 블루투스 모듈이 추가 되게 하기 위해 블루투스 모듈을 먼저 설치합니다.

Python 3.6 버전 이후 PIP 이용시 SSL 인증을 요구하므로 다음 모듈들을 설치합니다.

 

 

2. Python 설치

 

파이썬 관련 유틸리티가 설치가 된 상태에서 파이썬을 재빌드해서 설치해야 이후에 블루투스 관련 모듈을 사용할 수 있습니다.

파이썬 소스 빌드 과정은 30~40분 정도 소요됩니다.

 

 

3.  시리얼 포트 등록

 

 

 

4. 블루투스 서비스 실행 옵션 수정

 

 

 

5. 장치 내 블루투스 Discoverable 상태로 변경

 

이후 스마트폰에서 블루투스를 선택해  라즈베리파이가 검색되는지 확인합니다.

 

 

6. pybluez 모듈 설치

 

BT/BLE 프로그래밍을 위해 PIP를 이용해 pybluez와 pybleno를 설치합니다.

 

 

7. 확인

 

bluetoothctl – 블루투스 쉘로 접속해서 주변 BT 장치들을 스캔해 봅니다.

 

주변에 내가 설정해둔 BT 기기가 있다면 그 기기의 6 byte MAC address 가 필요합니다.

이제 이 기기에 연결을 해보겠습니다.

 

일부 BT 기기에 연결할 때 PIN 코드 입력 메시지가 뜨지 않는 문제가 발생하곤 합니다. 그런 기기들은 Python 코드로 접속할 때도 “연결 요청이 거부되었습니다” 에러 메시지 뱉으면서 접속이 안됩니다.

그런 경우 bluetoothctl 쉘에서 agent NoInputNoOutput 명령어 실행해주고 pairing, connection 한번 해주면 됩니다.

 

 

8. Python 코드

 

라즈베리파이가 Master 역할을 해서 주변 센서장치를 탐색하고 연결할 때는 아래 코드를 사용합니다.

센서 장치가 데이터를 보내주면 받은 데이터를 그대로 다시 전송해주는 echo 예제입니다. 크게 scan 파트와 connection 파트로 나누어져 있으며, 코드 자체는 어렵지 않으니 응용해서 사용하세요.

 

다음 예제는 라즈베리파이가  센서장치처럼 slave 역할을 하는 코드입니다. 핸드폰에 앱을 만들어서 연결한 뒤, 데이터를 보내주면 받은 데이터를 그대로 다시 전송해주는 echo 예제입니다.

 

 

참고자료

 

Post Author: yscwcb

댓글 남기기

이메일은 공개되지 않습니다.