Arduino - Visão Geral
A plataforma Arduino é uma ferramenta simples e fácil de usar mesmo para leigos em programação e eletrônica. Essas características tornaram ela uma plataforma muito utilizada para o desenvolvimento de prototipos. Por se tratar de uma plataforma aberta de hardware e software (open-hard e open-soft), qualquer um pode montar uma plataforma Arduino e criar protótipos com kits Arduino.
O Arduino é composto, entre outros elementos por: um microcontrolador, portas de entrada e saída digitais, portas para comunicação serial, portas de entrada analógicas e de saída PWM (Pulse-Width Modulation), uma conexão USB, um conector de tensão contínua e um botão de reset.
Microcontrolador (tipo ATmega) - gerencia os sinais das portas de entrada e saída e de comunicação. As funções de gerenciamento do microcontrolador são programáveis,
Nessas portas de entrada e saída é possível conectar botões, sensores, LEDs ou quaisquer outros dispositivos elétricos, tornando inúmeras as possibilidades de uso para essa plataforma.
Na topologia escolhida o Coordenador desempenha função fundamental na rede, ou seja, tem todo o controle da rede, assumindo um papel central e fazendo a comunicação direta com o APP e todos os dispositivos finais. Toda a informação transmitida tem que passar pelo Coordenador, por esse motivo seu código deve processar as mensagens das duas redes, Bluetooth e Zigbee.
A expansão das funcionalidades da plataforma Arduino é possível através da conexão de diversos shields e módulos de comunicação encontrados no mercado.
Para a conexão com o dispositivo Andróid, por exemplo, pode ser usado o shield bluetooth HC-06. Similar ao módulo da figura abaixo.
Para a comunicação entre o Servidor e os Controladores Finais foram escolhidos os módulos XBee.
XBee é a marca da Digi International para uma família de módulos de rádio comunicação. Esses rádios operam usando o protocolo ZigBee, utilizado para aplicações que exigem baixas taxas de transmissão de dados e baixo consumo de energia.
O programa para o Servidor é dividido em subsistemas. Cada um desses subsistemas e suas funcionalidades são mostrados na figura abaixo.