본문 바로가기
Arduino(아두이노) 키트 강좌

Step.26-XBee USB Adapter 를 사용해서 XBee 모듈간 통신 테스트 하기

by 오마이엔지니어 2016. 5. 27.
반응형

XBee USB Adapter 를 사용해서 XBee 모듈간 통신 테스트 하기

아두이노는 여러가지 방법으로 무선통신(Bluetooth 또는 Wifi 등)을 할수 있습니다
그중에 Zigbee 는 다른 무선통신 방법에 비해 낮은비용과 저전력 2.4Ghz 주파수를 사용한 근거리 무선통신
이라는 특징이 있습니다
Zigbee는 저전력 모듈이기때문에 배터리의 크기를 축소할수 있게 하여 소형화가 쉽습니다
때문에 긴 배터리 수명과 보안성을요구하는 분야(무선 조명, 교통관리 시스템, 근거리 저속통신, 산업용 장치 등)에서 간단한 데이터 전송을 하는데 유용하게 사용되고 있습니다


XBee USB Adapter 를 사용하려면 먼저 FTDI 드라이버를 설치해 주어야 합니다

하단 링크에서 각자의 OS에 맞는 드라이버를 다운받아 설치 합니다

FTDI 드라이버 다운로드 하기

http://www.ftdichip.com/FTDrivers.htm

*어떤 FTDI 드라이버를 받아야 할지 모른다면 아래의 순서대로 진행 합니다*
DX22 드라이버 다운 링크를 클릭합니다

D2XX drivers please click here

셋업파일을 다운받아서 설치합니다(윈도우용)
WHQL Certified. Includes VCP and D2XX.
Available as a setup executable

 

XBee 모듈간 통신을 하려면 X-CTU 소프트 웨어가 필요 합니다

Digi 사 에서 다운로드가 가능합니다 하단 링크에서 각자의 OS에 맞는 다운로드 받아서 설치 합니다


X-CTU 소프트웨어 다운로드 하기

http://www.digi.com/products/xbee-rf-solutions/xctu-software/xctu

간단하게 이름, 회사, 연락처, 이메일 주소등만 적으면 다운로드가 가능합니다

준비가 끝났으면 XBee를 XBee USB Adapter 에 장착 합니다 (방향을 주의해서 장착합니다, 방향은 XBee USB Adapter PCB에 XBee

모양이 그려져 있습니다, 잘 살펴보고 모양과 맞게 장착합니다)

XBee 는 기본 Digi사의 기본 클래식 XBee XB24-AWI-001사용하였습니다
본 테스트에서 꼭 위의 XBee를 사용해야 하는것은 아닙니다
최근 클래식 모듈이 단종되고 동일한 기능의 통신거리가 확장 된 신버전 XB24CAWIT-001 이 출시 되었습니다 (동일하게 테스트 가능합니다)
XBee 는 모듈간 직접 통신 하는 방식과 중계 통신 하는 방식 등에 따라서 여러가지 모델로 나뉩니다
각자의 프로젝트에 맞게 선별해서 사용하면 되겠습니다

 


위의 그림처럼 두개의 XBee를 어댑터에 장착후 컴퓨터에 연결합니다

FTDI 드라이버가 정상적으로 설치가 되어있다면 장치관리자에 아래과 같이 시리얼 포트가 인식 됩니다

 


컴퓨터에 설치된 X-CTU를 실행 합니다

아래와 같이 실행화면이 나옵니다

 

 



위 그림처럼 왼쪽 상단의 XBee 모듈 모양의 돋보기 버튼을 눌러 연결된 디바이스를 찾아 줍니다

그럼 위 그림처럼 2개의 디바이스를 찾은것을 확인할수 있습니다

위 그림 하단의 Add Selected devices 버튼을 눌러 디바이스를 추가해 줍니다


 

 

위 그림처럼 두개의 디바이스가 추가 되었습니다~

위쪽이 COM9 , 아래쪽이 COM8 에 연결된 XBee 모듈 입니다

이제 위쪽의 XBee 모듈 부터 눌러서 통신을 위한 값들을 세팅해 주면 됩니다
(XB24-AWI-001 모듈외 다른 모듈은 통신 설정 값이 틀릴수 있습니다 이 경우 설정값 없이 디폴트로 설정해서
통신해도 상관이 없습니다
본 테스트는 1:n 통신이 아닌 1:1 통신 방식을 설명하기 위해서 이렇게 설명하고 있음을 알려 드립니다
모듈끼리 1:n로 통신할 때에는 별도 설정없이 디폴트로 설정해도 모듈간 통신이 가능합니다)

CH : zigbee 통신을 할 채널번호를 지정합니다, 기본값은 0x0C로 설정되어 있으며 통신을 할 모듈끼리는 채널이 같아야 합니다
ID : zigbee 통신의 네트워크 ID를 지정합니다, 기본값은 3332로 설정되어 있으며 역시 통신을 할 모듈끼리는 같은 ID를 가지고 있어야 합니다
DH : 도착주소 64bit중 상위 32bit를 지정합니다, 기본값은 0으로 세팅되어 있으며 0x0부터 0xFFFF까지 설정 가능합니다
DL : 도착주소 64bit중 하위 32bit를 지정합니다, 기본값은 0으로 세팅되어 있으며 0x0부터 0xFFFF까지 설정 가능합니다
MY : 나의 주소를 지정합니다 기본값은 0으로 세팅되어 있으며 0x0부터 0xFFFF까지 설정이 가능합니다

 


첫번째 XBee 모듈의 셋팅값 입니다 (위의 그림처럼 세팅합니다, 세팅만 하면 됩니다 별도 저장은 하지 않아도 됩니다)


 


두번째 XBee 모듈의 셋팅값 입니다 (위의 그림처럼 세팅합니다, 세팅만 하면 됩니다 별도 저장은 하지 않아도 됩니다)


 

 
통신세팅이 끝났으면 위 그림처럼 첫번째 XBee 모듈의 오른쪽 세개의 버튼중 가운데 버튼을 눌러 리모트 할수있는 디바이스를 검색합니다

그럼 검색과정 후 위와 같이 1개의 디바이스를 찾아 냅니다

MAC Address 를 보면 두번째 XBee 모듈인것을 확인할수 있습니다

 

마지막으로 맨 아래 Add selected devices 버튼을 눌러 디바이스를 추가해 줍니다

XBee 모듈은 기본 AT모드로 출고 되고 있습니다 XBee를 임의로 API모드로 세팅을 바꾸었다면

어댑터 사용시 X-CTU에서 디바이스 검색 및 리모트모듈 검색이 안될 수 있습니다 이점 주의해 주세요~


참고 <XBee 의 AT모드 와 API모드>

XBee는 AT와 API 모드를 지원하는데, AT모드는 투명(Transparent)모드라고도 하며, 공장 출하시 초기 세팅으로 제공된다
AT모드는 메시지 데이터 자체를 보내고 받을 수 있으며 단순한 전송 및 수신이 가능하다
API모드에서는 프로그래머가 필요한 정보인 도착 주소, 패킷의 형태, 그리고 체크섬과 데이터를 패키지화 한다
또한 수신 노드는 소스 주소, 패킷의 종류, 신호 강도, 그리고 체크섬과 같은 정보와 함께 데이터로 접수한다

초보자라면 별도의 프로그래밍 및 패키지화가 필요하지 않은 AT모드를 사용하는 것이 편리하다
다만, Radio Signal Strength Indicator (RSSI) 등의 신호 세기 및 특정 주소를 프로그래밍화하여 노드간에 다이나믹하게 통신을 하기 위해서는
유연성이 있는 API모드를 사용하는 것이 적절할 것이다

AT모드에서는 RX로 받은 모든 신호는 XBee의 안테나를 통해 전송이 되고, 들어오는 신호는 TX로 받게 된다
하지만, API 모드에서는 시리얼 인터페이스를 통해 정확한 명령어셋이 아니면 신호를 받지 않게 된다

 

 

 


위의 그림처럼 첫번째 XBee 모듈과 두번째 XBee 모듈 사이에 리모트 모듈이 생겼습니다

오른쪽 위의 모니터 모양의 버튼을 눌러 창 전환을 합니다


 


첫번째 XBee 모듈을 클릭후 위 그림처럼 연결 버튼을 누립니다  연결에 성공하면 위 그림처럼 녹색으로 바뀌게 되면서 Close 글자가 나옵니다

연결에 성공하였으면 Console log 에 글자를 입력해 봅니다 (글씨색으로 송신 과 수신을 구분할수 있습니다)

파란색 글씨가 송신, 빨간색 글씨가 수신 입니다


 

 

두번째 모듈을 클릭해 보면 첫번째 모듈과 반대인것을 알수 있습니다

자 이렇게 간단하게 XBee 모듈간 송수신 테스트를 해보았습니다, 모듈도 이상없고 통신도 이상없습니다
이제 XBee를 이용한 다양한 레퍼런스를 진행해 볼수 있습니다~

테스트 동영상

 

위와 마찬가지로

XBee Adapter 와 XBee Shield 에 XBee 를 장착해서 동일하게 테스트 가능합니다
아래 연관 포스팅을 확인해 주세요

연관포스팅

Arduino XBee Shield 와 XBee Adapter 를 사용해서 XBee 통신 테스트 하기

 


만약 리모트 모듈 생성이 안된다면?
본 테스트에서 반드시 리모트 모듈을 생성해 주어야 하는것은 아닙니다

리모트 모듈은 여러개의 XBee 가 연결이 되어있는 경우 오직 리모트 된 두개의 XBee 끼리만 통신하기 위해서 묶어주는 기능입니다

일정 범위내 2개의 XBee 로 쌍방향 통신을 하는 경우 리모트는 필요 없습니다
리모트 과정 생략하고 동일하게 2개의 XBee 모듈 각각 콘솔창으로 모듈 접속 버튼 누르고 데이터 송수신 통신가능하며 테스트 가능합니다

(물론 1대n 통신 할때도 리모트는 별 필요가 없습니다, 왠만해서는 사용할 필요가 없습니다)

XBee Adapter 와 XBee Shield 에 장착된 XBee 끼리는 리모트가 잘 안되는 경우가 있고, USB 허브를 사용하면 리모트가 잘 안되기도 합니다
이 경우 컴포트 재설정후 X-CTU 재실행 해주면 리모트가 되기도 합니다

XBee 모듈의 모드변경과 디바이스 세팅에 대해서 간략하게 설명하겠습니다

위 설명은 새로 출시된 XBee S2C 시리즈 XB24CAWIT-001 로 설명합니다
(XBee 클래식 모듈(XB24-AWI-001 등)과 틀리게 위 처럼 802.15.4 에 TH가 붙습니다)
위 처럼 디바이스를 인식 시켜준 다음 XBee를 확인해 보면 End Device 와 AT모드 인것을 확인할 수 있습니다


XBee S2C 시리즈 XB24CAWIT-001 같은 경우
End Device 와 Coordinator (데이터를 중계하는 모듈 역할) 는 모듈을 클릭후 오른쪽 세팅에서 변경할 수 있습니다
하지만 클래식 모듈(XB24-AWI-001 등)은 변경이 불가능합니다




마찬가지로 세팅에서 API 모드로 변경할수도 있는데 이것은 XBee 클래식이나 XBee S2C 시리즈 모두 변경이 가능합니다
다만 위에서 언급했듯이 API 모드로 변경한 경우 일반적인 방법으로 데이터 송수신이 불가능합니다
본 포스팅 테스트 방법 및 동영상 등 모두 AT 모드로 진행 되었습니다~



반응형

댓글