#api #arduino #communication #router #xbee
#API #arduino #Информационные материалы #маршрутизатор #xbee
Вопрос:
Я исследовал 3-стороннюю связь для xbee. Я разобрался с конфигурацией для 1 координатора и 2 маршрутизаторов. Проблема в том, что я, похоже, не могу найти код для проверки этого взаимодействия. Все, что мне нужно, это простой код для координатора, чтобы одновременно отправлять разные сообщения маршрутизаторам. Я, честно говоря, в тупике. Кто-нибудь может помочь?
Ответ №1:
Прежде всего вам понадобится XCTU, предоставляемый Digi. Затем, если вы хотите отправлять и получать данные, вы можете использовать это программное обеспечение.
Если вы хотите написать свою собственную программу, я рекомендую использовать xbee. В этом модуле python есть все, что вам нужно: примеры того, как читать пакеты, отправляемые маршрутизаторами или конечными устройствами, и примеры того, как отправлять удаленные команды от координатора на удаленные устройства или наоборот.
Пример 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='x00x13xA2x00x40x24x20x7D', #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='x00x13xA2x00x40x24x20x7D',
options='x02',
command='IR', #sample rate parameter
parameter='x03xE8') #1000 in hex
#write the above changes
xbee.send('remote_at',
frame_id='C',
dest_addr_long='x00x13xA2x00x40x24x20x7D',
options='x02',
command='WR')
Я надеюсь, что это полезно.