스마트폰과 HM-10 연동하기 1
가장 먼저 할 일이 블루투스 4.0 BLE HM-10 모듈에 대해 아는 일이다.
블루투스 4.0 BLE HM-10 모듈 이미지를 참고하고 자세한 작동법은 데이터북을 참고하거나 잘 설명해 놓은 링크를 참고한다.
HM-10 모듈에 대한 자세한 설명 링크 - [블루투스4.0BLE]HM-10 Module 사용법(AT 커맨드 포함) http://blog.naver.com/xisaturn/220712028679
연결도를 참고한다. 여기서 HM-10의 RX, TX 핀은 소프트웨어 씨리얼을 사용하므로 아두이노의 7번과 8번 핀을 연결한다. 소스코드에 번호가 나오니 참고한다.
코딩 예제 : 아래 코드를 아두이노 스케치에 입력후 업로드 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <SoftwareSerial.h>
#define BT_RX 7
#define BT_TX 8
SoftwareSerial HM10(BT_RX,BT_TX); // RX핀(7번)은 HM10의 TX에 연결
// TX핀(8번)은 HM10의 RX에 연결
void setup() {
Serial.begin(9600);
HM10.begin(9600);
}
void loop() {
if (HM10.available()) {
Serial.write(HM10.read());
}
if (Serial.available()) {
HM10.write(Serial.read());
}
}
|
연결 상태를 확인하고 AT 명령어를 사용하여 HM-10 정보를 확인하고 이름 설정
- ‘코딩 예제’를 아두이노에 업로드까지 마친 후 시리얼 모니터를 띄워 다음과 같은 AT명령어를 입력하면 HM-10과 아두이노가 정상적으로 연결되었는지 확인할 수 있다. 또한 AT명령어로 HM-10의 이름을 변경할 수 있으며, 스마트폰과 페어링 할 때 유용하도록 이름을 변경한다.
AT : 응답가능여부확인
결과 : OK
AT_NAME? 이름 조회하기
결과 : OK+NAME:HMSoft
AT+NAMExxx : 이름 변경
결과 : OK+Set: xxxx
AT+ADDR? : 블루투스 모듈 주소 읽어오기
결과 : OK+ADDR:XXXXXXXXXXXX
반드시 하나 더 해주어야 한다. 스마트 폰으로 페어링을 하면 등록거절 되는데 이때
"HM-10 모듈에 시리얼로 연결해서 AT+TYPE3" 라고 입력해서 세팅하면 연결 가능해 집니다. 디바이스를 찾아서 페이링 PIN 넘어 초기에 "000000" (0이 6개) 넣어주면 페어링 완료!
AT+TYPE3 전송
결과 : OK+Set:3 ---> 이렇게 해도 페어링이 안되거나 스마트폰에서 블루투스 장치에 등록을 해도 앱에서 안보이는 분????
전원을 껏다가 다시 켠다. 리셋 필요.
※ 주의 사항 : 시리얼 모니터로 'AT' 를 입력하면 결과값으로 'OK'를 리턴 해야 하지만 제조사마다 옵션 설정이 다르기 때문에 이를 설정해주지 않으면 'OK'를 리턴받지 못하는 경우도 있다. 따라서 옵션 설정에 유의하여 사용하셔야 합니다. 여기서는 'Both NL & CR'로 설정합니다.
시리얼 모니터 결과는 아래 씨리얼 모니터 결과 화면을 참고한다.
글 참고 사이트
1. 아두이노 블루투스 4.0 BLE HM-10 모듈 / Arduino Bluetooth 4.0 BLE Module https://m.blog.naver.com/eduino/220903237343
2. HM-10 블루투스 테스트(2) https://hnydiy.tistory.com/4
3. [블루투스 4.0 Hm-10 cc2541] 아두이노 우노 R3 연결 http://blog.whoborn.net/%EB%B8%94%EB%A3%A8%ED%88%AC%EC%8A%A4-4-0-hm-10-cc2541-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EC%9A%B0%EB%85%B8-r3-%EC%97%B0%EA%B2%B0/
4. [블루투스4.0BLE]HM-10 Module 사용법(AT 커맨드 포함) http://blog.naver.com/xisaturn/220712028679
참고로 윗 부분의 코드를 아래 소스코드와 같이 수정하여 커스터마이징하여 사용할 수 있도록 수정하여 사용하면 된다. 참고하세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include <SoftwareSerial.h>
/**
* RX_PIN은 HC 모듈의 TX 핀과 연결될 핀
* TX_PIN은 HC 모듈의 RX 핀과 연결될 핀
*/
#define RX_PIN 3
#define TX_PIN 2
#define SERIAL_BAUD 9600
#define HC_BAUD 9600
SoftwareSerial HCSerial(RX_PIN, TX_PIN);
void setup() {
Serial.begin(SERIAL_BAUD);
HCSerial.begin(HC_BAUD);
}
void loop() {
if(HCSerial.available()) {
// HC 모듈로부터 데이터가 들어온 경우 수행 루틴
HCFunction();
}
if(Serial.available()) {
// 시리얼 모니터로부터 데이터가 들어온 경우 수행 루틴
SerialFunction();
}
}
void HCFunction() {
/**
* Init routine
* HC 모듈로부터 들어온 데이터를 시리얼 모니터로 출력
* 커스터마이징할 함수 영역
*/
Serial.write(HCSerial.read());
}
void SerialFunction() {
/**
* Init routine
* 시리얼 모니터로부터 들어온 데이터를 HC 모듈로 출력
* 커스터마이징할 함수 영역
*/
HCSerial.write(Serial.read());
}
|
'아두이노' 카테고리의 다른 글
Build errors after Android Studio 3.2.1 upgrade 에러- com.android.tools.build:aapt2:3.2.1-4818971 (0) | 2019.03.03 |
---|---|
HM-10 BLE 모듈 사용 스마트폰으로 데이터 주기적으로 송신하기 (0) | 2019.02.26 |
아두이노 온도 습도 미터기 DHT11 과 OLED display 사용 (0) | 2019.02.25 |
아두이노 I2C 스캐너 소스코드, I2C scanner (1) | 2019.02.25 |
아두이노 나노 핀맵 - 아두이노 나노 I2C 핀 (0) | 2019.02.20 |