2013-12-15 173 views
2

作爲我項目的一部分,我使用的是XBee。我想要示例Python代碼使兩個XBees在Windows中相互通信。我寫了代碼,但它有一個問題。Xbee使用Python進行簡單通信?

想要從一個XBee發送像「hello」這樣的消息,並且它應該打印在另一個XBee端。我怎樣才能做到這一點?

回答

1

看看偉大的python-xbee庫和Digi的examples.digi.com是XBee新手的兩個優秀資源。在這兩個站點之間,你應該能夠讓你的XBee無線電相互連接(使用第二個鏈接),然後讓它們在Python中工作(使用第一個鏈接)。

0

之前做其他事情,你必須配置設備,使用XCTU軟件:

首先設備 - 協調員API模式: - ID 7777(或任何隨機值) - DL設置爲FFFF

第二裝置 - 路由器AT模式: - ID 7777(必須是每個設備是相同的) - DL設置爲0

有限公司德爲協調器(聽模式):

import serial 
import time 
from xbee import ZigBee 

PORT = "COM1" #change the port if you are not using Windows to whatever port you are using 
BAUD_RATE = 9600 
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("\nPacket received at %s : %s" %(time.time(), response)) 

    except KeyboardInterrupt: 
     ser.close() 
     break 

代碼的遠程設備:

import serial 

PORT = "COM1" #change the port if you are not using Windows to whatever port you are using 
BAUD_RATE = 9600 
ser = serial.Serial(PORT, BAUD_RATE) 

while True: 
try: 
    data = raw_input("Send:") 
    ser.write(data) #if you are using python 3 replace data with data.encode() 
except KeyboardInterrupt: 
    ser.close() 
    break 

運行代碼並從遠程設備將數據發送到協調器。您將能夠看到在控制檯中打印的數據包,而在rx_data字段中將是有效負載。

我希望這是有幫助的。