Прочитайте идентификатор xbee с Arduino Fio и отправьте его через последовательный порт

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

Предположим, я отправляю команду "Чтение" через серийный номер всем Arduinos. Все отвечают, что "хорошо".

Моя проблема состоит в том, чтобы заставить их ответить примерно так: "Arduino ID1 говорит OK" или "Arduino ID2 говорит OK" и т. Д.

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

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

Поэтому я ищу какую-то функцию в программе, сожженную в примере Arduinos

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

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

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 выйти из командного режима.

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

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

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

Другие вопросы по тегам