Связь XBee S2C и XBee S1 Pro
У меня есть XBee S1 Pro, который настроен как координатор. и XBee S2C, который сконфигурирован как конечный узел. Оба загружены с прошивкой 802.15.4. Используя XCTU, я отправлял и получал данные в прозрачном режиме.
Теперь я настроил конечный узел в режим API-1 и подключил его к Arduino Nano. Я хочу прочитать полезную нагрузку. Вот мой код Arduino:
void setup() {
Serial.begin(9600);
Serial.println("Setup done...");
while (!Serial) {;}
}
void loop() {
if (Serial.available()) {
for (int i = 0; i < 8;i++) {
byte discard = Serial.read();
}
Serial.write(Serial.read());
Serial.print(",");
}
Когда я посылаю привет от координатора, я получаю:
Setup done...
FFFFFFFF
,FFFFFFFF
,FFFFFFFF
,FFFFFFFF
,FFFFFFFF
,FFFFFFFF
,FFFFFFFF
,FFFFFFFF
,FFFFFFFF
,
Есть ли более простой способ сделать это, например, использовать библиотеку Arduino XBee? Может ли кто-нибудь любезно помочь мне?
1 ответ
Подтвердили ли вы, что два модуля XBee подключены к одной сети? Насколько я понимаю, S1 был просто 802.15.4, а S2 был ZigBee. Возможно, вам следует начать свой проект с идентичного сетевого оборудования, чтобы устранить это как источник проблем.
Я бы рекомендовал следовать руководству и использовать этот код, чтобы установить рабочую отправную точку для любого кода, который вы хотите написать.
Изменить: добавление кода
Прежде всего, вам нужно иметь два последовательных порта. Один для вашей консоли, где вы можете увидеть вывод Serial.print()
и другой для связи с модулем XBee.
Во-вторых, начните с этого цикла:
void loop() {
// echo bytes received on XBee module to serial console
if (XBee.available()) {
Serial.write(XBee.read());
Serial.print(",");
}
// echo bytes received on serial console to XBee module
if (Serial.available()) {
XBee.write(Serial.read());
}
}
Таким образом, вы сбрасываете каждый байт, который получаете, и только вызываете XBee.read()
когда есть данные для чтения.
Возможно, вы захотите сохранить свой модуль XBee на 9600 бод, но увеличьте интерфейс stdio (Serial
) до 115200, поскольку вы печатаете более одного символа на байт, полученный от модуля XBee.