2012년 6월 26일 화요일

xbee 통신

 

xbee 통신

프로그램 버전 : Arduino - 1.0

사용된 Xbee 모듈은

http://www.sparkfun.com/products/8664 이다

Xbee 모듈의 설정은 

http://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-Manual.pdf 참고

기본 설정된 값은

Xbee 모듈과 컴퓨터와 UART방식으로 9600bps 로 통신하고

(물론 설정을 변경해 통신속도를 바꿀수 있다. 변경방법은 위 Manual.pdf참고)

Xbee 모듈간은 250000bps로 통신한다.

Xbee라고 다를것 없이 아두이노에서의 스케치는

softwareserial 라이브러리를 이요해서 TX, RX핀을 설정하고

다른 통신모듈과 같이 스케치 하면 된다.

(다른 통신모듈과 통신 거리, 속도, 가격 등이 다르므로

사용 목적에 맞게 선택하면 된다.)

Xbee 모듈 2개, Xbee 쉴드, Xbee explorer 사진이다.

모듈을 쉴드와, explorer에 끼우고

모듈을 장착한 쉴드를 아두이노 UNO보드에 끼운 사진이다.

각각 쉴드가 장착된 아두이노는 com4번과

explorer에 기운 Xbee는 com8번에 연결되었다.

(장치관리자에서 확인)

com4-아두이노-Xbee       <------통신------>       Xbee-com8

결국은 한 컴퓨터의 com4에서 com8번으로 통신을 구현 했지만

이는 통신의 확인을 위한 작업 이고

응용하면

Xbee연결된 아두이노를 센서나 모터를 연결하여 외부에 두고

Xbee를 통해 컴퓨터로 센서 값이나 모터를 제어할 수 있다.

Xbee가 장착된 아두이노와 Xbee가 연결된 pc와의 통신

스케치 소스

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

/*Xbee가 장착된 아두이노와 Xbee가 연결된 pc와의 통신*/

#include <SoftwareSerial.h>

SoftwareSerial XbeeSerial(2,3);  //아두이노 2,3번 핀을 통해 통신

int a,b; 

void setup(){

  Serial.begin(9600);

  XbeeSerial.begin(9600);

}

void loop(){

  if(Serial.available()>0){    

    a = Serial.read();             // 시리얼 모니터에 입력된 값을 a에 저장

    XbeeSerial.println(a);       // Xbee를 통해 다른Xbee가 연결된 pc에 값 출력

    delay(100);

  }

  if(XbeeSerial.available()>0){

    b = XbeeSerial.read();        // Xbee가 연결된 pc에서 입력한 값 b에 저장

    Serial.println(b);                // Xbee를 통해 아두이노Xbee로 값을 보내고 시리얼 모니터에 출력

    delay(100);

  }

}

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

작동영상

(Serial 모니터는 아두이노, 컴포트 마스터는 Xbee-explorer와 연결 되었다.)

댓글 없음:

댓글 쓰기