Прочитайте идентификатор xbee с Arduino Fio и отправьте его через последовательный порт - PullRequest
0 голосов
/ 02 мая 2011

Я пытаюсь связать несколько Arduino Fio с Xbee в качестве рабов, а мой компьютер в качестве Master с Explore и Xbee.

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

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

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

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

Так что я ищу какую-то функцию в программе, записанную в примере Arduinos

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

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

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Мне удалось получить 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 для выхода из режима команд.

0 голосов
/ 19 ноября 2012

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

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

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

...