Testes de Comunicação com Xbee

Comunicação com Xbee

Neste Artigo será realizado testes de comunicação com o Xbee, com o objetivo de implementa-lo no kit da texas TDC1000-TDC7200EVM para realizar o monitoramento da vazão de água em um computador distante do local onde se encontra o sensor de vazão.

Para chegar neste objetivo, é nescessário realizar a comunicação SPI (Serial Peripheral Interface) com o kit da texas instruments, desta forma, para que isto seja possível, será desenvolvida 4 etapas, conforme abaixo:

Etapa 1 : Comunicação simples com XBEE no modo Coordenador e Routeador: para verificar que as ligações e as configurações que estão senda realizadas no XBEE estão corretas.

Etapa 2: Comunicação entre 1 Coordenador e 2 Routeadores: depois cumprir etapa 1, o próximo passo, é testar a comunicação em rede.

Etapa 3: Comunicação SPI entre o Arduino e o XBee. (Em desenvolvimento)

Etapa 4: Comunicação SPI entre kit  TDC1000-TDC7200EVM e o XBee (Em desenvolvimento)

  • Explicação da ETAPA 1

Nesta primeira etapa, foram utilizados 2 xbee’s de modelos diferentes, sendo que 1 deles, foi configurado como coordenador, e o outro como roteador. Segue abaixo os modelos utilizados:

Coordenador: XBee Pro S2C

Roteador: XBee Pro S2

Como foi ligado o XBee:

O XBee coordenador foi ligado no Xbee Usb Explorer Adapter, que foi ligado no usb do computador.

O XBee roteador, foi ligado no Arduino UNO, ligado RX do Explorer na porta zero (RX) do Arduino. Além de ligar o 5V e o GND do explorer nas portas de 5V e GND do arduino, conforme a figura abaixo:

Resultado-Hello-Word-Xbee

XBEE COORDENADOR Modelo: XBP24-Z7WIT
DH Destination Addres High 13A200
DL destination Address Low 4098D4CF
Familia Xbee PRO S2

 

XBEE ROOTER Modelo: XBP24-Z7WIT
DH Destination Addres High 13A200
DL destination Address Low 408DC794
Familia Xbee PRO S2

Configuração do Coordenador

1 –  Atualize o firmware para que ele seja coordenador.

Clique no Modulo => Update => ZigBee Coordinator AT

Obs.: Selecione a versão mais recente (Primera)

configurando-xctu

2 –  Atualize o firmware para que ele seja coordenador.

Agora: Definir nome da Rede e Cadastrar o endereço do Router

  • Nome da rede: ID PAN ID: FF
  • Cadastrar endereço Router:
    • DH Destination Address 13A200
    • DL Destination Address Low 408DC794
    • NI node identifierXbee-FF-Server

Configuração do Routeador (ZigBee Router AT)

Definir nome da Rede e Cadastrar o endereço do Router

  • Nome da rede: ID PAN ID: FF
  • Cadastrar endereço Coordenador:
    • DH Destination Address13A200
    • DL Destination Address Low 4098D4CF
    • NI node identifierXbee-FF-Server

Obs.:

  • DH Destination Address – É a primeira parte do endereço do módulo Router/Coordinator
  • DL Destination Address Low – É a segunda parte do endereço do módulo Router/Coordinator
  • Xbee-FF-Server: nome de sua preferencia

Testando a Comunicação

O Roteador será ligado no Arduino fora do computador, alimentado por uma fonte.

O Coordenador vai no computador, que irá enviar a informação para o routeador receber e acender o led do Arduino.

Para isto:

1 – Transfira o programa para o Arduino no computador e depois retire ele fora do computador e deixe alimentado por fonte externa.

2 – Ligue o Roteador no Arduino

3 – Ligue o Coordenador no computador. Agora entre no XCTU e clique em:

  • Console;
  • Abra a porta;
  • Agora na Tela do console, digite 1 para ligar o led e 0 para pagar, conforme o programa do Arduino.

Resultado:

xbee-e-arduino-resultado

Código do Arduino Uno:

//Armazena os valores recebidos da serial
int valores = 0;
//Armazena o estado do led
String estado;

void setup()
{
//Define o pino 13 – LED embutido no Arduino – como saida
pinMode(13, OUTPUT);
Serial.begin(9600);
}

void loop()
{
//Aguarda dados na serial
if (Serial.available() > 0)
{
valores = Serial.read();
//Caso seja recebido 0, apaga o led
if(valores == ‘0’)
{
digitalWrite(13, LOW);
estado = “apagado”;
}
//Caso seja recebido 1, acende o led
else if(valores == ‘1’)
{
digitalWrite(13, HIGH);
estado = “aceso”;
}
//Envia mensagem de confirmacao
Serial.print(” Led “);
Serial.print(estado);
Serial.write(10);
}
}

  • Explicação da ETAPA 2

Nesta segunda etapa, foram utilizados 3 xbee de modelos diferentes, sendo que 1 deles, foi configurado como coordenador, e os outros 2, como roteador. Segue abaixo os modelos utilizados:

Coordenador: XBee Pro S2C

Roteador-1: XBee Pro S2

Roteador-2: XBee Pro S2

Como foi ligado o XBee:

O XBee coordenador foi ligado no Xbee Usb Explorer Adapter, que foi ligado no usb do computador, igual a etapa 1.

O XBee roteador, foi ligado no Arduino UNO e no Arduino Mega, sendo agora 2 tipos de ligações:

1 Ligação xbee – Arduino Uno: Realizada igual a etapa 1, pelo xbee explorer. Desta forma, ligando o RX do Explorer  na porta zero (RX) do Arduino. Além de ligar o 5V e o GND do explorer nas portas de 5V e GND do arduino.

2 Ligação xbee – Arduino Mega: Ligação direta do chip do xbee no arduino. Para isto, foi nescessário, verificar o datasheet do modelo do xbee, conforme a figura abaixo:

xbee-datasheet

xbee-datasheet-ligacoes

Desta forma, foram conectados os pinos: 1, 2 e 10 no arduino, sendo eles:

  • Pino 1 – VCC [Ligar em 3.3V (Maximo)]
  • Pino 10 – GND
  • Pino 2 – Saída de Dados digitais (DOUT)

Obs.: O Pino 2 foi conectado na porta 0 (RX) do arduino mega

Segue abaixo a imagem destas ligações:

xbee-cordenador-2routeadores

Configuração do Coordenador

Definir nome da Rede e Cadastrar o endereço do Router

  • Nome da rede: ID PAN ID: FF
  • CE coordator Enable: Enable1
  • Cadastrar endereço Router:
    • DH Destination Address 0
    • DL Destination Address Low FFFF
    • NI node identifierXbee-FF-Server ou Coordenador

Obs.: o endereço de destino: DL Destination Address Low FFFF é  configurado para FFFF que faz o rádio funcionar no modo de transmissão, para que ele possa se comunicar com todos os rádios da rede.

Configuração do Roteador

Definir nome da Rede e Cadastrar o endereço do Router

  • Nome da rede: ID PAN ID: FF
  • JV CHANNEL VERIFICATION: Enabled
  • CE Coodinator: Disabled
  • Cadastrar endereço Router:
    • DH Destination Address0
    • DL Destination Address Low 0
    • NI node identifierXbee-FF-Server ou rooter

Testando a Comunicação

Os Roteadores serão ligados no Arduino  Uno e Mega, fora do computador, alimentado por uma fonte externa.

O Coordenador será ligado no computador, que irá enviar a informação para o roteador receber e acender o led de cada Arduino.

Para isto:

1 – Transfira o programa para o Arduino Uno (Código do Uno está divulgado na etapa 1)

2 – Transfira outro programa para o Arduino Mega

2 – Ligue os Roteadores nos Arduinos

3 – Ligue o Coordenador no computador. Agora entre no XCTU e clique em:

  • Console;
  • Abra a porta;
  • Agora na Tela do console, digite 1 para ligar o led e 0 para pagar, conforme o programa do Arduino.

De acordo com o programa que foi transferido para cada Arduino, quando clicar em 1 irá acender o ledo do Arduino Uno, e em zero irá apagar.

A mesma coisa irá acontecer para o Arduino Mega, sendo a diferença que quando clicar em 4, acenderá o led do mega e em 3 apagará.

Código do Arduino Mega:

int valores = 0;
//Armazena o estado do led
String estado;

void setup()
{
//Define o pino 13 – LED embutido no Arduino – como saida
pinMode(13, OUTPUT);
Serial.begin(9600);
}

void loop()
{
//Aguarda dados na serial
if (Serial.available() > 0)
{
valores = Serial.read();
//Caso seja recebido 0, apaga o led
if(valores == ‘2’)
{
digitalWrite(13, LOW);
estado = “apagado”;
}
//Caso seja recebido 1, acende o led
else if(valores == ‘3’)
{
digitalWrite(13, HIGH);
estado = “aceso”;
}
//Envia mensagem de confirmacao
Serial.print(” Led “);
Serial.print(estado);
Serial.write(10);
}
}

  • Explicação da ETAPA 3 – Em desenvolvimento
  • Explicação da ETAPA 4 – Em desenvolvimento

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *