Как узнать физический адрес XBee?

У меня есть система с сервером (персональный компьютер с подключенным XBee Dongle, на котором запущена программа Java) и несколько Boe-Bot с подключенными XBees и программами Arduino. Я знаю, как заставить Boe-Bots отправить сообщение на сервер. Я хочу, чтобы сервер получил физический адрес Boe-Bot XBee, чтобы он мог отправить сообщение этому конкретному Boe-Bot с помощью метода Java
com.digi.xbee.api.XBeeDevice.sendData(RemoteXBeeDevice remoteXBeeDevice, данные в байтах []) зная, какой аргумент указать для remoteXBeeDevice.

Я думаю, что это возможно двумя способами.

1) В библиотеке Arduino XBee может быть метод для получения физического адреса XBee. Затем Boe-Bot может получить свой собственный адрес и отправить его в сообщении на сервер. Я не нашел такого метода.

2) На стороне сервера в библиотеке Java XBee может быть метод, позволяющий автоматически определять физический адрес клиента, взаимодействующего с сервером. Я думал, что XBeeMessage.getDevice() был таким методом, но он вернул RemoteXBeeDevice с XBee64BitAddress FFFFFF..., который не является правильным адресом XBees Boe-Bot.

Кто-нибудь знает правильный метод Arduino для варианта 1 или правильный метод Java для варианта 2?

Изменить: XBee S1

, 👍-1

Обсуждение

Какие XBees вы используете?, @Majenko

XBee S1 как для сервера, так и для роботов., @Taha Ghassemi


1 ответ


1

Сначала вы можете проверить сигнал, полученный от xbee, подключенного к серверу, с помощью последовательного монитора coolterm или arduino. Это необходимо для обеспечения связи между двумя xbees.

Затем вы получите несколько забавных символов, что является нормальным, вам нужно преобразовать эти символы в шестнадцатеричную форму, что предпочтительнее для использования coolterm, поскольку у него есть такая возможность.

И наконец, полученные символы будут иметь длину около 21 символа. Он начинается с 7E в качестве начального символа. Вот что я получил при использовании XBee S2. Затем эти символы можно преобразовать в другую форму.

Я бы посоветовал книгу под названием "Беспроводная сенсорная сеть" Роберта Фалуди, чтобы понять больше.

,

Я ищу метод, при котором я мог бы просто загрузить код Arduino на роботов и запустить сервер, и он будет работать. Я не хочу находить адрес каждого робота вручную. Возможно ли такое?, @Taha Ghassemi

Это было бы возможно, если бы был точный код, применяющий то же самое. Однако велика вероятность, что нет. Вам необходимо настроить каждый вывод, который изменяется при отправке сигнала. Вам нужно понять конфигурацию, а затем применить ее в своем коде., @Muhammad