远程控制时不一致的Xbee LED闪烁

时间:2015-03-12 21:10:23

标签: python led xbee blink

我正在尝试使用由协调器API Xbee控制的路由器AT XBee使LED闪烁。协调器Xbee连接到Raspberry Pi,后者运行以下程序。 LED一直闪烁4个周期,但在此之后,它会不一致地闪烁(卡住并且不亮,然后超快速闪烁,再次卡住)。有时,即使程序停止后,LED也会在几秒钟后闪烁。什么导致了延迟和不一致,我没弄明白。我很欣赏任何指针。谢谢。 波特率:9600

from xbee import XBee, ZigBee
import serial
import time

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

while True:
    try:
        xbee.send('remote_at',
              frame_id='A',
              dest_addr_long='\x00\x00\x00\x00\x00\x00\xFF\xFF',
              dest_addr='\xFF\xFE',
              options='\x02',
              command='P2',
              parameter='\x05')

        time.sleep(1)

        xbee.send('remote_at',
              frame_id='A',
              dest_addr_long='\x00\x00\x00\x00\x00\x00\xFF\xFF',
              dest_addr='\xFF\xFE',
              options='\x02',
              command='P2',
              parameter='\x04')

        time.sleep(1)
    except KeyboardInterrupt:
        break

xbee.send('remote_at',
      frame_id='A',
      dest_addr_long='\x00\x00\x00\x00\x00\x00\xFF\xFF',
      dest_addr='\xFF\xFE',
      options='\x02',
      command='P2',
      parameter='\x04')

ser.close()

1 个答案:

答案 0 :(得分:0)

首先,尝试通过设置dest_addr_long(而不是设置dest_addr)来尝试从广播切换到单播数据包。我的回忆是广播数据包总共发送三次以确保它们在远程设备上被接收。您的网络上可能没有太多流量,但我认为您会看到更加可靠的单播时机。

其次,尝试切换到115200 bps。它将简化Raspberry Pi和协调器之间的通信,并消除可能的串行缓冲延迟。