본문 바로가기
아두이노 통신

[통신/중단거리] 중단거리 양방향 통신이 가능한 serial 기반의 손쉬운 네트워크 모듈 APC220

by 작동미학 2015. 4. 10.
반응형

APC220 통신 모듈을 통해 양방향의 중거리 통신을 구현해보자.

 

▶ 이 가이드를 따라하면

- 개방 환경에서는 1 km까지 도달하는 중거리 통신 모듈을 사용할 수 있다.

- APC220을 통한 중거리 양방향 통신을 해볼 수 있다.

 

▶ 먼저 읽으면 좋은 글

- Aliexpress에서 부품 저렴하게 구매하는 방법 : http://bbangpan.tistory.com/5

 

▶ 부품 설명 및 회로 구성

 APC220은 매우 간단하게 중거리 통신을 구현할 수 있는 모듈(418Mhz~455Mhz 사용)이다. 가격은 WiFi 쉴드에 육박하지만, aliexpress에서는 그나마 $25 정도에 구매가 가능하다. 구현방식은 Serial로 한쪽에 입력해주면 반대쪽 통신 모듈의 Serial로 해당 내용이 출력된다. 그러므로 단순히 시리얼 통신만으로 네트워크를 손쉽게 구현할 수 있다. Arduino의 5V 전력만으로도 충분히 작동되며, WiFi보다 훨씬 넓은 커버리지를 제공한다. 기타 세부 소개는 http://www.dfrobot.com/index.php?route=product/product&product_id=57 를 참조하자. (단, 이 모듈은 커버리지가 넓기 때문에 국내 전파규제 사항에 해당될 수 있으니 개인적 테스트 용도 외의 사용은 자세한 조사가 필요함을 밝혀둔다)

<APC220의 모습. 양방향 통신을 위해 2개 모듈이 필요하다.>

<두개를 각각 Arduino에 연결했다. 두개 다 VCC/GND/TX/RX를 각각 5V/GND/D3/D4에 연결한다>

<좀더 가까이서 보자. 하나는 이동 가능하도록 배터리에 연결했다>

디폴트는 9600bps로 통신하도록 되어 있으므로 별다른 설정없이 아래의 소스코드를 활용해보자.

 

▶ 소스 코드 입력 및 구동

아래 소스를 각각 컴파일하여 업로드하고, 수신 부에는 9600bps로 시리얼 모니터를 작동시키자(CTRL+SHIFT+M).

송신 모듈 소스 원본 GitHub 링크 : https://github.com/bbangpan/bbangpan.com/blob/master/neibc_apc220_send/neibc_apc220_send.ino

http://www.bbangpan.com ----------------------------------

/* Originally posted on www.bbangpan.com

 

Program Description: APC220 network module (send test)

Tested on : Arduino 1.6.1, Arduino UNO R3, APC220

 

Copyright (c) 2015 www.bbangpan.com. All rights reserved.

This program can be used for any non-commercial purpose freely. */

 

#include <SoftwareSerial.h>

 

SoftwareSerial APC(3, 4); // RX and TX

 

void setup()

{

APC.begin(9600); // start serial to APC

}

 

void loop()

{

 

APC.print("H");

delay(2000);

APC.print("e");

delay(2000);

APC.print("l");

delay(2000);

APC.print("l");

delay(2000);

APC.print("o");

delay(2000);

APC.print(" world!");

delay(2000);

}

-------------------------------------------------------

수신 모듈 소스 원본 GitHub 링크 : https://github.com/bbangpan/bbangpan.com/blob/master/neibc_apc220_recv/neibc_apc220_recv.ino

http://www.bbangpan.com ----------------------------------

/* Originally posted on www.bbangpan.com

 

Program Description: APC220 network module (recv test)

Tested on : Arduino 1.6.1, Arduino UNO R3, APC220

 

Copyright (c) 2015 www.bbangpan.com. All rights reserved.

This program can be used for any non-commercial purpose freely. */

 

#include <SoftwareSerial.h>

 

SoftwareSerial APC(3, 4); // RX and TX

 

void setup()

{

APC.begin(9600); // start serial to APC

Serial.begin(9600);

}

 

void loop()

{

while(APC.available()) {

Serial.print((char)APC.read());

}

delay(1000);

}

-------------------------------------------------------

 

시리얼 모니터에서는 송신부에서 보내온 데이터들이 찍힌다. 읽은 캐릭터를 (char)형으로 변환하여 찍으면 보낸 문자를 그대로 읽을 수 있다.

송신부가 2초 간격으로 H,e,l,l,o,공백,world! 를 보내온다. 아래를 확인해보자. 너무도 간단하게 통신이 구현되고 있음을 확인할 수 있다.

<수신부 시리얼 모니터에 수신된 데이터>

기타 다양하게 셋팅 변경이 가능한데, 제공되는 USB 커넥터에 끼워 PC모듈을 통해 가능하다(그러나 인식 등 환경 셋팅이 쉽지 않다)

http://letsmakerobots.com/files/APC220-HowTo-by_Nosepo.pdf 를 참조하자.

 

▶ 구매 가이드

APC220 : http://www.aliexpress.com/premium/APC220.html? SearchText=APC220&CatId=0

 

강의 키워드

아두이노 중거리 네트워크, 아두이노 양방향 네트워크, APC220, RF7020, ADF7020, Arduino APC220, APC220 송수신

 

 

반응형