Teoria do Radiuino

Existe uma teoria por trás do Radiuino que precisa ser compreendida para se desenvolver os mais variados tipos de aplicações. Um projeto utilizando o Radiuino engloba conceitos de Redes de Sensores sem Fio (RSSF), pilha de protocolos, modelamento em camadas bem definidas, etc. Para desenvolver um projeto com o Radiuino é necessário compreender seguintes partes:

Aplicação – Deve ser definido qual o papel da RSSF de maneira detalhada e o quais os problemas a mesma irá solucionar. É interessante fazer um desenho do sistema como um todo, identificando todas as suas partes. Observe a Figura 1.

 

Sistema Radiuino

Figura 1. Fluxo das informações pela RSSF.

 

O caso mais simples engloba um computador, uma base e um nó sensor. A base está conectada ao computador por meio de um cabo USB. Os nó sensores são “entidades” que monitoram grandezas (temperatura, luminosidade, umidade, qualidade do ar e do solo, pressão, qualidade do som e outros), atuam sobre dispositivos (bombas, motores, lâmpadas, entre outros). Todas as informações dos sensores são coletadas pela base, formando o conceito de gerência de rede e das informações.

 Na protocolo padrão do Radiuino, a base se comunica  com um nó sensor da rede por meio de topologia estrela, por meio de poolings. Isso quer dizer que a base interage individualmente com cada nó sensor da RSSF, não considerando a capacidade de possuir roteamento entre os nó sensores. Assim sendo, o protocolo padrão do Radiuino exige que o computador monte um pacote de 52 bytes e o envie para a base. Esta, por sua vez, recebe o pacote e transmite a todos os nó sensores presentes na rede. O endereço de destino está no próprio pacote, fazendo com que apenas um nó sensor da rede processe os dados recebidos. O pacote é recebido e retransmitido pelo nó sensor. A base recebe o novo pacote e disponibiliza as informações de interesse na tela do computador.

Resumidamente, de forma sistêmica, é isso o que acontece:

1 – Computador monta um pacote de 52 bytes e envia para a base;

2 – A base transmite o pacote;

3 – Um nó sensor da rede recebe o pacote e pergunta pra si mesmo: o pacote é para mim?

4 – Se a resposta for Não, então o pacote é descartado. Caso seja sim, o nó sensor processa o pacote e retransmite;

5 – A base recebe e disponibiliza as informações de interesse na tela do computador.

Observe atentamente ao pacote Radiuino.

Pacote Radiuino

Figura 2. Pacote Radiuino.

Dos 52 bytes, temos as seguintes divisões:

0-3 –> Bytes de cabeçalho da camada Física;

4-7 –> Bytes de cabeçalho da camada MAC;

8-11 –> Bytes de cabeçalho da camada de Rede;

12-15 –> Bytes de cabeçalho da camada de transporte;

16-33 –> Bytes destinados à transmissão de dados dos Conversores Analógico-Digitais (CAD, ou ADC em inglês);

34-51 –> Bytes destinados à transmissão de dados dos I/O’s

 

Hardware – Um projeto profissional exige um Hardware dedicado. Em cada projeto, é necessário especificar os transdutores e atuadores e em quais pinos físicos serão feitas as ligações elétricas. Gerar uma tabela com os pinos físicos que estão sendo utilizados do BE900/BE990 é fundamental na hora de programar os Firmwares, no qual deverá ser feita uma associação do pino físico com o lógico associado. Observe a figura abaixo. Trata-se do esquemático do DK101, placa de aplicação compatível com os rádios RFBee, BE900 e BE990. Nessa placa, foram conectados dois transdutores e um atuador.

 

Transdutores:

–> Sensor de temperatura MCP9700;

–> Sensor de luminosidade LDR;

 

Atuador:

–> Relé com bobina 12V;

Esquema elétrico DK101

 

Enviando um mail para projetos@radiuino.cc você pode solicitar este projeto.

Firmware – O firmware é, por definição, um software embarcado dentro do microcontrolador. Essa codificação prepara o microcontrolador para receber o pacote e processá-lo de forma a executar o que for determinado. Como dito anteriormente, o Firmware deve estar atrelado ao Hardware de forma a fazer a ligação dos pinos físicos do BE900 com os pinos lógicos utilizados. Chamamos isto de ligação física – lógica. As variáveis e pinos lógicos devem ser mapeados no pacote do Radiuino, que já estão previamente definidas. O esquema elétrico do DK101 é um perfeito exemplo para fortalecer esses conceitos.

Software – O Software é um programa que roda dentro do computador. Por exemplo, utilizamos os softwares RadiuinoTest e pacotes Python para montar o pacote de 52 bytes utilizado pelo Radiuino.

 

Exemplo com a placa de aplicação DK101

 

O pacote montado pelo computador é um pacote de controle, pois vai acionar alguma carga ou monitorar alguma grandeza. Deve conter, no pacote, o endereço do sensor destino, pois pode existir mais de um nó sensor na RSSF. Podemos fazer uma analogia com uma carta que vai ser colocada no correio que tem que ter o endereço de destino e o remetente. No pacote que será montado pelo computador, os endereços de destino e origem estão nos bytes:

Bytes 8 – endereço do nó sensor que deve receber o pacote

Byte 10 – endereço da base que está enviando.

No pacote é definido o que será executado pelo nó sensor. Tomaremos como exemplo uma aplicação utilizando o DK101, na qual deseja-se acionar o relé, que está conectado fisicamente no pino 8 do BE900/BE990. Observe a Figura 3. Para acionar o relé via software (podemos utilizar o python ou o RadiuinoTest), é necessário ajustar o byte 43 para 1. Logicamente, no firmware do nó sensor deve estar definida uma estrutura condicional, que verifica o estado do byte 43. Se estiver em nível 1, então o relé é acionado; caso contrário, o relé é desligado. A Figura 4 mostra o local em que isso pode ser visualizado no Firmware.

Tabela DK101

Figura 3. Mapeamento dos bytes no DK101.

Figura 4. Acionamento do relé na placa DK101.