?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

xbee와 가속도 센서 연결

페이지 정보

작성자 두이노1234 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일15-08-05 15:42 조회2,620회 댓글3건

본문

안녕하십니까 

저는 지금 가속도센서를 xbee 무선통신모듈을 이용해 무선으로 가속도 값을 받을려고 합니다. 

xbee를 작동할때 xctu 라는 프로그램을 이용해서 사용하고 있는데요. 

xbee 를 작동하기위해서 아두이노에 코딩을 해야하는데 코딩이 좀 헷갈리네요.. ㅎㅎ 

 

1. 가속도 센서 코딩 

int x,y,z;

 

void setup() {

  Serial. begin(115200);

  Serial.println("CLEARDATA");

  Serial.println("LABEL,TIME,x,y,z");

}

void loop(){

  x = analogRead(0);

  y = analogRead(1);

  z = analogRead(2);

  

  Serial.begin(115200);

  Serial.print("DATA,TIME");

  Serial.print(",");

  Serial.print(x);

  Serial.print( ",");

  Serial.print(y);

  Serial.print(",");

  Serial.println(z);

  delay(9);

 

}

2. xctu 프로그램 사용해보기 위해서 예시 코딩

/*****************************************************************

XBee_Serial_Passthrough.ino

 

Set up a software serial port to pass data between an XBee Shield

and the serial monitor.

 

Hardware Hookup:

  The XBee Shield makes all of the connections you'll need

  between Arduino and XBee. If you have the shield make

  sure the SWITCH IS IN THE "DLINE" POSITION. That will connect

  the XBee's DOUT and DIN pins to Arduino pins 2 and 3.

 

*****************************************************************/

// We'll use SoftwareSerial to communicate with the XBee:

#include <SoftwareSerial.h>

// XBee's DOUT (TX) is connected to pin 2 (Arduino's Software RX)

// XBee's DIN (RX) is connected to pin 3 (Arduino's Software TX)

SoftwareSerial XBee(2, 3); // RX, TX

 

void setup()

{

  // Set up both ports at 9600 baud. This value is most important

  // for the XBee. Make sure the baud rate matches the config

  // setting of your XBee.

  XBee.begin(9600);

  Serial.begin(9600);

}

 

void loop()

{

  if (Serial.available())

  { // If data comes in from serial monitor, send it out to XBee

    XBee.write(Serial.read());

  }

  if (XBee.available())

  { // If data comes in from XBee, send it out to serial monitor

    Serial.write(XBee.read());

  }

}

 

 

이 두 코딩을 합쳐서 넣어야 xctu 프로그램이 작동하나요? 

아님 다른 방법이 있는 건가요?? 

친절한 답변 부탁드립니다. ㅠㅠ 

댓글목록

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

2번의 코드는 매우 일반적인 relay 코드입니다. 시리얼(보통 PC가 되겠죠)로 받은 데이터를 SoftwareSerial(=Xbee)로 전달해주고, 반대로 SoftwareSerial 로 받은 데이터를 Serial로 보내줍니다. 아두이노는 그저 데이터를 양쪽으로 전달해 주는 역할만 합니다. 따라서 이 코드를 아두이노에 올리면 PC에서 입력한 데이터가 Xbee로 전달됩니다. Xbee는 전달 받은 데이터를 무선으로 전송하겠죠. 반대로 Xbee로 전달받은 데이터는 아두이노 거쳐서 PC에 표시됩니다.

무선으로 가속도 값을 보낼려면 아두이노 하나 더 만들어서 Xbee랑 가속도 센서 붙인다음 가속도 센서에서 받아온 값을 Xbee로 전송해야겠죠. 대충 1번이랑 코드의 뼈대는 비슷하게 될겁니다.

두이노1234님의 댓글

두이노1234 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

네 가속도센서와 xbee 를 붙였습니다. xctu를 실행시킬려면 코딩을 해야하는데 어떻게 할지몰라서 여쭈어봤습니다. ㅠ

두이노1234님의 댓글

두이노1234 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

가속도 센서의 값을 아두이노로 이용해서 3개의 xbee값이 아두이노가 없는 1개의 xbee 로 값을 받아야합니다.  방법이 없을런지 궁금합니다.
또 만약 안된다면 아두이노가 없는 xbee를 아두이노에 물어서 값을 받게 되면 아두이노 코딩이 어떻게될까요?