이전 튜토리얼에서 우리는 ZigBee 프로토콜과 그 아키텍처에 대해 배웠으며 두 Xbee 모듈 간의 무선 통신에 대해서도 배웠습니다. 이제이 튜토리얼에서는 XBee 모듈을 Arduino Uno 보드와 인터페이스합니다. Arduino 보드에 연결된 XBee는 수신기 역할을하며 Explorer Board를 사용하여 노트북과 직렬로 연결된 다른 XBee 모듈과 무선으로 통신합니다. 이제 XBee를 사용한 Arduino 무선 통신에 대해 자세히 살펴 보겠습니다 .
하드웨어 요구 사항
- 1 x Arduino Uno
- 2 x XBee Pro S2C 모듈 (다른 모델 사용 가능)
- 1 x Xbee 탐색기 보드 (옵션)
- 1 x Xbee 브레이크 아웃 보드 (옵션)
- USB 케이블
- LED
XCTU를 사용하여 XBee 모듈 구성
이전 튜토리얼에서 배웠 듯이 XBee 모듈은 코디네이터, 라우터 또는 엔드 장치로 작동 할 수 있지만 원하는 모드에서 작동하도록 구성해야합니다. 따라서 Arduino와 함께 XBee 모듈을 사용하기 전에 XCTU 소프트웨어를 사용하여 이러한 모듈을 구성해야합니다.
XBee 모듈을 노트북과 연결하기 위해 USB- 직렬 변환기 또는 특별히 설계된 탐색기 보드가 사용됩니다. XBee 모듈을 Explorer 보드에 연결하고 USB 케이블을 사용하여 노트북에 연결하기 만하면됩니다.
컨버터 나 익스플로러 보드가 없다면 아두 이노 보드를 USB to Serial 장치 로 사용할 수있어 XBee 및 노트북과 쉽게 통신 할 수 있습니다. Arduino 보드에 빈 스케치를 업로드하기 만하면 이제 USB to Serial 변환기처럼 작동 할 수 있습니다.
Arduino와 ZigBee 모듈 을 인터페이스 하기위한 연결은 회로도에 나와 있습니다.
사이:
- XBee의 Tx (pin2)-> Arduino 보드의 Tx
- Xbee의 Rx (pin3)-> Arduino 보드의 Rx
- Xbee의 Gnd (pin10)-> Arduino 보드의 GND
- Xbee의 Vcc (Pin1)-> Arduino 보드의 3.3v
이 튜토리얼에서는 XBee 모듈을 구성하는 데 Explorer 보드를 사용합니다.
이 링크에서 XCTU 소프트웨어를 다운로드하여 설치하십시오. XCTU 소프트웨어를 다운로드하고 설치 한 후이를 열고 XBee 모듈이 제대로 연결되었는지 확인합니다. 장치 관리자에서 Arduino 보드의 COM 포트를 확인하십시오.
1 단계:- 이제 검색 버튼을 클릭합니다. 노트북에 연결된 모든 RF 장치가 표시됩니다. 우리의 경우에는 하나의 XBee 모듈 만 표시됩니다.
2 단계: -Explorer 보드 / Arduino 보드의 직렬 포트를 선택하고 다음을 클릭합니다.
3 단계:- 다음 창에서 아래와 같이 USB 포트 매개 변수를 설정하고 마침을 클릭합니다.
4 단계: 검색된 장치를 선택하고 선택한 장치 추가를 클릭 합니다 . 이 프로세스는 XBee 모듈을 XCTU 대시 보드에 추가합니다.
5 단계: 이제이 창에서 XBee 모듈을 구성 할 수 있습니다. AT 명령을 사용하거나 데이터를 수동으로 입력하십시오. 보시다시피 왼쪽 패널에 R이 표시되어 Xbee가 라우터 모드에 있음을 의미합니다. 송신기 부분을 코디네이터로 만들어야합니다.
먼저 펌웨어 업데이트를 클릭하여 펌웨어를 업데이트하십시오.
6 단계: XBee 모듈 뒷면에서 사용할 수있는 장치의 제품군을 선택합니다. 아래 강조 표시된대로 기능 세트와 펌웨어 버전을 선택하고 업데이트를 클릭합니다.
Step 7:- 이제 다른 XBee와 연결하기 위해 ID, MY 및 DL 데이터를 제공해야합니다. 두 모듈의 ID는 동일하게 유지됩니다. MY와 DL 데이터 교환 즉 , 수신기 XBee에 대한 MY만이 송신기 XBee (코디네이터)의 DL이되고 수신기 XBee에 대한 DL이 송신기 XBee의 MY가됩니다. CE를 코디네이터로 만들고 쓰기 버튼을 누르십시오. 아래 그림과 같이.
ATDL |
ATMY |
||
XBee 1 코디네이터 |
|||
XBee 2 최종 장치 |
8 단계: 위의 데이터를 송신기 부품에 쓴 후 탐색기 보드에서 플러그를 뽑고 두 번째 XBee 모듈에 연결합니다. 위와 동일한 과정을 반복하면 DL, MY, CE 만 변경됩니다. 두 번째 XBee를 End 장치로 만들 것이므로 CE 드롭 다운 메뉴에서 End device를 선택하고 Write 버튼을 누르십시오.
9 단계: 이제 XBee 모듈이 Arduino 보드와 인터페이스 할 준비가되었습니다. 우리는 것이다 아두 이노 보드와 노트북 및 수신기 XBee에 송신기 XBee를 연결합니다. 그런 다음 랩톱을 사용하여 수신기 부분에 명령을 내립니다.
수신기 부품의 회로도:
사이:
- XBee의 Tx (pin2)-> Arduino 보드의 Rx
- Xbee의 Rx (pin3)-> Arduino 보드의 Tx
- Xbee의 Gnd (pin10)-> Arduino 보드의 GND
- Xbee의 Vcc (Pin1)-> Arduino 보드의 3.3v
Arduino 보드를 사용하여 송신기 ZigBee를 노트북에 연결하는 경우 연결은 ZigBee 프로그래밍과 동일합니다.
Arduino를 사용한 XBee 통신 프로그래밍 및 테스트
이제 수신기 아두 이노가 'a'를 수신 할 때마다 LED 를 켜고 'b'를 수신 할 때마다 LED를 깜박이도록 코드를 작성합니다. 다른 문자는 LED가 꺼진 상태로 유지됩니다.
코드는 간단하고 이해하기 쉽습니다. Serial.available () 함수를 사용하여 들어오는 문자를 확인하고 Serial.read ()를 사용 하여이 문자를 변수에 저장합니다 . 함수를 'a'및 'b'와 일치시킵니다. 일치하면 조건에 지정된 작업을 수행합니다. 수신기 부분에 대한 완전한 코드가 마지막에 제공됩니다. 수신기 부분 Arduino에 코드를 업로드합니다. 업로드하기 전에 XBee의 Tx 및 Rx 와이어를 제거하십시오.
이제 우리는 모두 송신기와 수신기 를 테스트 할 준비를했습니다. 송신기 부분에 명령을 내리기 위해 XCTU의 콘솔 터미널을 사용합니다. 설정 옵션 근처에있는 콘솔 아이콘을 클릭하십시오. 그런 다음 열기 버튼을 클릭하여 XBee를 노트북에 연결합니다.
콘솔 로그에 'a'를 입력합니다. LED가 2 초 동안 켜진 후 'b'를 입력하면 LED가 5 번 깜박입니다.
송신기 XBee를 Arduino 보드에 연결할 수도 있습니다. 수신기 코드를 조금만 변경하면됩니다. Serial.read () 함수 대신 Serial.println () 함수를 사용하여 문자를 보냅니다.
아래 의 데모 비디오를 확인하십시오.
이 XBee-Arduino 설정 은 홈 자동화 시스템, 채팅룸 등과 같은 많은 유용한 무선 애플리케이션을 만드는 데 사용할 수 있습니다.