2013-12-15 5 views
2

В качестве части моего проекта я использую XBee. Я хочу, чтобы образец кода Python позволял двум XBees взаимодействовать друг с другом в Windows. Я написал код, но у него есть проблема.Xbee простая связь с использованием Python?

Что бы послать сообщение, подобное «привет» от одного XBee, и оно должно быть напечатано на другой стороне XBee. Как я могу это сделать?

ответ

1

Посмотрите на отличную библиотеку python-xbee и Digi's examples.digi.com в качестве двух отличных ресурсов для кого-то нового для XBee. Между этими двумя сайтами вы сможете подключить радиостанции XBee друг к другу (используя вторую ссылку), а затем заставить их работать на Python (с первой ссылкой).

0

Прежде чем делать что-нибудь еще, вы должны настроить устройства, использование XCTU ПО:

Первое устройство - координатор Режим API: - ID 7777 (или любое случайное значение) - DL устанавливается на FFFF

Второе устройство - маршрутизатор режим AT: - ID 7777 (должен быть одинаковым для каждого устройства) - DL установлен в 0

Co де для координатора (режиме прослушивания):

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 будут полезной нагрузкой.

Надеюсь, это полезно.

Смежные вопросы