Считайте идентификатор xbee с помощью Arduino Fio и отправьте его по последовательному каналу связи.

Я пытаюсь подключить к сети несколько Arduino Fio с Xbee в качестве ведомых и мой компьютер в качестве ведущего с Explore и Xbee.

Предположим, я отправляю команду «Чтение» по последовательному порту всем Arduino. Все отвечают, предположим, «ОК».

Моя проблема состоит в том, чтобы заставить их ответить что-то вроде «Arduino ID1 говорит «ОК» или «Arduino ID2 говорит «ОК» и т. д.

Теперь это может быть легко, если в каждую Arduino встроены отдельные программы. Но в моем случае все ардуины должны иметь одинаковые программы.

Я знаю, что мы назначаем MyID и Pan ID каждому Xbee при их первой настройке.

Итак, я ищу какую-то функцию в программе, встроенной в пример Arduinos.

'readMyXbeeID()' или что-то в этом роде.

Любые идеи, как я могу это сделать? Или любой другой способ добиться того же?


person Shaunak    schedule 02.05.2011    source источник


Ответы (2)


Мне удалось получить MYID с помощью AT-команд. Вам нужно будет прочитать документацию XBEE, чтобы подтвердить это.

Используйте "+++", чтобы войти в командный режим (не забывая о задержке в одну секунду для «охраны» этой последовательности).

{ Я использовал: delay(1200); Serial.print ( "+++" ) ; }

XBEE ответит OK\r. Тогда ATMY\r даст вам MYID returned as an ascii string terminated with "\r". [В моем случае я установил MYID из 2, поэтому я увидел строку "2\r"]

Закончите с командой ATCN\r для выхода из командного режима.

person Guy    schedule 07.11.2011

Если вы хотите управлять связью с несколькими устройствами, я рекомендую вам использовать режим API вместо режима AT. Если вы работаете с Arduino, есть несколько действительно хороших библиотек: Xbee-Api и XBee-Arduino. Здесь вы найдете полезную информацию и примеры, которые могут помочь в вашем проекте.

Я руководил несколькими проектами с этими библиотеками (полные новички в технологии ZigBee), и они очень быстро освоили все концепции. 100% рекомендуется.

Что касается вашего вопроса, вы правы, написав только одну программу для всех Arduinos. В противном случае вам придется создавать разные hex-файлы для каждой ноды, что не имеет смысла. Самый простой способ идентифицировать узлы ZigBee — просто использовать, например, 64-битный физический адрес. Вы можете легко получить этот адрес с помощью AT-команд. Но имейте в виду, что в режиме API всякий раз, когда вы отправляете сообщение, исходный адрес автоматически включается во фрейм, поэтому вам не нужно явно указывать эту информацию.

person Community    schedule 19.11.2012