?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

HM-10 모듈간 접속

페이지 정보

작성자 심인보 메일보내기 이름으로 검색 작성일15-04-27 15:32 조회3,016회 댓글2건

본문

아두이노 우노와 HM-10 모듈 2개를 이용하여 모듈간 페어링을 하는데 문제가 생겨 질문드립니다.

모듈 하나는 central 모드로 전환하고 하나는 perisperal 모드로 하여 페어링을 하는데 arduino studio의 시리얼모니터에서 직접 AT+CON[MAC address] 를 입력하면 페어링이 되는데 다음과 같은 코드를 업로드하면 페어링이 되지 않습니다. 이유가 무엇일지 궁금합니다.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()
{
  Serial.begin(9600);
  mySerial.begin(9600);
  delay(500);
  mySerial.write("AT+RENEW");
  delay(500);
  mySerial.write("AT+RESET");
  delay(500);
  mySerial.write("AT+NOTI1");
  delay(500);
  mySerial.write("AT+IMME1");
  delay(500);
  mySerial.write("AT+ROLE1");
  delay(500);
  mySerial.write("AT+CON544A166FE87B");
  delay(1000);

}

perispheral의 MAC ADDRESS : 544A166FE87B

참고로 이 코드에서 mySerial.write("AT+CON544A166FE87B");  이 커맨드에만 모듈이 동작하지 않습니다.

mySerial.write("AT+ROLE1"); 이 커맨드까지는 모듈에 적용이 됩니다.

댓글목록

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

AT+DISC? 커맨드로 주변 기기를 한번 스캔해서 오는 응답을 한번 찍어보는 것이 좋을 것 같습니다. 응답으로 오는 문자열에서 연결하고 싶은 디바이스 MAC address 한번 확인해 보는 것도 좋을 것 같구요.
AT+ROLE1 이후에 리셋 커맨드 한 번 넣어보는 것은 어떨지요,,,

유영훈님의 댓글

유영훈 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

저도 BLE4.0 버전의 모듈 두 개를 연결시키는 프로젝트를 진행중이라 여러 가지 실험을 하며 깨달을 것들이 있어서 공유합니다.  두 가지 중요한 점이 있는데요.
첫번째는 delay(1000)이상 정도를 주어야 한다는 것입니다. 저는 delay(500)정도를 주었더니 응답을 받기 전에 명령을 주어서 그런지 제대로 동작하지 않더군요.
두번째는 serial.write 함수를 사용하시는 경우 mySerial.write("AT+CON544A166FE87B\r\n"); 과 같이 명령문(AT+CON544A166FE87B)의 끝에는 \r\n을 붙여 주어야 한다는 것입니다. 아니면, mySerial.println(""AT+CON544A166FE87B")와 같이 serial.println 함수를 사용하여 함수에서 자동으로 끝에 \r\n을 붙이는 방식도 제대로 작동하더군요. 이상이었습니다.