作为我项目的一部分,我正在使用XBee。我想要示例Python代码使两个XBees在Windows中相互通信。我编写了代码,但它有问题。
想从一个XBee发送“hello”这样的消息,它应该打印在另一个XBee端。我怎么能这样做?
答案 0 :(得分:1)
查看精彩的python-xbee图书馆和Digi的examples.digi.com,作为XBee新手的两个优秀资源。在这两个站点之间,你应该能够让你的XBee无线电相互连接(使用第二个链接),然后让它们在Python中工作(使用第一个链接)。
答案 1 :(得分: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字段中的数据包将是有效负载。
我希望这有用。