Site icon Embarcados – Sua fonte de informações sobre Sistemas Embarcados

Interruptor Wifi para Lâmpada – Aplicativo

Interruptor Wifi para Lâmpada - Instalação
Este post faz parte da série Interruptor Wifi para Lâmpada. Leia também os outros posts da série:

Dando continuidade no nosso projeto, apresentaremos hoje o aplicativo para celular. Para acompanhar o projeto desde o início, acompanhe a série de artigos aqui no Embarcados, onde apresentamos o passo a passo de cada etapa.

Como mencionado nos artigos anteriores, o aplicativo de celular foi desenvolvido para sistemas Android utilizando a ferramenta do MIT App Inventor, uma ferramenta criada para desenvolver aplicativos através de programação por Scratch, onde você arrasta os blocos e monta sua aplicação. Para conhecer mais sobre a ferramenta e saber como utilizar, acompanhe este artigo aqui no Embarcados.

Aplicativo e usabilidade

O aplicativo é totalmente aberto, assim como todo o projeto, portanto, o arquivo .apk e o arquivo .aia estão disponíveis no github. O arquivo .aia pode ser importado no APP Inventor e qualquer item do projeto pode ser modificado.

A usabilidade do app é simples, ao iniciar ele busca pelo arquivo .txt com o IP do módulo para fazer a conexão, caso não encontre ele iniciará desconectado. Quando desconectado, um campo permite inserir ou editar o IP do módulo. Esse IP deve ser o mesmo gravado no ESP8266-01, como demostrado na etapa do firmware desta série.

Com o app conectado ao módulo, um checkbox e dois botões são habilitados, os botões servem para ligar e desligar a lâmpada, já o checkbox serve para controlar a função Led. Essa função controla o led do hardware para funcionar de forma inversa à lâmpada. Caso tenha dúvida, leia trecho do artigo sobre o firmware onde essa função é criada.

Um campo abaixo da lâmpada indica o seu estado atual, assim como a imagem da lâmpada também se altera conforme ela é ligada ou desligada. Este mesmo campo pode indicar falha na conexão caso o aplicativo não receba retorno do hardware.

No App Inventor o aplicativo é separado em Interface (Designer), onde criamos a tela com a disposição dos componentes, e Lógica (Blocks), onde montamos os blocos que compõem a parte lógica do aplicativo.

Interface

A interface do nosso aplicativo contém alguns itens para interagir com o módulo:

Cada elemento tem uma configuração adequada para ter uma melhor aparência na tela. Essas configurações podem ser analisadas e modificadas no arquivo do projeto. Abaixo temos uma imagem da interface do aplicativo.

Figura 1 – Área de designer do App Inventor

Lógica

A lógica do aplicativo é dividida em algumas etapas, onde é feita a inicialização, conexão, controle, comunicação, filtro de mensagem e detecção de erros.

Na inicialização, algumas variáveis são criadas. O arquivo texto com o endereço IP do módulo é aberto, caso ele exista. Ao receber o texto do arquivo, o app preenche o endereço do módulo.

Figura 2 – Bloco de inicialização.

Na etapa de conexão, caso já tenha o IP do módulo, o app tenta fazer a conexão ao iniciar. Caso ainda não tenha, o endereço pode ser inserido na caixa de texto. Ao clicar em conectar, além de tentar fazer a conexão, o app cria o arquivo .txt com o endereço do módulo no celular para a próxima vez que o aplicativo for aberto. Caso a conexão já esteja estabelecida, é possível desconectar do módulo.

Figura 3 – Bloco de conexão.

Na etapa de controle, podemos ligar e desligar a lâmpada ou ligar e desligar a função Led, ao tentar fazer uma dessas ações, o bloco de comunicação é chamado.

Figura 4 – Blocos de controle.

Na comunicação, caso a conexão esteja estabelecida, é possível enviar comandos ao módulo ou fazer requisições do status atual. Ao receber alguma resposta do módulo, o bloco Web é chamado para tratar as informações e mostrar na tela.

Figura 5 – Bloco de recepção Web.

Um bloco adicional foi criado para filtrar a mensagem recebida e retornar apenas a informação que nos interessa. Este bloco é chamado pelo módulo Web sempre que uma informação é recebida.

Figura 6 – Bloco de filtro de mensagem.

Existe ainda um bloco adicional que é responsável por detectar falha na recepção e informar ao usuário.

Figura 7 – Bloco de detecção de erro.

Uma imagem completa com todos os blocos do aplicativo está disponível no repositório do projeto.

Conclusão

Com mais essa etapa agora temos o hardware funcionando, o módulo ESP-01 com o firmware gravado e o aplicativo está criado. A única coisa que falta é instalar e usar. No próximo artigo iremos demostrar como fazer a instalação do módulo de duas formas diferentes e fazer a apresentação do conjunto funcionando. Caso tenha alguma dúvida ou sugestão sobre o aplicativo deixe seu comentário. Até a próxima.

Outros artigos da série

<< Interruptor Wifi para Lâmpada – FirmwareInterruptor Wifi para Lâmpada – Instalação >>