안녕하세요.
1편이 하드웨어 설정이었다면 2편은 HC-12를 어떻게 환경 설정하는지 알아보도록 하겠습니다.
1. AT COMMAND로 HC-12 환경설정
- 하드웨어 준비가 끝났다면, AT COMMNAD로 통신은 잘 되고 있는지 확인해 볼 필요가 있습니다.
다시 확인할 부분은 HC-12의 SET 핀에 GND가 연결되어 있어야 HC-12와 아두이노 나노가 통신할 수 있는 상태가 됩니다.
2. 통신 코드 작성
- 이제 모듈과 시리얼 통신하는 간단한 코드를 작성해줍니다.
만약 모듈 2개가 동일하게 설정되어 있다면 그냥 사용해도 됩니다. (초기 통신속도는 9600bps 설정되어 있습니다.)
#include <SoftwareSerial.h>
SoftwareSerial HC12(2,3); // HC-12 TX Pin은 D2(RX용)에, HC-12 RX Pin을 D3(TX용)
void setup() {
Serial.begin(9600); // 시리얼 모니터 속도 설정
HC12.begin(9600); // HC-12 시리얼 통신 속도 설정
}
void loop() {
while (HC12.available()) { // HC-12에 수신 데이터가 존재하는 경우
Serial.write(HC12.read()); // HC-12 모듈의 출력 내용을 읽어 시리얼 모니터로 전송
}
while (Serial.available()) { // 시리얼 모니터의 입력 내용이 존재하면
HC12.write(Serial.read()); // 읽어서 HC-12 모듈로 전달합니다
}
}
3. 소스 컴파일 & 다운로드하기
- 소스 작성한 것을 아두이노로 다운로드하기 위해서는 "툴" 설정이 필요합니다.
현재 제가 가진 아두이노 나노 제품이 카피본이라
보드: Arduino Nano,
프로세서: ATmega328P(Old bootloader)로 설정하였습니다.
포트는 장치 관리자를 통해 자신에게 잡힌 포트로 선택합니다. (정품 Nano 버전일 경우 Old bootloader 선택하면 다운로드가 되지 않습니다. 정품인지 카피 보드인지 확인하시고 다운로드하시면 됩니다. 다운로드를 잘못하면 ISP라는 툴로 bootloader를 다시 넣어야 하는 경우가 발생하니 주의하시기 바랍니다.)
그리고 정상적으로 컴파일과 다운로드가 되었다면 “업로드 완료”라는 멘트와 함께 보드에 빨간 불이 들어와 있는 것을 확인할 수 있습니다.
4. 시리얼 통신하기
- 이제 “툴 -> 시리얼 모니터”를 실행시켜 터미널 창에 AT라고 입력해 봅니다. 그러면 OK라고 반환 값을 확인할 수 있습니다. 반환 값을 받지 못한다면 배선을 다시 확인해 봅니다.
대소문자를 구분하므로 at을 넣으면 ERROR를 받게 됩니다. 그리고 시리얼 모니터 하단에 통신 속도를 9600으로 하지 않으면 글자가 깨어져 나올 수 있으니 통신 속도를 맞추어 주어야 합니다.
5. HC-12의 AT Commands의 설명
6. AT Commands 사용 방법
1) 통신속도 : (입력) AT+B57600 -> (출력) OK+B57600
2) 통신채널 : (입력) AT+C021 -> (출력) OK+C021
3) 작업모드 : (입력) AT+FU4 -> (출력) OK+FU4
4) 전송파워 : (입력) AT+P8 -> (출력) OK+P8
- 송수신을 하기 위해서 동일한 주파수 채널로 맞추고 통신속도 등 동일하게 맞추어 작업하면 통신에는 크게 문제없을 것입니다. 작업모드에 대해 데이터 시트 내용을 보면
- FU1 mode is a moderate power saving mode, ...
- FU2 mode is an extreme power saving mode, ...
- FU4 mode is useful for maximum range, up to 1.8km. Only a single baud rate of 1200bps is supported,
저전력으로 사용할지, 통신 거리를 멀리 할지에 따라 설정을 변경해 줍니다.
거리에 조금 더 민감하게 설정해야 한다면 전송파워를 설정까지 해줍니다. 파워를 키울수록 송수신 거리는 멀어지겠지만, 반대로 소비전력은 커질 수밖에 없습니다.
현재 테스트에서는 기본 설정된 상태로 테스트했습니다.
* 기본설정 :
1) AT + B9600
2) AT+C058
3) AT+FU1
4) AT+P8
3편에서는 송수신 테스트(거리까지)를 해보도록 하겠습니다.
감사합니다.
추가사항
- 설정된 값 보는 방법 "AT+RX"
'Embedded > Arduino' 카테고리의 다른 글
아두이노 나노 + HC-12 (433MHz RF 통신) 테스트 4편 – 여러 개 모듈 송수신 송수신 테스트 (2) | 2024.01.31 |
---|---|
아두이노 나노 + HC-12 (433MHz RF 통신) 테스트 3편 – 송수신 테스트 (거리체크) (2) | 2024.01.30 |
아두이노 나노 + HC-12 (433MHz RF 통신) 테스트 1편- H/W설정 (0) | 2024.01.25 |
MPU-9250 기울기 센서 + 아두이노 나노 연동 2편 (0) | 2024.01.21 |
MPU-9250 기울기 센서 + 아두이노 나노 연동 1편 (0) | 2024.01.20 |