ESP8266 - 블루투스 | ESP8266 - Bluetooth
이 튜토리얼은 ESP8266을 사용하여 Bluetooth HC-05 모듈을 제어하는 방법을 안내합니다. 구체적으로, 우리는 다음을 배울 것입니다:
- ESP8266에서 블루투스 사용하기
- ESP8266에서 스마트폰 앱으로 블루투스를 통해 데이터 전송하기
- 블루투스를 통해 스마트폰 앱에서 ESP8266으로 데이터 수신하기
- 블루투스를 통해 스마트폰 앱에서 ESP8266 제어하기
이 튜토리얼의 목적은 다음과 같습니다:
- ESP8266이 스마트폰 앱과 데이터를 교환하는 방법을 시연합니다.
- HC-05 블루투스 모듈의 사용법을 설명합니다.
- 안드로이드에서 블루투스 시리얼 모니터 앱을 사용하는 방법을 보여줍니다.
- 스마트폰 앱에서 LED와 서보 모터를 제어하는 방법을 설명합니다.
이 튜토리얼은 클래식 블루투스(Bluetooth 2.0)에 초점을 맞추고 있습니다. 블루투스 로우 에너지 - BLE (Bluetooth 4.0)에 대한 정보를 찾고 있다면 이 비슷한 튜토리얼을 참고하십시오: ESP8266 - 블루투스 로우 에너지
준비물
1 | × | ESP8266 NodeMCU | Amazon | |
1 | × | Micro USB Cable | Amazon | |
1 | × | HC-05 Bluetooth Module | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) 5V Power Adapter for ESP8266 | Amazon | |
1 | × | (Optional) Screw Terminal Expansion Board for ESP8266 | 쿠팡 | Amazon |
HC-05 블루투스 모듈에 대하여
HC-05는 시리얼 블루투스 모듈로, 시리얼에서 블루투스로 변환하는 기능을 합니다. 이는 다음 능력을 가지고 있습니다:
- 시리얼 RX 핀에서 데이터를 수신하고 그것을 블루투스를 통해 페어링된 장치(예: 스마트폰)로 전송합니다.
- 블루투스로부터(페어링된 장치로부터) 데이터를 수신하고 그것을 시리얼 TX 핀으로 전송합니다.
특히, ESP8266이 스마트폰 앱(Android/iOS)과 통신할 때:
- HC-05 블루투스 모듈에는 Serial/SoftwareSerial 핀을 통해 연결됩니다.
- HC-05 블루투스 모듈은 스마트폰 앱과 페어링됩니다.
- 스마트폰 앱에 데이터를 보내려면, ESP8266은 단순히 Serial/SoftwareSerial로 보냅니다.
- 스마트폰 앱에서 데이터를 받으려면, ESP8266은 Serial/SoftwareSerial에서 읽습니다.
- ESP8266에서는 특별한 블루투스 코드가 필요하지 않습니다.
블루투스 HC-05 모듈 핀배열
HC-05 블루투스 모듈에는 6개의 핀이 있습니다:
- 활성화/키 핀: 이 핀은 데이터 모드(LOW로 설정)와 명령 모드(높게 설정) 사이를 전환하는 데 사용됩니다. 연결되지 않은 경우 기본적으로 데이터 모드에 있게 됩니다.
- VCC 핀: 전원 핀, 이것은 공급 전압의 +5V에 연결되어야 합니다.
- GND 핀: 전원 핀, 이것은 전원원의 GND에 연결되어야 합니다.
- TX 핀: 직렬 데이터 핀, 이것은 ESP8266의 RX 핀에 연결되어야 합니다. 블루투스를 통해 받은 데이터는 직렬 데이터로 이 핀을 통해 전송됩니다.
- RX 핀: 직렬 데이터 핀, 이것은 ESP8266의 TX 핀에 연결되어야 합니다. 이 핀에서 받은 데이터는 블루투스로 전송될 것입니다.
- 상태: 상태 핀은 기판에 있는 LED에 연결되어 있으며, 블루투스가 제대로 작동하는지 확인하기 위해 피드백으로 사용될 수 있습니다.
그럼에도 불구하고 기본 작업을 위해서는 HC-05 블루투스 모듈의 4개 핀만 ESP8266에 연결되어야 합니다.
HC-05 블루투스 모듈에는 두 개의 통합 구성 요소가 있습니다:
- 모듈의 상태를 나타내는 LED:
- 2초마다 한 번 깜박임은 모듈이 명령 모드에 진입했음을 의미합니다
- 빠르게 깜박이는 것은 데이터 모드에서 연결을 기다리고 있음을 나타냅니다
- 초당 두 번 깜박임은 데이터 모드에서의 연결이 성공했음을 의미합니다
- 작동 모드(데이터 또는 명령 모드)를 선택하기 위해 Key/Enable 핀을 제어할 수 있는 버튼
작동 원리
HC-05 블루투스 모듈에는 두 가지 작동 모드가 있습니다:
- 페어링된 기기와 데이터를 교환하기 위해 사용되는 데이터 모드
- 매개 변수를 구성하기 위해 사용되는 명령 모드
다행히도 HC-05 블루투스 모듈은 기본 설정을 사용하여 어떠한 구성도 필요로 하지 않고 ESP8266과 작동할 수 있습니다.
HC-05 기본 설정
Default Bluetooth Name | “HC-05” |
---|---|
Default Password | 1234 or 0000 |
Default Communication | Slave |
Default Mode | Data Mode |
Default Data Mode Baud Rate | 9600, 8, N, 1 |
Default Command Mode Baud Rate | 38400, 8, N, 1 |
블루투스 시리얼 모니터 앱에 대하여
Bluetooth Serial Monitor 앱은 Arduino IDE의 시리얼 모니터를 닮은 사용자 인터페이스를 가진 모바일 애플리케이션입니다. 이를 통해 ESP8266 코드 내의 블루투스 모듈을 위한 특별한 코드 없이도 Bluetooth를 통해 ESP8266과 통신할 수 있습니다. 이를 위해서는 다음 단계를 따라야 합니다:
- ESP8266을 HC-05 블루투스 모듈에 연결합니다.
- 스마트폰에 블루투스 시리얼 모니터 앱을 설치합니다.
- 앱을 열고 HC-05 블루투스 모듈과 페어링합니다.
이제 Arduino IDE의 시리얼 모니터를 사용하듯이 ESP8266에서 데이터를 송수신 할 수 있습니다. 기존의 ESP8266 코드를 변경하거나 새로운 ESP8266 코드에 블루투스 코드를 추가할 필요가 없습니다.
선연결
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP8266의 핀 배치 및 ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.
Table of Wiring: 배선 테이블
Wiring Chart: 배선 차트
Chart of Wiring: 배선 차트
ESP8266 Pins | HC-05 Bluetooth Pins |
---|---|
Pin D7 | TX |
Pin D6 | RX |
5V | VCC |
GND | GND |
Enable/Key (NOT connected) | |
State (NOT connected) |
※ NOTE THAT:
ESP8266 코드에서 Serial 객체를 Serial1, Serial2 또는 사용 가능한 경우 SoftwareSerial과 같은 다른 것으로 변경하여 다른 ESP8266 핀을 사용할 수 있습니다.
블루투스를 위한 프로그래밍 방법
블루투스에 특화된 프로그래밍은 필요하지 않습니다. 우리는 그저 시리얼 코드를 활용하면 됩니다.
ESP8266이 스마트폰의 블루투스 앱으로 데이터를 전송합니다.
ESP8266에서 스마트폰의 블루투스 앱으로 데이터를 전송하기 위해서는 아래의 코드를 아두이노에 사용해야 합니다:
이 경우, ESP8266이 스마트폰의 Bluetooth 앱에 1초 간격으로 “ESP8266 여기 있음, 명령을 내려주세요!”를 전송하도록 할 것입니다.
사용 방법
Arduino IDE에서 ESP8266을 시작하려면 다음 단계를 따르세요:
- ESP8266을 Arduino IDE에서 설정하는 방법에 대한 자세한 내용은 ESP8266 환경 설정 방법 튜토리얼을 확인하세요.
- 다이어그램에 표시된 대로 구성 요소를 연결하세요.
- ESP8266 보드를 USB 케이블을 사용하여 컴퓨터에 연결하세요.
- 컴퓨터에서 Arduino IDE를 열세요.
- 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
- Bluetooth Serial Monitor 앱을 스마트폰에 설치하세요. 연결도에 따라 HC-05 Bluetooth 모듈을 ESP8266에 연결하세요. 코드를 복사하고 Arduino IDE로 열어주세요. Arduino IDE에서 Upload 버튼을 클릭하여 ESP8266에 코드를 업로드하세요. 코드를 업로드하지 못하면 Bluetooth 모듈의 TX 및 RX 핀을 분리한 후 코드를 업로드하고 다시 RX/TX 핀을 연결하세요. Arduino IDE에서 시리얼 모니터를 엽니다. 스마트폰에서 Bluetooth Serial Monitor 앱을 열고 클래식 Bluetooth 모드를 선택하세요.
HC-05 블루투스 모듈과 연결하세요.
안드로이드 앱에서 결과를 확인하세요.
ESP8266 통합 개발 환경의 시리얼 모니터에서 결과를 확인하세요.
아두이노 IDE의 시리얼 모니터와 안드로이드 앱에 표시된 정보가 같다는 것을 관찰할 수 있습니다.
블루투스 앱이 ESP8266으로 데이터 전송
다음 코드가 가능하게 합니다:
- 블루투스 앱에서 ESP8266으로 데이터 전송
- ESP8266에 의한 데이터 읽기 및 블루투스 앱으로 응답 보내기
사용 방법
다이어그램에 표시된 대로 구성 요소를 연결하세요.
ESP8266 보드를 USB 케이블을 사용하여 컴퓨터에 연결하세요.
컴퓨터에서 Arduino IDE를 엽니다.
올바른 ESP8266 보드를 선택하세요, 예를 들면 (예: NodeMCU 1.0 (ESP-12E 모듈))와 해당 COM 포트를 선택하세요.
코드를 복사하고 Arduino IDE로 엽니다.
Arduino IDE에서 업로드 버튼을 클릭하여 코드를 컴파일하고 ESP8266에 업로드하세요.
Arduino IDE에서 시리얼 모니터를 엽니다.
이전 예제에서 했던 것처럼 HC-05 블루투스 모듈에 Android 앱을 연결하세요.
연결되면, Android 앱에서 "LED ON" 또는 "LED OFF"를 타이핑하고 "SEND" 버튼을 누르세요.
ESP8266이 데이터를 수신하고 응답을 시리얼 포트에 출력합니다. 이 데이터는 그 다음 블루투스 앱으로 전송되며, 결과는 안드로이드 앱에서 볼 수 있습니다.
ESP8266 통합 개발 환경의 시리얼 모니터 창에서 결과를 확인하세요.
아두이노 IDE의 시리얼 모니터와 안드로이드 앱에 표시된 정보가 동일함을 관찍하게 될 것입니다.
ESP8266 코드 - Bluetooth를 통해 스마트폰 앱으로 LED 제어
이 ESP8266 예제 코드는 “ON” 및 “OFF” 두 가지 명령에 응답합니다. 수신되면 이러한 명령은 Bluetooth 시리얼 모니터 앱을 통해 내장 LED를 켜거나 끄는 데 사용됩니다.
다음 튜토리얼에서 지침에 대한 보다 자세한 설명을 찾을 수 있습니다: ESP8266이 블루투스/BLE를 통해 LED를 제어.
ESP8266 코드 - 블루투스를 통해 스마트폰 앱으로 서보 모터 제어
아래의 ESP8266 코드는 . * 각도 값을 수신합니다. . * 블루투스 시리얼 모니터 앱에서 . * 서보 모터의 각도를 제어하기 위해.
ESP8266이 Bluetooth/BLE을 통해 서보 모터를 제어합니다 튜토리얼에서 지침을 더 자세히 볼 수 있습니다. 지침을 좀 더 철저히 살펴보려면, ESP8266이 Bluetooth/BLE을 통해 서보 모터를 제어합니다 튜토리얼을 확인하세요. 지침을 더 깊이 알아보려면, ESP8266이 Bluetooth/BLE을 통해 서보 모터를 제어합니다 튜토리얼을 참조하십시오. 지침에 대한 보다 종합적인 이해를 얻으려면, ESP8266이 Bluetooth/BLE을 통해 서보 모터를 제어합니다 튜토리얼로 이동하세요.
Bluetooth Serial Monitor 앱이 도움이 되셨다면, Play 스토어에서 5성 평가를 부탁드립니다. 지원해 주셔서 감사합니다!
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.