반응형
아두이노에서 HC-05 블루투스 마스터 설정하는 방법입니다.
HC-05 구입
똑같은 이름의 HC-05 모듈인데 판매자마다 차이가 있으니 주의해서 구입을 해야 합니다.
판매글 보면 마스터 모드가 되는지 기재가 되어 있지 않았습니다.
저는 첫번째 모듈 구입 후 안되서 두번째 모듈을 재구입 했습니다.
왼쪽 모듈은 AT모드에서 마스터 설정이 안되고, 오른쪽 모듈은 마스터 설정이 가능합니다.
그리고 소스에서도 차이가 있었습니다.
왼쪽 HC-05 모듈 소스
AT모드 사용시 소스 차이 입니다.
- ENpin 설정 안해도 됨
- 시리얼 보드레이트 38400으로 해야 함
#include <SoftwareSerial.h>
// RX, TX
// 아두이노 꼽을 땐 거꾸로 RX=3, TX=2
SoftwareSerial BTSerial(2,3);
//int ENpin = 8;
void setup() {
//pinMode(ENpin, OUTPUT);
//digitalWrite(ENpin, HIGH);
// PC → 시리얼 통신
//Serial.begin(9600);
Serial.begin(38400);
// 아두이노보드 → 블루투스 통신
BTSerial.begin(38400);
Serial.println("ATcommand :");
}
void loop() {
if(BTSerial.available()) {
Serial.write(BTSerial.read());
}
if(Serial.available()) {
BTSerial.write(Serial.read());
}
}
오른쪽 HC-05 모듈 소스
AT모드 사용시 소스 차이 입니다.
- ENpin 설정 해야함
#include <SoftwareSerial.h>
// RX, TX
// 아두이노 꼽을 땐 거꾸로 RX=3, TX=2
SoftwareSerial BTSerial(2,3);
int ENpin = 8;
void setup() {
pinMode(ENpin, OUTPUT);
digitalWrite(ENpin, HIGH);
// PC → 시리얼 통신
Serial.begin(9600);
// 아두이노보드 → 블루투스 통신
BTSerial.begin(38400);
Serial.println("ATcommand :");
}
void loop() {
if(BTSerial.available()) {
Serial.write(BTSerial.read());
}
if(Serial.available()) {
BTSerial.write(Serial.read());
}
}
아두이노 연결도
EN : 8번핀
VCC : 5V
GND : GND
TXD : 2번핀
RXD : 3번핀
AT 명령어
AT+ROLE? : 마스터, 슬레이브 확인
AT+ROLE=1 : 마스터 설정
AT+ROLE? : 마스터, 슬레이브 확인
하지만 오른쪽(마스터모드 ○) 모듈도 안됨
AT+INIT
AT+INQ
명령어가 되지 않고 ERROR:[0] 를 내뱉습니다.
다른 명령어들은 되는데 이것만 안됩니다.
제가 몰라서 못하는것인지, 제조사에서 원가절감 한다고 구현도 안하고 되는것처럼 속이며 팔아먹고 있는지 모르겠습니다.
더 중요한것은 스펙 문서를 제공하지 않아서 뭐가 잘못되었는지 파악도 안됩니다.
HM-10 블루투스 모듈로 변경
결국에는 HM-10 모듈으로 해보기로 하고 재구입 했습니다.
HC-05가 블루투스 2.0 버전인데, HM-10은 블루투스 4.0 버전이라는 차이가 있습니다.
택배비만 계속 나오네요.
반응형