Olá garagistas no tutorial de hoje irei demonstrar como utilizar o Mini XBee Shield  como XBee Explorer para configurações , e como  comunicar o Garagino  com o Arduíno UNO através do XBee Shield. Lembrando que estamos utilizando os XBee series 1.

Materiais Utilizados

1x Arduino

1x Mini XBee Shield

1x XBee Shield

3x LEDs 5mm

3x Resistor 220Ω

3x Chave Tátil

1x Kit Garagino Rev 1 Básico (1x Garagino Rev 1 + 1x Módulo Conversor USB/Serial)

1x Protoboard - 170 Pinos

1x Cabo USB Mini-B - 1,80 metros

 

1. Mini XBee Shield

Figura 1- Mini XBee Shield

O Mini XBee Shield simplifica a interface do XBee com o Garagino. Com este shield você pode enviar comandos diretamente para o seu módulo XBee(Como um Xbee explore por exemplo),além disso, a barra de 6 pinos disponível na placa serve para você conectar o módulo Conversor USB/Serial e enviar comandos diretamente para seu XBee, sem a necessidade de ter um Garagino.
Os pinos de comunicação serial do XBee (D-IN e D-OUT) estão ligados diretamente a barra de 6 pinos, Através de jumpers (RX e TX) podemos selecionar o modo de interface do Garagino com o XBee, via Hardware Serial (Hard - D0 e D1) ou via Software Serial (Soft - D2 e D3) A alimentação é retirada do pino de VCC do Garagino e regulada na placa para 3.3V antes de ser fornecida ao XBee.

Para informações mais específicas sobre o XBee, consulte o Datasheet ou o Manual.

2. Como Configurar o XBee 

Para configurar o XBee, faça as conexões necessária utilizando-se um cabo Cabo USB (Tipo A para Mini B) e utilize o software X-CTU, disponível neste link. O X-CTU é um software criado pelo próprio fabricando do XBee para enviar comandos de configuração, fazer atualizações e outra diversas ferramentas para você configurar seu XBee.

2.1) Conexões Para As Configurações

Conecte o XBEE e o conversor serial no Mini XBee Shield, conforme a figura abaixo:

Figura 2 - Mini Xbee Shield MODO XBee Explorer

Nessa configuração não tem a necessidade de se usar o Garagino, Após conectar o cabo USB no seu PC abra o X-CTU.

2.2.1) Identificação

Figura 3- Identificando o XBee

A porta COM sera identificada logo no inicio, clique em Test / Query para verificar se o XBee esta funcionado corretamente, ira aparecer o Serial Number na tela e um "OK".

2.2.2) Lendo o dispositivo

Figura 5- Lendo o dispositivo


Na figura acima iremos fazer a leitura dos dados do XBee, automaticamente ele ira reconhecer o modelo.

2.2.3) Reset de fabrica

Iremos configura lo de fabrica.

Figura 6- Zerando de fábrica o dispositivo

2.2.4) Configuração do transmissor

Figura 7- Comandos do de configuração modo transmissor 

Conforma a tabela acima iremos configurar o XBee como transmissor, abaixo é realizado a configuração do endereço de rede como exemplo, o mesmo é realizado para os demais.

Figura 8- Inserindo comandos

Após setar todas as configurações da tabela referente ao transmissor sera feito o upload para o XBee.

Figura 9 - Realizando upload

Para configurar o receptor é o mesmo processo apenas mudando o XBee e os comandos, agora referente a tabela abaixo:.

Figura 7- Comandos do de configuração modo receptor 

3. Link Serial e  Pressionamento de tecla

Essa aplicação permite que você escreva na serial do transmissor, e os mesmos caracteres sejam escritos na serial do receptor, por exemplo, se na serial do transmissor eu escrever "Laboratório de Garagem", na serial do receptor vai ser escrito também "Laboratório de Garagem". Como uma demonstração, faremos que quando for pressionada alguma tecla ou ou for digitado na serial do transmissor os caracteres "L" ou "D" (Liga/Desliga) , ele enviara esses  caracteres "L" ou "D" para o receptor. Que ira interpreta lo e fará o acionamento de 2 LEDs, ou seja, se o receptor receber "L", o LED vermelho ira acender e o LED verde apagar, se o receptor receber "D", o LED verde ira acender e o LED vermelho apagar. Lembrando que essa é uma programação simples para fins didáticos, pode ser implementados varias outras informações facilmente. 

3.1) As Ligações

3.1.1) Receptor (XBee + XBee Shield + Arduino)

Faça a montagem conforme a figura abaixo, conecte o cabo USB do Arduino ao seu computador, e identifique qual porta COM seu computador vai reconhecer o Receptor.

 3.1.2) Transmissor (XBee + Mini XBee Shield + Garagino)

Conecte o XBee e o Garagino no Mini XBee Shield, conecte o cabo USB no seu computador, e identifique qual porta COM seu computador vai reconhecer o Transmissor.

4. Sketch Transmissor

#include <SoftwareSerial.h> //Biblioteca Serial
SoftwareSerial XBeeSerial(2, 3); // RX, TX

#define IN0 8//Define botão 1
#define IN1 7//Define botão 2

void setup()
{
  Serial.begin(9600);//Inicia Serial
  XBeeSerial.begin(9600);//Inicia a Serial via software
  pinMode(8, INPUT_PULLUP);// Configura o pino 4 como entrada
  pinMode(7, INPUT_PULLUP);// Configura o pino 5 como entrada
}
void loop()
{
 //Escreve o que foi escrito na serial monitor para o XBee
  if (Serial.available()){
    XBeeSerial.write(Serial.read());
  } 
  //Envia os dados atraves do XBee
  if (XBeeSerial.available()){
    Serial.write(XBeeSerial.read());
  } 
  //Leitura dos botões
  delay(100);
  if(digitalRead(IN0)==0){//Compara se o msm esta ativo
    XBeeSerial.write('l');//Envia um caracter
  }   
  if(digitalRead(IN1)==0){//Compara se o msm esta ativo
    XBeeSerial.write('d');//Envia um caracter
  }   
}

5. Sketch Receptor

 


#define ledVM 7//Saida LED vermelho
#define ledV 8//LED verde
#include <SoftwareSerial.h>//Biblioteca serial
SoftwareSerial mySerial(2, 3);//Configura uma serial via software
char lido;//Recebe caracter enviados pela Serial
void setup()
{
  Serial.begin(9600);//Inicia a serial
  mySerial.begin(9600);//Inicia a Serial via software
  pinMode(ledVM,OUTPUT);//Define como pino de saida
  pinMode(ledV,OUTPUT);//Define como pino de saida
  Serial.println("Este eh o Receptor");//Envia algumas informações a Serial antes de iniciar
  Serial.println("Digite na Serial do Transmissor");
  Serial.println("Ou pressione algum botao no transmissor");
}
void loop()
{
  if (mySerial.available())//Confere se recebeu alguma informação
  {
    lido = mySerial.read();//Compara se for o valor definido
    if(lido == 'l' || lido == 'L')//Tanto maiusculo como minusculo
    {
      digitalWrite(ledVM,HIGH);//Ativa LED vermelho
      digitalWrite(ledV,LOW);//Desativa LED verde
      Serial.println("LED Aceso");//Printa a informação usando LED vermelho como referencia
    }
    else if(lido == 'd' || lido == 'D')//Tanto maiusculo como minusculo
    {
      digitalWrite(ledV,HIGH);//Ativa LED verde
      digitalWrite(ledVM,LOW);//Desativa LED vermelho
      Serial.println("LED Apagado");//Printa a informação usando LED vermelho como referencia
    }
    Serial.println(lido);//Printa a informação recebida independente do que mandar
    Serial.println();//Pula uma linha
  }
}

Referências:

http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-xbee

https://sites.google.com/site/toucatronic/zigbee/comandos-at

https://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-Datasheet.pdf

http://www.rogercom.com/ZigBee/ZigBee.htm

Exibições: 3089

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de danilo furlaneto em 20 maio 2015 às 14:17

posso usar outro arduino UNO no lugar do mini xbee shield ?

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço