- 하드웨어 요구 사항
- XCTU를 사용하여 XBee 모듈 구성
- 수신부 회로도
- 직렬 통신을위한 Raspberry Pi 설정
- XBee 통신을위한 Raspberry Pi 프로그래밍
- Raspberry Pi를 사용하여 무선 XBee 통신 테스트
이전 튜토리얼에서 우리는 XBee 모듈을 Arduino Uno와 인터페이스하고 XBee 모듈을 사용하여 무선으로 통신하도록했습니다. 이제 XBee 모듈을 수신기 역할을하는 Raspberry Pi와 인터페이스 하여 노트북과 직렬로 연결된 다른 XBee 모듈 (XBee 탐색기 보드)과 무선으로 통신하도록합니다.
하드웨어 요구 사항
- Raspbian이 설치된 1 x Raspberry Pi
- 2 x XBee Pro S2C 모듈 (다른 모델 사용 가능)
- 1 x XBee 탐색기 보드 (옵션)
- 1 x Xbee 브레이크 아웃 보드 (옵션)
- USB 케이블
- LED
Raspberry Pi가 이미 운영 체제와 함께 플래시되었다고 가정합니다. 그렇지 않은 경우 계속하기 전에 Raspberry Pi 시작하기 자습서를 따르십시오. 여기에서는 Rasbian Jessie가 설치된 Raspberry Pi 3을 사용하고 있습니다.
여기에서 HDMI 케이블을 사용하는 외부 모니터는 Raspberry Pi와 연결하기위한 디스플레이로 사용됩니다. 모니터가없는 경우 SSH 클라이언트 (Putty) 또는 VNC 서버를 사용하여 랩톱 또는 컴퓨터를 사용하여 Raspberry pi에 연결할 수 있습니다. 여기에서 Raspberry Pi를 헤드리스로 설정하는 방법에 대해 자세히 알아보십시오.
XCTU를 사용하여 XBee 모듈 구성
ZigBee 소개의 이전 튜토리얼에서 배웠 듯이 XBee 모듈은 코디네이터, 라우터 또는 엔드 장치로 작동 할 수 있지만 원하는 모드에서 작동하도록 구성해야합니다. 따라서 Raspberry Pi와 함께 XBee 모듈을 사용하기 전에 XCTU 소프트웨어를 사용하여 이러한 모듈을 구성해야합니다.
XBee 모듈을 노트북과 연결하기 위해 USB- 직렬 변환기 또는 특별히 설계된 탐색기 보드가 사용됩니다. XBee 모듈을 Explorer 보드에 연결하고 USB 케이블을 사용하여 노트북에 연결하기 만하면됩니다.
컨버터 나 익스플로러 보드가 없다면 아두 이노 보드를 USB to Serial 장치 로 사용할 수있어 XBee 및 노트북과 쉽게 통신 할 수 있습니다. Arduino 보드에 빈 스케치를 업로드하기 만하면 이제 USB to Serial 변환기처럼 작동 할 수 있습니다.
XBee 모듈 구성:
이 튜토리얼에서는 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 모듈 뒷면에있는 장치의 제품군을 선택합니다. 아래 강조 표시된대로 기능 세트와 펌웨어 버전을 선택하고 업데이트를 클릭합니다.
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 모듈이 Raspberry Pi와 인터페이스 할 준비가되었습니다. 우리는 것이다 라즈베리 파이와 노트북 및 수신기 XBee에 송신기 XBee를 연결합니다. 그런 다음 랩톱을 사용하여 수신기 부분에 명령을 내립니다. 노트북.
수신부 회로도
ZigBee 모듈과 Raspberry PI의 인터페이스 연결은 회로도에 나와 있습니다.
사이:
- XBee의 Tx (pin2)-> 핀 Raspberry Pi의 Tx
- XBee의 Rx (pin3)-> 핀 Raspberry Pi의 Rx
- XBee의 Gnd (pin10)-> 핀 Raspberry Pi의 GND
- XBee의 Vcc (Pin1)-> 3.3v 핀 Raspberry Pi
- LED는 GPIO 23에 연결됩니다.
직렬 통신을위한 Raspberry Pi 설정
이제 직렬 통신을 위해 Raspberry Pi를 설정합니다. 기본적으로 Pi의 하드웨어 직렬 포트는 비활성화되어 있습니다. 따라서 연결을 시작하기 전에 활성화해야합니다.
1. 터미널에서 raspi-config 명령을 실행합니다.
2. 옵션 5 인터페이스 옵션으로 이동 하여 Enter 키를 누르십시오. 이제 선택 P6 직렬 옵션과 사용 후 저장합니다.
터미널을 종료하면 Raspberry Pi와 XBee를 연결할 수 있습니다. GPIO14 및 15는 각각 Tx 및 Rx로 작동하며 라즈베리 파이의 / dev / ttyS0 포트에서 사용할 수 있습니다.
이제 송신기 측 XBee에서 'a'를 수신 할 때마다 LED에 python 스크립트를 작성합니다.
XBee 통신을위한 Raspberry Pi 프로그래밍
XBee와 Raspberry Pi를 연결하기위한 완전한 파이썬 프로그램 이 마지막에 제공됩니다.
먼저 import 기능을 사용하여 time, serial 및 RPi.GPIO 라이브러리를 가져와야 합니다.
가져 오기 시간 가져 오기 직렬 가져 오기 RPi.GPIO를 GPIO로 …
이제 직렬 연결의 속성을 작성하고 다음과 같이 포트, 전송 속도 및 패리티를 정의합니다.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
while 루프 에 모든 송신 및 수신 요소를 작성하십시오.
동안 1:
ser.write 기능을 사용 하여 메시지를 송신기 측으로 보낼 수 있습니다. 계산을 보내려면 아래 줄의 주석 처리를 제거하십시오.
# ser.write (str.encode ('Write counter: % d \ n'% (counter))) # time.sleep (1) #counter + = 1
메시지를 수신하려면 ser.readline () 함수 를 사용해야 합니다. 수신 메시지를 변수에 저장하고 조건을 확인하십시오. 수신 메시지가 'a'이면 LED를 3 초간 켠 다음 LED를 끕니다.
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
데모 비디오 가 포함 된 완전한 Python 코드 는 튜토리얼의 끝에 제공됩니다. Pi의 텍스트 편집기에 코드를 붙여넣고 저장합니다. sudo python script_name.py를 사용하여 터미널에서 스크립트를 실행 하거나 Python IDE 및 Shell을 사용하여 스크립트를 실행할 수 있습니다.
Raspberry Pi를 사용하여 무선 XBee 통신 테스트
이제 우리는 모두 XBee 송신기와 수신기 를 테스트 할 준비를했습니다. 송신기 부분에 명령을 내리기 위해 XCTU의 콘솔 터미널을 사용합니다. 설정 옵션 근처에있는 콘솔 아이콘을 클릭하십시오. 그런 다음 열기 버튼을 클릭하여 XBee를 노트북에 연결합니다.
콘솔 로그에 'a'를 입력합니다. LED가 3 초 동안 켜졌다가 꺼지는 것을 볼 수 있습니다.
이러한 방식으로 이전 튜토리얼에서 설명한대로 송신기 XBee를 Arduino 보드에 연결하고 Raspberry Pi와 Arduino가 서로 통신하도록 만들 수 있습니다.