- 필요한 구성 요소
- ESP8266 HC-05 블루투스 모듈 회로도
- HC-05 블루투스 모듈
- 직렬 블루투스 터미널 사용 (Android 앱)
- Bluetooth 인터페이스를위한 NodeMCU ESP8266 프로그래밍
이제 Bluetooth는 디지털 장치의 필수적인 부분이되었으며 스마트 폰, 노트북, PC, 카메라, 시계, 피트니스 밴드 등과 같은 대부분의 장치에 내장되어 있습니다. 블루투스는 발견 된 이후로 무선 통신에서 항상 프로토콜을 지배 해 왔습니다. 비록 블루투스 기술은 근본적 케이블 대체 시스템뿐만 아니라 기존의 데이터 네트워크, 범용 브리지 및 다양한 구성의 장치 번호 애드혹 연결 메커니즘을 활용한다. 우리는 블루투스 모듈 HC05 및 HC06을 다른 많은 마이크로 컨트롤러와 함께 사용하여 무선으로 통신하도록했습니다.
- Bluetooth HC-05와 STM32F103C8 Blue Pill 연결: LED 제어
- HC-05 블루투스 모듈과 AVR 마이크로 컨트롤러 인터페이스
- 8051 마이크로 컨트롤러를 사용하는 Android 제어 로봇
- Bluetooth를 통해 Android 앱을 사용하여 Raspberry Pi GPIO 제어
- Arduino를 사용한 Bluetooth 제어 장난감 자동차
오늘 우리는 HC-05 블루투스 모듈을 널리 사용되는 Wi-Fi 모듈 ESP8266 과 인터페이스 하고 블루투스를 통해 명령을 전송하여 LED를 무선으로 제어 할 것입니다. 이 LED는 가정 자동화 애플리케이션을 구축하기 위해 릴레이 및 AC 기기로 교체 할 수 있습니다.
필요한 구성 요소
하드웨어:
- NodeMCU ESP8266
- HC-05 블루투스 모듈
소프트웨어:
- Arduino IDE
- 직렬 블루투스 터미널 (Android 앱): 스마트 폰에서 블루투스 데이터를 모니터링합니다.
ESP8266 HC-05 블루투스 모듈 회로도
회로도가 연결 블루투스 모듈 HC-05 NodeMCU ESP8266으로는 매우 간단하고 다음과 같다:
ESP32와 같은 내장 Bluetooth가 없기 때문에 ESP8266에는 외부 Bluetooth 모듈이 필요합니다. ESP32에는 BLE (Bluetooth Low Energy) 및 클래식 Bluetooth 가 내장 되어 있으며 이전에 몇 가지 자습서를 다루었습니다.
- ESP32 BLE 서버-배터리 수준 표시를위한 GATT 서비스
- ESP32 BLE 클라이언트 – 전구를 트리거하기 위해 피트니스 밴드에 연결
- ESP32에서 직렬 블루투스를 사용하는 방법
HC-05 블루투스 모듈
HC-05는 직렬 블루투스 모듈입니다. AT 명령을 사용하여 구성 할 수 있습니다. 세 가지 구성 (마스터, 슬레이브, 루프백)에서 작동 할 수 있습니다. 우리 프로젝트에서 우리는 그것을 노예로 사용할 것입니다. HC-05 모듈의 특징은 다음과 같습니다.
- 일반적인 -80dBm 감도.
- 기본 전송 속도: 9600bps, 8 데이터 비트, 1 정지 비트, 패리티 없음.
- 자동 페어링 핀 코드: "1234"또는 "0000"기본 핀 코드.
- 6 개의 핀이 있습니다.
- Vcc 및 Gnd 핀은 HC-05에 전원을 공급하는 데 사용됩니다.
- Tx 및 Rx 핀은 마이크로 컨트롤러와 통신하는 데 사용됩니다.
- HC-05 모듈 활성화를위한 핀을 활성화합니다. 낮 으면 모듈이 비활성화됩니다.
- 상태 핀은 상태 표시기 역할을합니다. 다른 Bluetooth 장치와 페어링 / 연결되지 않은 경우 LED가 계속 깜박입니다. 다른 Bluetooth 장치와 연결 / 페어링되면 LED가 2 초 동안 계속해서 깜박입니다.
Bluetooth 모듈에 대한 자세한 내용은 다른 Bluetooth 관련 프로젝트를 참조하십시오.
직렬 블루투스 터미널 사용 (Android 앱)
이 앱을 사용하는 것은 매우 쉽고 몇 단계 만 거치면됩니다. 스크린 샷은 아래 단계와 함께 제공됩니다. HC-05를 스마트 폰과 페어링하기 만하면 됩니다. 기본 코드는 '0000'또는 '1234'이지만 대부분 '1234'가 작동합니다.
- 먼저 앱을 다운로드하고 설치 한 다음 장치로 이동하여 HC-05 모듈을 찾습니다. 앱에서 검색된 HC-05 모듈을 선택합니다. 찾을 수 없으면 HC-05의 전원이 제대로 공급되었는지 확인하십시오.
- HC-05를 클릭하면 연결됩니다. 이제 메시지 상자에 메시지를 입력하고 보냅니다. Arduino 직렬 모니터에 인쇄됩니다.
Bluetooth 인터페이스를위한 NodeMCU ESP8266 프로그래밍
ArduinoIDE를 사용하여 NodeMCU ESP8266을 프로그래밍하려면 Micro USB 케이블을 사용하여 노트북 또는 PC에 연결하고 Arduino IDE를 엽니 다. 이 자습서에서는 하드웨어 직렬 및 소프트웨어 직렬이 사용됩니다. 하드웨어 시리얼은 Arduino 시리얼 모니터에 데이터를 읽고 쓰는 데 사용되며 Sofware 시리얼은 HC-05와 통신하는 데 사용됩니다. 항상 완전한 코드와 데모 비디오 가 튜토리얼의 끝에 제공됩니다.
처음에는이 튜토리얼에서 사용될 소프트웨어 직렬 라이브러리를 포함합니다.
#포함
소프트웨어 직렬 통신을위한 RX 및 TX 핀을 정의하고 NodeMCU에 연결된 LED 핀도 정의합니다. Pin D4에있는 NodeMCU의 내부 LED를 사용하고 있습니다.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
소프트웨어 및 하드웨어 직렬을 9600 전송 속도로 시작합니다. Led Pin을 출력으로 설정합니다. 환영 및 디버그 메시지를 인쇄하십시오.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("시작됨…");
먼저, 블루투스 모듈에서 읽고 블루투스 모듈이 전화로부터“B”를 수신하면 NodeMCU의 D4에 연결된 LED가 깜박이고 그렇지 않으면“S”가 수신되면 LED가 깜박임을 중지하는 경우를 정의합니다. 여기서는 delay ()를 사용하지 않습니다. 그러나 Arduino 'millis'는 Arduino의 성능을 방해하지 않는 데 사용됩니다.
if (btSerial.available ()> 0) { 문자 데이터 = btSerial.read (); switch (data) { case 'B': ledB = "blink"; 단절; case 'S': ledB = "중지"; 단절; 기본값: 휴식; } }
밀리 초가 정의되고 지연이 500ms로 설정됩니다. 즉, 500ms마다 LED가 깜박입니다. 또한 '간격'값을 변경하여 LED 지연을 구성 할 수 있습니다. LED 상태가 전환됩니다.
부호없는 긴 currentMillis = millis ();
if (ledB == "blink") {Serial.println ("blinking started"); if (currentMillis-previousMillis> = 간격) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
그러면 Bluetooth를 사용하여 무선으로 LED를 깜박이도록 NodeMCU를 프로그래밍하는 작업이 완료됩니다. 또한 LED로 다른 작업을 수행하도록 프로그램을 변경할 수 있습니다. LED를 AC 기기가있는 릴레이로 교체하여 Bluetooth 홈 자동화 프로젝트를 만들 수 있습니다. 의심스러운 점이나 제안이 있으시면 아래 포럼이나 의견을 보내주십시오.