Introduction: EnvSmart

EnvSmart é um projeto desenvolvido para auxiliar pessoa com mobilidade reduzida em tarefas do dia a dia, como por exemplo no controle de iluminação e aparelhos eletrônicos tais como televisão, ar-condicionado e TV a Cabo. O gerenciamento desses equipamentos será feito pelo usuário através de uma interface simples em um smartphone com sistema operacional Android.

O projeto foi construído utilizando duas placas Arduino Nano que trocam informações entre si, onde uma placa funciona como o servidor web possuindo um endereço IP dentro da rede operante, já a segunda placa funciona como um cliente sendo a responsável por receber as informações do servidor e acionar cada aparelho específico.

O projeto tem o objetivo ajudar pessoas a executarem aquelas que são tarefas simples para qualquer pessoa, mas para uma pessoa com mobilidade reduzida acaba se tornando complexa. Assim, possibilita essas pessoas a terem uma imersão maior ao ambiente e se sentirem mais independentes.

Step 1: Sobre O EnvSmart

O EnvSmart surgiu como uma necessidade de fornecer maior independência às pessoas que têm mobilidade reduzida, a plataforma foi toda construída com o auxílio de uma pessoa cadeirante e que tem dificuldade em realizar algumas tarefas do dia, como o simples ato de alterar o canal da televisão ou simplesmente acionar uma lâmpada.

Acima é possível ver a tela do aplicativo de controle de todo o sistema do EnvSmart construído para sistemas Android, através dele podemos controlar o sistema de ar-condicionado, televisão, tv a cabo e toda iluminação, além de poder criar cenas prontas para o ambiente e facilitar ainda mais a gestão do ambiente.

A figura também mostra as duas placas Arduinos juntas com um módulo relé, um módulo NFC, um leitor de cartão SD e por fim o LED emissor. O roteador é o responsável por conectar o sistema ao Servidor Web e permitir o usuário ter uma porta de acesso para gerir o sistema.

Step 2: Desenvolvimento Do Aplicativo De Controle

A plataforma criada para controlar todo o sistema foi desenvolvida para sistemas de smartphones Android. Foram criados botões com um tamanho grande de forma que uma pessoa com mobilidade reduzida consiga utilizá-la sem dificuldades, além de a plataforma sem bem simples e intuitiva.

Para o desenvolvimento do aplicativo foi utilizado o software Android Studio que é um ambiente de desenvolvimento integrado para desenvolver para a plataforma Android.

Step 3: Equipamentos Utilizados E Funcionamento

Acima temos a imagem com os equipamentos que foram utilizados para o desenvolvimento do EnvSmart. A ideia na utilização de dois arduinos foi principalmente devido a limitação de memória de programa dessa plataforma, então foi separado em duas partes, onde o primeiro arduino funciona como um servidor recebendo as informações do usuário e transmitindo para o arduino cliente que fica responsável por gerenciar todos os dispositivos conectados a ele.

Com o EnvSmart o usuário irá controlar a iluminação do sistema de duas formas, a primeira é através de cartão NFC, onde o usuário cadeirante ao aproximar a cadeira de roda ao leitor NFC acionará as luzes específicas previamente escolhidas, e o mesmo irá ocorrer ao sair do ambiente que automaticamente irá apagar todas as lâmpadas. A segunda forma de controle é por meio do aplicativo de celular que contém algumas funções específicas para facilitar ainda mais a vida do usuário, por exemplo no controle de equipamentos como televisão, onde o comando final só será enviado ao final dos três dígitos do canal desejado, não tendo problema para o usuário o tempo de espera entre cada dígito.

O cartão SD é o responsável pelo armazenamento de todos os códigos de aparelhos que utilizam o infravermelho para comunicarem. O módulo de cartão SD é ligado ao arduino através do protocolo SPI que será explicado mais abaixo.

Step 4: Protocolos De Comunicação

Para a comunicação entre as duas placas Arduinos foi utilizado o protocolo UART com o auxílio da biblioteca SoftwareSerial que tem o objetivo de emular as funcionalidades do HardwareSerial. O protocolo UART utiliza o pino de transmissão (Tx - Pino D5) e o pino receptor (RX – Pino D4). Por ser uma comunicação assíncrona é definido um BaudRate que defina uma velocidade de recepção e envio, nesse caso definimos como 9600 bps.

Para a comunicação entre usuário e EnvSmart foi utilizada a arquitetura Ethernet que é uma Rede de Área Local (LAN) e utilizando assim o modelo TCP/IP implementado na biblioteca EtherCard onde é definida a porta de comunicação, o endereço IP e o MAC do dispositivo. Na camada de aplicação da pilha TCP/IP é construído o pacote de dados tanto para envio quanto para recebimento utilizando o HTTP através do método GET.

O protocolo de comunicação entre arduino e o módulo de Cartão SD é o SPI (Serial Peripheral Interface) que também é um protocolo de comunicação serial, porém, diferente do protocolo UART esse é implementado de forma síncrona. Os pinos para a comunicação entre dispositivos SPI são definidos como MOSI (Mestre para Escravo), MISO (Escravo para Mestre), SCK (Clock) responsável pelo sincronismo e CS seleciona o escravo ativo.

Step 5: Bibliotecas

Foram utilizadas algumas bibliotecas prontas para fazer o sistema funcionar. A biblioteca EtherCard (https://github.com/jcw/ethercard) é o driver para o chip ENC28J60 encontrado no ethernet shield, e onde é formada a pilha TCP/IP explicada anteriormente. A biblioteca SD (https://github.com/adafruit/SD) é a responsável por fazer a comunicação entre arduino e o cartão SD. A biblioteca IRRemote (https://github.com/z3t0/Arduino-IRremote) é a responsável por emitir o comando infravermelho. A biblioteca PN532 (https://github.com/adafruit/Adafruit-PN532) é quem faz a interação entre o módulo NFC e o arduino. Por fim, a biblioteca SoftwareSerial quq é quem emula a comunicação serial de forma a parecer uma HardwareSerial.

Step 6: Telas Da Comunicação Serial

Acima temos as imagens da tela da comunicação serial do servido e do cliente, nela podemos ver as informações de troca de mensagens entre os dois módulos microcontroladores, na primeira vemos o servidor enviando uma mensagem contendo o equipamento a ser acionado junto ao sinal que deseja que seja realizado. Na segunda imagem tem o cliente recebendo a informação enviada pelo servidor e respondendo com o valor do estado atual das lâmpadas e em seguida podemos ver essa informação no módulo servidor.

Podemos visualizar também quando o módulo cliente recebe o sinal para acionar o infravermelho, que imprimi em seguida a linha do cartão SD que contém o sinal em questão.

Step 7: Montagem Do EnvSmart

Acima estão todas as conexões realizadas na montagem do EnvSmart, onde se pode ver como são conectados os componentes através do protocolo SPI e I2C citados anteriormente.

O sistema é todo alimentado com uma fonte de 9V e 1A ligada nas conexões Vin e GND de cada arduino nano.