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);
}
}

    • ETAPA Intermediária de TESTE

Esta etapa é uma etapa intermediária, pois ela não foi planejada. Com o desenvolvimento da comunicação do xbee, esta etapa é uma possível solução mais simples para a comunicação sem fio entre o kit TDC1000-7200 e o xbee.

Ela consiste em realizar a comunicação direto pelas portas tx e rx do kit da texas e o xbee.

Assim, esta ETAPA consiste em 2 fases sendo elas:

FASE 1: Esta fase, foi realizado o teste entre um sensor de distância ultrassônico  ligado no arduino uno que foi ligado no xbee terminal. Esta ligação entre o o arduino uno e o xbee foi realizado através do explorer do xbee pelas porta tx e rx, onde:

  1. A porta rx do arduino foi ligado na porta rx do xbee terminal
  2. A porta tx do arduino foi ligado na porta tx do xbee terminal

Assim, foi compilado um código no Arduino uno de distância, relacionado diretamente ao sensor Ultrassônico junto com sua biblioteca, para que desta forma, o xbee terminal enviasse o sinal já processo pelo Arduino, para o xbee coordenador ligado no computador para receber o sinal de distância coletado pelo sensor ultrassônico, sendo esta comunicação, sem fio.

Segue abaixo a imagem destas ligações:

Vídeo do Experimento

Código do Arduino:

#include <Ultrasonic.h>

//Define os pinos para o trigger e echo
#define pino_trigger 4
#define pino_echo 5

//Inicializa o sensor nos pinos definidos acima
Ultrasonic ultrasonic(pino_trigger, pino_ech o);

void setup()
{
Serial.begin(9600);
Serial.println(“Lendo dados do sensor…”);
}

void loop()
{
//Le as informacoes do sensor, em cm e pol
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
//Exibe informacoes no serial monitor
Serial.print(“Distancia em cm: “);
Serial.print(cmMsec);
Serial.print(” – Distancia em polegadas: “);
Serial.println(inMsec);
delay(1000);
}

  • 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 *