Explorando os Xbee em Raspberry PI e Linux

Xbees e Explorers

Finalmente chegaram os Xbee que tinha comprado na SparkFun. Além de terem desconto na altura, em terras Lusitanas não encontrei tudo o que precisava.

Sejam bem-vindos à Internet das coisas ! 🙂

Os Xbees fazem muita coisa e existem várias versões. Para mais informações, consultem a página oficial da Digi.

No entanto, para resumir – permitem comunicação rádio !

Assim, vamos explorar a comunicação entre Xbee.

Material necessário:

Xbees são fabulosos. São pequeninos e muito poderosos (consoante o vosso modelo). Estes dão 1.5km de distância – a experimentar –

A maioria das configurações são com quem os Xbees devem falar – podem falar com outro Xbee, com vários Xbees, etc..

Três dos mais importantes parametros do Xbee são:

  • Canal (Channel)
  • PAN ID (Network ID)
  • My Address
  • destination address

Channel

Controla a frequência de comunicação dos Xbees. A maioria dos Xbees comunica nos 2.4GHz – 802.15.4 . Convêm que todos os Xbees estejam na mesma rede. Geralmente é simples deixar as definições como estão…

PAN ID

PAN significa Personal Area Network. Este é um identificador único da rede criada. Xbees com os mesmo identificador só comunicam entre eles. Permite separar redes no mesmo local. Este ID é um valor em hexadecimal entre 0 e 0xFFFF (65536 possiveis ID).

My Address (ou Source Address)

Este é o endereço de origem do Xbee. É um endereço único para um Xbee em particular. É através dele que outros Xbee irão enviar mensagens para ele. Novamente, um valor hexadecimal de 16 bits entre 0 e 0xFFFF

Destination Address (DH & DL)

Novamente, este ID de 16 bits entre 0 e 0xFFFF determina que “My Address” pode este Xbee comunicar com. Para que dois Xbees possam comunicar, o My Address de um tem que ser o Destination Address do outro e vice-versa.

No entanto, existem dois parametros a preencher – DH & DL. Para simplificar as configurações, preencher DH com 0 e o DL com o My Address do Xbee receptor (com quem desejamos falar) – como escrito em cima.

Para mais informações sobre o DH e o DL, podem consultar esta página (em inglês)

Assim sendo, com 2 Xbees, temos o seguinte resumo:

Definição Comando Acronimo Xbee1 Xbee2
Canal CH C C
PAN ID ATID ID 1B20 1B20
My Address ATMY MY 1 0
Destination Address High ATDH  DH  0 0
Destination Address Low ATDL  DL  0 1

Para conhecerem mais comandos, vejam a página de referência dos comandos para estes Xbees.

Configuração

A aplicação oficial para configurar os Xbee é o X-CTU da Digi (quem fabrica os Xbee), mas também é possivel configurar os Xbee usando outras aplicações que possam efetuar comunicações série – naturalmente que funcionalidades como atualizações de firmware não estarão disponiveis.

X-CTU

Ao ligarem um Xbee, ele aparece na aplicação e poderão efetuar diversas operações com ele. Os parâmetros referidos em cima estão assinalados

xctu1

O Xbee Explorer USB ou o Xbee Explorer dongle ambos usam FTDI

Para comunicação, em Xbees sem alterações, os parâmetros de ligação serão:

  • baud rate: 9600
  • data bits: 8 bits
  • parity: none
  • stop bits: 1
  • hardware flow control: none

Para o minicom, devem também ativar o local echo

Assim que ligarem o Xbee explorer (tanto o USB como o dongle), para descobrir qual o dispositivo basta com um dmesg e descobrem em que device está:

Para usarem o minicom com o vosso utilizador, este tem que pertencer ao grupo dialup (ou uucp no meu caso de Gentoo).

Devem configurar o minicom com os parâmetros necessários

Raspberry PI

Instalar o minicom

Configurar da mesma forma que anteriormente

Neste caso para o PI estou a usar o Sparkfun Xbee Explorer USB, que também usa FTDI e é ligado por USB, embora usando um cabo com mini-usb.

Para executar o minicom, basta executar

 

Minicom

Minicom

Minicom

Se ativaram o Linefeed, a seguir aos comandos não precisam de pressionar na tecla <enter>.

Mais uma vez, ativem o “Local Echo” para poderem ver o que estão a escrever.

Lembrar:

  • Para verificar as definições, basta digitar apenas o comando
  • Para guardar as definições, digitar ATWR para guardar
  • Para iniciar o “modo de comandos” pressionar +++ (3 +)
  • Ao final de cerca de 10 segundos (+/-) sem nenhum comando, o Xbee sai do modo de comandos

Xbee 1

Xbee 2

NOTA: vejam que os Xbees têm trocado os canais de DL (Destination Address LOW) e MY (My Address) – Permitindo assim que um fale com o outro e vice-versa. Deixei 0 e 1 para ser mais simples, mas podem usar qualquer endereço de 0 a 0xFFFF

A unica coisa que não fiz foi ATWR porque apenas executei os comandos e pressionei <enter>

Após cada comando, devem receber um OK por parte do Xbee.

Assim que programarem os Xbees, nada mais que efetuar um teste de comunicacao entre eles.

Executem o minicom no computador e no Raspberry PI e experimentem escrever (Não se esqueçam de ativar o Local Echo).

Aqui fica um video da comunicação em curso:

Boas comunicações !

Referências

https://learn.sparkfun.com/tutorials/exploring-xbees-and-xctu

http://examples.digi.com/get-started/basic-xbee-802-15-4-chat/

Leave a Reply

Your email address will not be published. Required fields are marked *