라즈베리 파이 BLE
이 튜토리얼은 Raspberry Pi를 사용하여 BLE HM-10 모듈을 제어하는 방법을 안내합니다. 자세히 배우게 될 내용은 다음과 같습니다:
- Raspberry Pi에서 Bluetooth Low Energy (BLE) 기술의 활용
- BLE를 통해 Raspberry Pi에서 스마트폰 앱으로 데이터 전송
- BLE를 통해 스마트폰 앱에서 Raspberry Pi로 데이터 수신
- BLE를 통해 스마트폰 앱으로 Raspberry Pi 제어
![라즈베리 파이 ble](https://newbiely.kr/images/cover/raspberry-pi-ble.jpg)
이 튜토리얼의 목적:
- Raspberry Pi와 스마트폰 앱 간의 BLE를 통한 데이터 교환 방법을 보여준다.
- HM-10 블루투스 저에너지 모듈을 사용한다.
- 안드로이드에서 Bluetooth Serial Monitor 앱을 시연하지만, 어떤 안드로이드/iOS 앱도 사용할 수 있다.
- 스마트폰 앱을 통해 Raspberry Pi에 연결된 다양한 장치를 제어하는 방법을 보여주며, LED와 서보 모터를 포함한 예시를 제공한다.
이 튜토리얼은 블루투스 저에너지(BLE, 블루투스 4.0)에 초점을 맞추고 있다는 점을 인식하는 것이 중요합니다. 클래식 블루투스(블루투스 2.0)에 대한 정보가 필요하다면, 유사한 튜토리얼 라즈베리 파이 - 블루투스를 참조하십시오.
준비물
1 | × | 라즈베리 파이 5 | 아마존 | |
1 | × | HM-10 BLE 블루투스 모듈 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) 라즈베리 파이용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
1 | × | (추천) 라즈베리 파이 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 | |
1 | × | (추천) 라즈베리 파이용 HDMI 터치 스크린 모니터 | 아마존 |
HM-10 블루투스 모듈에 대하여
HM-10은 직렬 BLE 모듈로, 직렬을 Bluetooth 저전력으로 변환하는 역할을 합니다. 이 모듈은 다음과 같은 작업을 수행합니다:
- Serial RX 핀에서 데이터를 수신하여 BLE를 통해 스마트폰과 같은 페어링된 장치로 전송
- 페어링된 장치로부터 BLE를 통해 데이터를 수신하고 이를 Serial TX 핀으로 전송.
Raspberry Pi가 스마트폰 앱(Android/iOS)과 통신할 때, 다음 단계들이 진행됩니다:
- Raspberry Pi와 HM-10 블루투스 모듈 간의 시리얼 핀을 통한 연결 설정
- 스마트폰 앱과 HM-10 블루투스 모듈의 페어링
- 시리얼에 데이터를 쓰는 방식으로 Raspberry Pi에서 스마트폰 앱으로 데이터 전송
- 시리얼에서 데이터를 읽어 스마트폰 앱으로부터 데이터 수신
- Raspberry Pi에는 추가적인 BLE 코드가 필요하지 않음.
BLE HM-10 모듈 핀아웃
![ble 핀아웃](https://newbiely.kr/images/tutorial/hm-10-bluetooth-pinout.jpg)
HM-10 BLE 모듈에는 6개의 핀이 있습니다:
- BKR 핀: 이 핀은 모듈의 동작을 제어하는 데 사용됩니다. 초보자라면 이 핀은 무시해도 됩니다.
- RX 핀: 이 핀은 직렬 데이터 핀이며 Raspberry Pi의 TX 핀에 연결해야 합니다. 이 핀으로부터 수신된 데이터는 Bluetooth로 전송됩니다.
- TX 핀: 이 핀은 직렬 데이터 핀이며 Raspberry Pi의 RX 핀에 연결해야 합니다. BLE를 통해 수신된 데이터는 일렬 데이터로 이 핀에 전송됩니다.
- GND 핀: 이 핀은 전원 핀이며 전원 공급의 GND에 연결해야 합니다.
- VCC 핀: 이 핀은 전원 핀이며 공급 전압의 3.3V에 연결해야 합니다.
- STATE 핀: 이 핀은 작업 상태를 나타냅니다. 스탠바이 모드에서는 500ms 펄스로 깜박이며, 연결 상태에서는 높은 레벨에서 켜져 있습니다.
※ 주의:
- -
- HM-10과 함께 사용해야 하는 핀은 4개뿐이며, 일부 제조업체에서 이를 생산합니다.
- VCC, GND, RX, TX 이 네 가지 핀이 해당됩니다.
Bluetooth 시리얼 모니터 앱 정보
Bluetooth 시리얼 모니터 앱을 사용하려면 먼저 Raspberry Pi를 HM-10 Bluetooth 모듈에 연결해야 합니다. 그런 다음 스마트폰에 앱을 다운로드하고 설치합니다. 마지막으로 앱을 열고 HM-10 Bluetooth 모듈에 연결합니다.
이 단계를 완료하면 Raspberry Pi로부터 데이터를 송수신할 수 있습니다.
선연결
![라즈베리 파이 ble 배선도](https://newbiely.kr/images/tutorial/raspberry-pi-hm-10-ble-wiring-diagram.jpg)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
![라즈베리 파이 screw terminal block shield](https://newbiely.kr/images/tutorial/raspberry-pi-screw-terminal-block-shield.jpg)
배선표. 이 표는 배선 연결을 보여줍니다. 1. 배선표:. 배선 연결 목록. 2. 배선도:. 배선 연결을 보여주는 도면.
Raspberry Pi Pins | HM-10 Bluetooth Pins |
---|---|
RX (GPIO15) | TX |
TX (GPIO14) | RX |
5V | VCC |
GND | GND |
BKR (NOT connected) | |
STATE (NOT connected) |
라즈베리 파이가 스마트폰의 블루투스 앱으로 데이터를 전송합니다.
데이터를 Raspberry Pi 보드에서 스마트폰의 Bluetooth 애플리케이션으로 보내기 위해 다음 코드가 사용될 수 있습니다. 이 예제는 메시지 “Raspberry Pi here, command me!”를 Raspberry Pi에서 앱으로 매 1초마다 전송하는 방법을 보여줍니다.
자세한 사용 방법
- Raspberry Pi에 Raspbian 또는 기타 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하십시오.
- Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하십시오.
- 필요한 라이브러리를 설치하려면 Raspberry Pi가 인터넷에 연결되어 있는지 확인하십시오.
- Raspberry Pi를 처음 사용하는 경우, 라즈베리 파이 - 소프트웨어 설치을 참조하십시오.
- Linux 및 macOS에는 기본 SSH 클라이언트를 사용하고, Windows에서는 PuTTY를 사용하여 SSH를 통해 Raspberry Pi에 PC를 연결하십시오. PC를 SSH를 통해 Raspberry Pi에 연결하는 방법을 참조하십시오.
- RPi.GPIO 라이브러리가 설치되어 있는지 확인하십시오. 설치되어 있지 않다면 다음 명령어를 사용하여 설치하십시오:
- Raspberry Pi의 시리얼 인터페이스를 활성화하려면 Raspberry Pi - 시리얼 인터페이스 활성화 방법의 지침을 따르세요.
- 블루투스 모듈과의 통신을 위한 pyserial 라이브러리를 설치하세요.
- 파이썬 스크립트 파일 bluetooth_send.py를 생성하고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령어를 실행하여 Python 스크립트를 실행하십시오:
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프에서 계속 실행됩니다.
코드 사용 및 Raspberry Pi 보드를 스마트폰과 BLE로 연결하려면 다음 단계를 따르세요:
- 스마트폰에 Bluetooth Serial Monitor App을 다운로드하고 설치하세요.
- 배선 다이어그램에 따라 HM-10 Bluetooth 모듈을 Raspberry Pi 보드에 연결하세요.
- 스마트폰에서 Bluetooth Serial Monitor App을 열고 BLE 모드를 선택하세요.
![블루투스 시리얼 모니터 앱](https://newbiely.kr/images/tutorial/bluetooth-serial-monitor-mode.jpg)
- 스마트폰을 HM-10 블루투스 모듈에 연결하세요.
![블루투스 시리얼 모니터 페어링](https://newbiely.kr/images/tutorial/ble-serial-monitor-pairing.jpg)
- Android 앱에서 결과를 확인해 보세요.
![블루투스 시리얼 모니터 앱](https://newbiely.kr/images/tutorial/raspberry-pi-to-ble-app.jpg)
- 터미널에 표시된 결과를 확인하세요.
필요한 단계를 수행하고 코드를 실행하면 Android 앱에 표시되는 데이터가 동일하다는 것을 알 수 있습니다.
블루투스 앱 데이터를 라즈베리 파이로 전송
코드는 다음을 실행합니다:
- Bluetooth 애플리케이션에서 Raspberry Pi 보드로 데이터를 전송합니다.
- Raspberry Pi 보드는 수신된 데이터를 읽고 Bluetooth 장치에 응답을 보냅니다.
자세한 사용 방법
- Python 스크립트 파일 bluetooth_send_receive.py을(를) 만들고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행합니다:
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다.
다음은 Raspberry Pi와 Android 앱에서 코드를 사용하는 방법에 대한 지침입니다:
- Android 앱을 시작하고 이전 예시의 단계에 따라 HM-10 블루투스 모듈과 페어링하세요.
- 연결된 후, Android 앱에 "LED ON" 또는 "LED OFF"를 입력하고 "SEND" 버튼을 누르세요.
![블루투스 시리얼 모니터 앱](https://newbiely.kr/images/tutorial/raspberry-pi-ble-command-send.jpg)
- 라즈베리 파이 보드는 데이터를 수신하고 시리얼 포트에 응답을 출력할 것입니다. 이후, 이 데이터는 블루투스 앱으로 전송됩니다. 마지막으로 결과는 안드로이드 앱에서 확인할 수 있습니다.
![블루투스 시리얼 모니터 앱](https://newbiely.kr/images/tutorial/raspberry-pi-ble-command.jpg)
- 터미널에서 출력을 확인하세요.
위의 단계가 완료되면 Android 앱에 표시되는 데이터가 동일함을 알 수 있습니다.
라즈베리 파이 코드 - BLE를 통해 스마트폰 앱으로 LED 제어
라즈베리 파이 블루투스를 통한 LED 제어 튜토리얼을 참조하세요.
라즈베리 파이 코드 - BLE를 통해 스마트폰 앱으로 서보 모터 제어
라즈베리 파이를 통한 블루투스 서보 모터 제어 튜토리얼을 참조하세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.