코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2018-11-30 14:31:35
BLE가 아닌 HC-05나 HC-06과 같은 블루투스 모듈을 사용하게 되면 블루투스 모듈에 관한 기본 정보를 세팅해야 할 때가 있습니다.
예를 들면 블루투스 모듈의 이름을 세팅해야 할 때도 있고 블루투스의 통신 속도나 4자리의 핀 번호, 슬레이브/마스터 모드 등 다양한 정보를 세팅하게 됩니다.
이럴때 사용해야 하는것이 ATcommand입니다.
사실 AT 명령어는 헤이즈 사의 모뎀을 제어하는 언어였는데 사실상 통신의 표준이 되어 모든 모뎀을 제어하는데 쓰이고 있습니다.
블루투스 모듈도 AT명령어Set이 존재하고 이 명령어를 통해 블루투스 모듈을 제어할 수 있습니다.
이번 글에서는 블루투스 모듈을 사용할 때 쓰는 AT명령어를 사용하는 방법에 대해 알아보겠습니다.
NO | 부품명 | 수량 | 상세 설명 |
1 | 오렌지보드 | 1 | Arduino UNO |
2 | 블루투스 모듈 | 1 | HC-05, HC-06 |
3 | 브레드 보드 | 1 | |
4 | 점퍼 케이블 | 5 |
부품명 | 오렌지보드 | 블루투스 모듈 | 브레드 보드 | 점퍼 케이블 |
부품 사진 |
ATcommand에 진입하기 위해 일단 먼저 소스 코드를 올려야 합니다.
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(12, 13); //bluetooth module Tx:Digital 2 Rx:Digital 3
void setup() {
pinMode(8, OUTPUT); //HC-05
digitalWrite(8,HIGH);
Serial.begin(9600);
BTSerial.begin(9600);
Serial.println("ATcommand"); //ATcommand Start
}
void loop() {
if (BTSerial.available())
Serial.write(BTSerial.read());
if (Serial.available())
BTSerial.write(Serial.read());
}
|
cs |
코드는 위를 보시면 알겠지만 정말로 간단합니다.
컴퓨터에 시리얼모니터에서 값을 보내면 그 값을 블루투스모듈에서 읽고 블루투스에서 보낸 값은 다시 시리얼 모니터에서 읽는 형식입니다.
블루투스가 일반적인 상황에서는 아래와 같은 속도로 LED가 깜빡이지만 ATmode로 들어가게 되면 LED의 깜빡이는 속도는 달라지게 됩니다.
그리고 ATmode를 사용할때 블루투스 시리얼 통신을 맞춰주어야 합니다.
HC-06의 경우는 기본 속도가 9600이기 때문에 9600으로 맞추면 됩니다.
또 마지막으로 시리얼 모니터 창에서 AT명령어를 입력할때 오른쪽 하단에 시리얼 텍스트 입력 형태를 Both NL&CR로 바꿔줍니다.
(HC-06은 No line ending으로 맞춰주시면 됩니다)
위 과정을 따라오고 시리얼 모니터에서 AT를 입력할때 OK이라는 단어가 뜬다면 AT모드에 제대로 진입한것이 됩니다.
<HC-06의 ATcommand 입력. No line ending, Bluetooth 통신속도 - 9600>
AT모드 진입이 끝이 아니라 사실상 진입 후에 어떤 명령어를 써야하는지가 더 중요합니다.
하지만 명령어가 한두개가 아니기 때문에 링크를 통해 참고자료를 확인하시는 편이 빠릅니다.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!