• Nenhum resultado encontrado

5.3: Programando os módulos Xbee para a solução final.

Realizada a programação do Arduino na solução final, foi necessário programar os dispositivos Xbee para formação da rede Xbee. Esta programação se divide basicamente em três partes:

 Programação do Xbee Coordenador.

 Programação dos Xbee Roteadores.

174 Vale citar aqui que a programação destes dispositivos não se altera em absolutamente nada para uma aplicação em EEE ou aerador, pois o que estes dispositivos formarão é uma rede Zigbee de comunicação sem fio, sem se importar com quais periféricos estão conectados.

Nos próximos tópicos será apresentada esta programação individual de cada elemento.

5.3.1: Programação do Xbee Coordenador.

Sempre existe apenas um dispositivo Coordenador em uma rede Zigbee, e o utilizado na solução final presente neste projeto teve que ser parametrizado para o funcionamento correto do sistema de automação. Os parâmetros abaixo foram os alterados:

175 Justificando um pouco os parâmetros, o PAN ID (identificador da rede) utilizado foi o 2001 por arbitrariedade, pois todos os exemplos que criei anteriormente à solução final tinham este mesmo valor. O parâmetro SC (canais escaneados) fica setado com o maior valor possível, 1FFE (valor hexadecimal) que significa que todos os canais são escaneados à procura de um canal livre para inicialização da rede. O parâmetro SD é responsável por parametrizar o tempo de escaneamento comentado acima, e o valor 3 significa trinta segundos.

O parâmetro ZS indica qual perfil de protocolo Zigbee o dispositivo representa, e o numeral dois indica um perfil Zigbee-PRO, modelo de todos os módulos presentes neste trabalho. O parâmetro NJ indica por quanto tempo o Coordenador deve aceitar conexões de novos módulos querendo participar da rede e o valor FF indica que o dispositivo sempre permitirá que novos componentes sejam adicionados. Os parâmetros DH e DL servem para limitar a conexão do Coordenador com um único outro dispositivo através de seu endereço de 64 bits inseridos nestes parâmetros. Ao se utilizar os valores 0 e FFF, o programador indica que o Xbee Coordenador deve se comunicar com todos os dispositivos da rede, sem nenhuma restrição. O pacote criado pelo Arduino que identificará o destinatário, conforme visto no tópico referente a programação do Arduino.

O parâmetro NH indica quantas vezes a mesma mensagem pode passar por diferentes componentes (geralmente por causa de erros e eventuais retransmissões) até que a mesma seja descartada. Inserindo o valor 1E neste parâmetro para o projeto, fica explicitado que este número máximo é de 30 saltos. Como os tempos de transmissão dos módulos são extremamente baixos, 30 saltos levariam cerca de 2 segundos para serem realizados na distância máxima entre roteadores.

O parâmetro BH indica o alcance de transmissão que o aparelho deve atingir. Ao ser programado com o valor 0, o mesmo tem significado de sempre ter o alcance máximo. Este parâmetro é interessante para aplicações que necessitam de economia de energia, o que não é o caso deste trabalho.

Já o DD é o identificador de tipo de dispositivo, identificando versões diferentes de equipamentos. Este parâmetro é importante quando se deseja que alguns dispositivos da rede não se comuniquem entre si por possuírem versões diferentes de firmware, o que poderia causar conflitos. No caso deste projeto, como

176 todos os dispositivos possuem o mesmo firmware e são do mesmo modelo, todos os módulos receberão o valor 30000, um valor sem um propósito específico.

O parâmetro NT é responsável pela emissão de uma confirmação de entrada na rede quando dispositivos solicitam a mesma. O valor do parâmetro indica o tempo que o Coordenador tem para responder este pedido, sendo o valor 3C um padrão do fabricante que não foi alterado.

O NO por sua vez é responsável pelo gerenciamento de modificação do parâmetro DD. Programado com o valor 2, se o Coordenador descobre um dispositivo que deseja se juntar a rede e possui o mesmo firmware mas com o parâmetro DD diferente, o Coordenador tem a capacidade de inferir sobre o DD do dispositivo conectado, alterando o mesmo para o valor de seu DD.

O PL é o nível de energia do sistema, sendo que o valor 4 significa que o mesmo irá gastar toda a energia disponível, gerando o máximo de potência.

PM é uma espécie de força adicional, aumentando o ganho do equipamento em torno de 1dB com o sacrifício de alguns miliwatts de potência e é ativado quando o parâmetro se encontra em 1.

EE cuida da parte de criptografia das mensagens, porém neste projeto a mensagem em si não contém dados sigilosos e por isso não é utilizada, recebendo o valor 0.

EO é um parâmetro auxiliar do EE que deve também receber o valor 0 se não for utilizada a criptografia.

BD é a taxa de transmissão de dados e quando apresenta o valor 3 significa uma taxa de 9600 bps, a utilizada por todo este projeto. NB por sua vez indica a paridade e o parâmetro zero infere uma condição de sem paridade, a mesma de todos os outros dispositivos deste projeto. Por fim, SB é o bit de parada, sendo que o valor zero indica 1 bit de parada.

O firmware utilizado neste projeto foi o XBP-24 ZB, sendo que a Function Set do Coordenador foi a de Zigbee API Coordinator.

177

5.3.2: Programação do Xbee Roteador.

O Roteador é o elemento capaz de estender o alcance da rede Zigbee, sendo responsável por criar novas rotas de comunicação entre Coordenador e Dispositivos Finais. Neste projeto a configuração dos Roteadores foi a seguinte:

Tabela 13- Programação do Xbee Roteador.

A programação é muito semelhante ao Coordenador, sendo que no Roteador são indispensáveis os parâmetros DH e DL serem 0 e FFFF respectivamente, pois o Roteador deve servir para aumentar o alcance de uma mensagem, transmitindo a mesma para todos os dispositivos da rede, sendo que para tal estes parâmetros necessitam estes valores.

O parâmetro adicional na programação é o AR, parâmetro que assim que descobre uma rota específica para um determinado equipamento, este utilizará a mesma rota sempre. Ao se especificar o valor FF, esta descoberta é desativada. Isto é importante, pois o ambiente em que os roteadores estão instalados não é inerte,

178 podendo sofre alterações. Os milissegundos que possa vir a ser ganho com a rota fixa não vale o prejuízo possível de um pacote nunca chegar a seu destino.

O firmware utilizado para o Roteador foi o XBP-24 ZB, sendo que a Function Set foi a de Zigbee API Router.

5.3.3: Programação dos Xbee Dispositivos Finais.

Os Xbee Dispositivos Finais são os que ficarão na ponta final do sistema de automação, sendo responsáveis pela leitura dos sensores e conexão com os atuadores do sistema. A configuração do Xbee Dispositivo Final é a seguinte:

179 Alguns parâmetros de programação variam em relação aos anteriores e estes serão discutidos com mais detalhes. Por exemplo, o parâmetro DH e DL de um Dispositivo Final sempre serão 0, pois o objetivo final deste equipamento é a comunicação com o Coordenador, que sempre assume este endereço.

O parâmetro JN permite que o Dispositivo Final envie um frame com suas informações iniciais assim que entra na rede. Para este projeto este parâmetro foi desativado (valor 0), pois é redundante em relação ao parâmetro IR, como será demonstrado nos próximos parágrafos.

O parâmetro D0 altera o pino D0 do módulo Xbee para entrada analógica, o qual será conectado o sensor (valor 2), o parâmetro D1 altera o pino D1 do Xbee para saída digital, onde será inserido o circuito que irá alimentar o motor (valor 4) e o parâmetro D3 irá alterar o pino D3 do Xbee para entrada digital, a qual receberá informação de bomba ligada (valor 3).

Por fim, o parâmetro IR serve para enviar uma amostra das portas analógicas e digitais do Dispositivo Final a cada período de tempo especificado. No caso deste projeto, este período é de 100 milissegundos. É por este motivo que o parâmetro JN é supérfluo, pois o dispositivo sempre envia informações a cada período de tempo.

Explicadas as programações de IHM, Arduino e Xbee utilizados neste projeto, a parte lógica da solução está completa, faltando apenas apresentar a parte física, de construção do sistema e todas as soluções encontradas para tal feito. O próximo tópico começará a descascar este assunto.