Прочитайте идентификатор 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 каждый раз, когда вы отправляете сообщение, адрес источника автоматически включается во фрейм, поэтому вам не нужно включать эту информацию подробно.