라즈베리 파이 BLE
이 튜토리얼은 Raspberry Pi를 사용하여 BLE HM-10 모듈을 제어하는 방법을 안내합니다. 자세히 배우게 될 내용은 다음과 같습니다:
- Raspberry Pi에서 Bluetooth Low Energy (BLE) 기술의 활용
- BLE를 통해 Raspberry Pi에서 스마트폰 앱으로 데이터 전송
- BLE를 통해 스마트폰 앱에서 Raspberry Pi로 데이터 수신
- BLE를 통해 스마트폰 앱으로 Raspberry Pi 제어
이 튜토리얼의 목적:
- Raspberry Pi와 스마트폰 앱 간의 BLE를 통한 데이터 교환 방법을 보여준다.
- HM-10 블루투스 저에너지 모듈을 사용한다.
- 안드로이드에서 Bluetooth Serial Monitor 앱을 시연하지만, 어떤 안드로이드/iOS 앱도 사용할 수 있다.
- 스마트폰 앱을 통해 Raspberry Pi에 연결된 다양한 장치를 제어하는 방법을 보여주며, LED와 서보 모터를 포함한 예시를 제공한다.
이 튜토리얼은 블루투스 저에너지(BLE, 블루투스 4.0)에 초점을 맞추고 있다는 점을 인식하는 것이 중요합니다. 클래식 블루투스(블루투스 2.0)에 대한 정보가 필요하다면, 유사한 튜토리얼 Raspberry Pi - Bluetooth를 참조하십시오.
Hardware Preparation
1 | × | Raspberry Pi 4 Model B | Amazon | |
1 | × | HM-10 Bluetooth Module | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (추천) Screw Terminal Block Shield for Raspberry Pi | 쿠팡 | Amazon | |
1 | × | (추천) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B | Amazon | |
1 | × | (추천) Plastic Case and Cooling Fan for Raspberry Pi 4B | Amazon | |
1 | × | (추천) HDMI Touch Screen Monitor for Raspberry Pi | Amazon |
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 모듈 핀아웃
HM-10 BLE 모듈에는 6개의 핀이 있습니다:
- BKR 핀: 이 핀은 모듈의 동작을 제어하는 데 사용됩니다. 초보자라면 이 핀은 무시해도 됩니다.
- RX 핀: 이 핀은 직렬 데이터 핀이며 Raspberry Pi의 TX 핀에 연결해야 합니다. 이 핀으로부터 수신된 데이터는 Bluetooth로 전송됩니다.
- TX 핀: 이 핀은 직렬 데이터 핀이며 Raspberry Pi의 RX 핀에 연결해야 합니다. BLE를 통해 수신된 데이터는 일렬 데이터로 이 핀에 전송됩니다.
- GND 핀: 이 핀은 전원 핀이며 전원 공급의 GND에 연결해야 합니다.
- VCC 핀: 이 핀은 전원 핀이며 공급 전압의 3.3V에 연결해야 합니다.
- STATE 핀: 이 핀은 작업 상태를 나타냅니다. 스탠바이 모드에서는 500ms 펄스로 깜박이며, 연결 상태에서는 높은 레벨에서 켜져 있습니다.
※ NOTE THAT:
- -
- HM-10과 함께 사용해야 하는 핀은 4개뿐이며, 일부 제조업체에서 이를 생산합니다.
- VCC, GND, RX, TX 이 네 가지 핀이 해당됩니다.
Bluetooth 시리얼 모니터 앱 정보
Bluetooth 시리얼 모니터 앱을 사용하려면 먼저 Raspberry Pi를 HM-10 Bluetooth 모듈에 연결해야 합니다. 그런 다음 스마트폰에 앱을 다운로드하고 설치합니다. 마지막으로 앱을 열고 HM-10 Bluetooth 모듈에 연결합니다.
이 단계를 완료하면 Raspberry Pi로부터 데이터를 송수신할 수 있습니다.
Wiring Diagram
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
배선표. 이 표는 배선 연결을 보여줍니다. 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초마다 전송하는 방법을 보여줍니다.
Detailed Instructions
- Raspberry Pi에 Raspbian 또는 기타 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하십시오.
- Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하십시오.
- 필요한 라이브러리를 설치하려면 Raspberry Pi가 인터넷에 연결되어 있는지 확인하십시오.
- 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 모드를 선택하세요.
- 스마트폰을 HM-10 블루투스 모듈에 연결하세요.
- Android 앱에서 결과를 확인해 보세요.
- 터미널에 표시된 결과를 확인하세요.
필요한 단계를 수행하고 코드를 실행하면 Android 앱에 표시되는 데이터가 동일하다는 것을 알 수 있습니다.
블루투스 앱 데이터를 라즈베리 파이로 전송
코드는 다음을 실행합니다:
- Bluetooth 애플리케이션에서 Raspberry Pi 보드로 데이터를 전송합니다.
- Raspberry Pi 보드는 수신된 데이터를 읽고 Bluetooth 장치에 응답을 보냅니다.
Detailed Instructions
- Python 스크립트 파일 bluetooth_send_receive.py을(를) 만들고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행합니다:
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다.
다음은 Raspberry Pi와 Android 앱에서 코드를 사용하는 방법에 대한 지침입니다:
- Android 앱을 시작하고 이전 예시의 단계에 따라 HM-10 블루투스 모듈과 페어링하세요.
- 연결된 후, Android 앱에 "LED ON" 또는 "LED OFF"를 입력하고 "SEND" 버튼을 누르세요.
- 라즈베리 파이 보드는 데이터를 수신하고 시리얼 포트에 응답을 출력할 것입니다. 이후, 이 데이터는 블루투스 앱으로 전송됩니다. 마지막으로 결과는 안드로이드 앱에서 확인할 수 있습니다.
- 터미널에서 출력을 확인하세요.
위의 단계가 완료되면 Android 앱에 표시되는 데이터가 동일함을 알 수 있습니다.
라즈베리 파이 코드 - BLE를 통해 스마트폰 앱으로 LED 제어
Raspberry Pi가 BLE를 통해 LED 제어 튜토리얼을 참조하세요.
라즈베리 파이 코드 - BLE를 통해 스마트폰 앱으로 서보 모터 제어
Raspberry Pi가 BLE를 통해 서보 모터 제어 튜토리얼을 참조하세요.
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.