2016-10-23 4 views
0

저는 xbee 's를위한 3 웨이 통신을 연구했습니다. 1 코디네이터와 2 라우터에 대한 구성을 알아 냈습니다. 문제는이 통신을 테스트하는 코드를 찾지 못하는 것입니다. 내가 필요한 것은 코디네이터가 동시에 다른 메시지를 라우터에 보내는 간단한 코드입니다. 나는 솔직히 엉망이다. 누구든지 도와 줄 수 있습니까?3xbee의 기본 코드 : 1 코디네이터 및 2 라우터

답변

0

먼저 Digi에서 제공하는 XCTU이 필요합니다. 데이터를 보내고 받으려면이 소프트웨어를 사용할 수 있습니다.

자신의 프로그램을 작성하려면 xbee을 사용하는 것이 좋습니다. 이 파이썬 모듈에는 라우터 나 엔드 디바이스에서 보낸 패킷을 읽는 방법과 코디네이터에서 원격 디바이스로 원격 명령을 보내거나 그 반대의 경우에 대한 예가 나와 있습니다.

예 1 - 원격 장치에서 전송 된 패킷을 읽어

from xbee import ZigBee 
import serial 

PORT = '/dev/ttyAMA0' #change AMA0 to USB0 or another port if is necessary 
BAUD_RATE = 9600 #the baudrate 

# Open serial port 
ser = serial.Serial(PORT, BAUD_RATE) 

# Create API object 
xbee = ZigBee(ser) 

# Continuously read and print packets 
while True: 
    try: 
     response = xbee.wait_read_frame() 
     print(response) 
    except KeyboardInterrupt: 
     ser.colose() 
     break 

예 2 - 장치에 원격 명령을 보내기 :

from xbee import ZigBee 
import serial 

ser = serial.Serial('/dev/ttyAMA0', 9600) 
xbee = ZigBee(ser) 

#send command to change Pin 4 of the Xbee to LOW 
xbee.send('remote_at', 
      frame_id='A', 
      dest_addr_long='\x00\x13\xA2\x00\x40\x24\x20\x7D', #this is the serial address(like the MAC address) of the device. You can read it with XCTU(SH and SL parameters) or you can read it from the back of the device 
      options='\x02', 
      command='D4', #pin4 
      parameter='\x04') #change status to low(\x05 for high status) 

#send 1 packet/second with the status of the pins 
xbee.send('remote_at', 
      frame_id='B', 
      dest_addr_long='\x00\x13\xA2\x00\x40\x24\x20\x7D', 
      options='\x02', 
      command='IR', #sample rate parameter 
      parameter='\x03\xE8') #1000 in hex 

#write the above changes 
xbee.send('remote_at', 
      frame_id='C', 
      dest_addr_long='\x00\x13\xA2\x00\x40\x24\x20\x7D', 
      options='\x02', 
      command='WR') 

난이 도움이되기를 바랍니다.