산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

2개의 HC-05 Bluetooth 모듈을 마스터 및 슬레이브로 구성 및 페어링하는 방법 | AT 명령

<메인 클래스="사이트 메인" id="메인">

이 Arduino Tutorial에서는 두 개의 HC-05 Bluetooth 모듈을 마스터 및 슬레이브 장치로 구성하고 페어링하는 방법을 배웁니다. 다음 비디오를 보거나 아래 작성된 자습서를 읽을 수 있습니다.

개요

이전 두 개의 튜토리얼에서 HC-05 블루투스 모듈을 Arduino에 연결하고 Android 스마트폰과 Arduino 간에 통신하는 방법을 이미 배웠습니다. 이 튜토리얼에서는 기본 구성의 HC-05 Bluetooth 모듈을 슬레이브 장치로 사용했습니다.

HC-05 블루투스 모듈 구성 – AT 명령

이 튜토리얼에서는 두 모듈을 모두 구성해야 합니다. 그렇게 하려면 AT 명령 모드로 전환해야 하며 이를 수행하는 방법은 다음과 같습니다. 먼저 이전 자습서에서 설명한 회로도대로 Bluetooth 모듈을 Arduino에 연결해야 합니다. 추가적으로 해야 할 일은 블루투스 모듈의 "EN" 핀을 5볼트에 연결하고 아두이노 보드에서 TX와 RX 핀을 바꿔주는 것입니다.

따라서 Arduino의 RX 핀은 전압 분배기를 통해 Bluetooth 모듈의 RX 핀에 연결하고 Arduino의 TX 핀은 Bluetooth 모듈의 TX 핀에 연결해야 합니다. 이제 "EN" 핀 위에 작은 버튼을 누르고 있는 동안 모듈에 전원을 공급해야 하며 이것이 명령 모드로 들어가는 방법입니다. Bluetooth 모듈 LED가 2초마다 깜박이면 AT 명령 모드에 성공적으로 진입한 것입니다.

그런 다음 빈 스케치를 Arduino에 업로드해야 하지만 업로드하는 동안 RX 및 TX 라인의 연결을 끊는 것을 잊지 마십시오. 그런 다음 직렬 모니터를 실행하고 "Both NL and CR"과 Bluetooth 모듈의 기본 전송 속도인 "38400 baud"를 선택해야 합니다. 이제 명령을 보낼 준비가 되었으며 형식은 다음과 같습니다.

<그림 클래스="aligncenter">

모든 명령은 "AT"로 시작하고 그 뒤에 "+" 기호가 오고 그 다음 <매개변수 이름>이 오고 "?"로 끝납니다. 매개변수의 현재 값을 반환하는 기호 또는 해당 매개변수에 대한 새 값을 입력하려는 경우 "=" 기호.

슬레이브 구성

예를 들어 테스트 명령인 "AT"만 입력하면 "OK" 메시지가 반환되어야 합니다. 그런 다음 "AT+UART?"를 입력하면 기본 전송 속도인 38400을 표시하는 마사지를 다시 가져와야 합니다. 그런 다음 "AT+ROLE?"을 입력하면 Bluetooth 장치가 슬레이브 모드에 있음을 의미하는 "+ROLE=0" 마사지를 다시 받게 됩니다. "AT+ADDR?"을 입력하면 Bluetooth 모듈의 주소가 반환되며 다음과 같아야 합니다. 98d3:34:905d3f.

<그림 클래스="aligncenter">

이제 마스터 장치를 구성할 때 필요하므로 이 주소를 기록해 두어야 합니다. 이름, 전송 속도, 페어링 암호 등과 같은 많은 다른 매개변수를 변경할 수 있지만 실제로 이것이 슬레이브 장치를 구성할 때 주소를 얻기 위해 필요한 전부입니다. 그러나 이 예에서는 그렇게 하지 않습니다.

마스터 구성

자, 이제 다른 블루투스 모듈을 마스터 장치로 설정해 보겠습니다. 먼저 전송 속도를 확인하여 슬레이브 장치와 동일한 38400인지 확인합니다. 그런 다음 "AT+ROLE=1"을 입력하여 Bluetooth 모듈을 마스터 장치로 설정합니다. 그런 다음 "AT+CMODE=0"을 사용하여 연결 모드를 "고정 주소"로 설정하고 "AT+BIND=" 명령을 사용하여 이전에 적어 둔 슬레이브 장치의 주소를 설정합니다.

<그림 클래스="aligncenter">

주소를 작성할 때 콜론 대신 쉼표를 사용해야 합니다. 또한 "AT+CMODE" 명령에서 "0" 대신 "1"을 입력했다면 이전 단계를 건너뛸 수 있었습니다. 이렇게 하면 마스터가 전송 범위의 모든 장치에 연결할 수 있지만 덜 안전한 구성입니다. 여기에서 명령 및 매개변수의 전체 목록을 찾을 수 있습니다. HC-05 AT 명령 목록

그럼에도 불구하고 Bluetooth 모듈의 기본 구성이 마스터 및 슬레이브 장치로 작동하는 데 필요한 전부입니다. 이제 정상, 데이터 모드에서 모듈을 다시 연결하고 모듈에 다시 전원을 공급하면 몇 초 만에 마스터가 연결됩니다. 노예에게. 두 모듈 모두 성공적인 연결을 나타내는 2초마다 깜박이기 시작합니다.

두 HC-05 블루투스 모듈 간의 통신 예

자, 이제 이 튜토리얼의 실제 예제를 만들 준비가 되었습니다. 다음은 회로도입니다. 마스터에서 전위차계를 사용하여 슬레이브에서 서보 모터를 제어합니다. 반대의 경우도 마찬가지입니다. 슬레이브에서 푸시 버튼을 사용하여 마스터에서 LED를 제어합니다.

아래 사이트에서 이 Arduino 튜토리얼에 필요한 구성요소를 얻을 수 있습니다.

Arduino 소스 코드

설명: 따라서 먼저 프로그램에 필요한 핀과 일부 변수를 정의해야 합니다. 설정 섹션에서는 마스터에서 LED 핀을 출력으로 설정하고 즉시 Low로 설정하고 38400 baud rate에서 직렬 통신을 시작합니다. 마찬가지로 슬레이브에서 버튼 핀을 입력으로 설정하고 핀이 연결되는 서보를 정의하고 동일한 전송 속도로 직렬 통신을 시작합니다.

루프 섹션에서 두 코드 모두에서 Serial.available() 함수를 사용하여 읽을 직렬 포트에 사용 가능한 데이터가 있는지 확인하고 Serial.read() 함수를 사용하여 데이터를 읽고 저장합니다. "상태"변수. 따라서 버튼 상태가 하이일 때 슬레이브에서 보내는 문자 '1'을 마스터가 수신하거나 버튼을 누르면 LED가 켜집니다. 그렇지 않으면 문자가 '0'이면 LED가 꺼집니다.

서보 모터 제어에 관해서는 먼저 마스터에서 전위차계 값을 읽고 0에서 255 사이의 서보에 적합한 범위에 매핑합니다. 이 값은 서보 모터를 적절하게 회전시키는 데 사용하는 슬레이브로 전송됩니다. 이것이 우리가 필요로 하는 전부이며 여기 예제의 데모가 있습니다.

마스터 코드:

/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 *                 == MASTER CODE ==
 */

#define ledPin 9

int state = 0;
int potValue = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
 if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 // Controlling the LED
 if (state == '1') {
  digitalWrite(ledPin, HIGH); // LED ON
  state = 0;
 }
 else if (state == '0') {
  digitalWrite(ledPin, LOW); // LED ON
  state = 0;
 }
 // Reading the potentiometer
 potValue = analogRead(A0);
 int potValueMapped = map(potValue, 0, 1023, 0, 255);
 Serial.write(potValueMapped); // Sends potValue to servo motor
 delay(10);
}Code language: Arduino (arduino)

슬레이브 코드:

/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 *                 == SLAVE CODE ==
 */
 
#include <Servo.h>
#define button 8

Servo myServo;
int state = 20;
int buttonState = 0;

void setup() {
  pinMode(button, INPUT);
  myServo.attach(9);
  Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
 if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 // Controlling the servo motor
 myServo.write(state);
 delay(10);
 
 // Reading the button
 buttonState = digitalRead(button);
 if (buttonState == HIGH) {
   Serial.write('1'); // Sends '1' to the master to turn on LED
 }
 else {
   Serial.write('0');
 }  
}Code language: Arduino (arduino)

이상입니다. 문제가 있는 경우 아래 댓글 섹션에서 언제든지 도움을 요청하세요.


제조공정

  1. 요약:Bluetooth LE 및 XLE가 자산 추적 및 모니터링의 미래인 방법
  2. Bluetooth + 초음파 =RTLS 정확도 향상 및 비용 절감
  3. 습도 센서를 확인하고 보정하는 방법
  4. Arduino 블루투스 제어 자동차를 만드는 방법
  5. Arduino 및 Bluetooth가 탑재된 스마트 커피 머신
  6. 블루투스 제어 픽 앤 플레이스 로봇
  7. Vixen Lights 및 Arduino를 사용하여 NeoPixels를 구성하는 방법
  8. Arduino 및 ADXL345 가속도계로 방향을 추적하는 방법
  9. 공구강 및 제조 방법 이해
  10. 띠톱과 원형톱을 구별하는 방법은 무엇입니까?