Smart Home PUC

by dougllasdc.ddc in Circuits > Assistive Tech

366 Views, 0 Favorites, 0 Comments

Smart Home PUC

capa_iot.png

A automação residencial facilita a vida dos usuários e permite mais comodidade; pois usa tecnologias como a automação wireless, tablets, smartphones, evita quebradeiras e permite uma gama de possibilidades práticas e aperfeiçoadas para os usuários. Ela permite que as pessoas acompanhem e controlem todo o sistema em tempo real; e muitas vezes até longe de sua residência através de celulares. Ela integra diversos ambientes, resultando em um ambiente prático, confortável, agradável, valorizado e seguro; de acordo com o interesse do usuário.

Esse projeto visa criar um aplicativo que permite o controlar e monitorar uma casa através dos seus principais equipamentos, além de fornecer um modo de segurança que permite o usuário receber uma alerta de alguém em sua propriedade quando o modo viagem estiver habilitado.

DESENVOLVIMENTO DA CONFIGURAÇÃO DO BANCO DE DADOS

MicrosoftTeams-image (3).png

O aplicativo foi criado utilizando uma programação em blocos para automatizar um imóvel, com intuito de controlar e monitorar os dispositivos de uma casa através de um smartphone conectado via bluetooth.

Ao iniciar a programação do aplicativo, definiu-se um banco de dados para que este armazene as informações do último login de sucesso e o disponibilize para o usuário quando a conexão for estabelecida. Neste início verifica-se se o smartphone possui algum dispositivo pareado.

DESENVOLVIMENTO DA SEGURANÇA DO APLICATIVO

MicrosoftTeams-image (4).png

Para proteção do aplicativo foi criado um passo de autenticação com uma solicitação de login e senha. Somente terá acesso ao controle da casa quando o login e senha antes de inseridos corretamente.

DESENVOLVIMENTO DA CONFIGURAÇÃO DO BLUETOOTH

MicrosoftTeams-image (5).png

Para realizar uma conexão via bluetooth, deve-se realizar uma busca por dispositivos pareados que estão na lista de conexões; clicando no botão “abrir bluetooth” e posteriormente em “procurar”.

MicrosoftTeams-image (6).png

Após a seleção do dispositivo, deve-se clicar em conectar para estabelecer a conexão.

Caso o smartphone não esteja pareado ou a conexão com o dispositivo não seja concluída, aparecerão as mensagens “dispositivo não pareado” ou “dispositivo não conectou” respectivamente.

Após a conexão ser estabelecida, basta clicar no botão voltar para retornar para a tela de operações.

DESENVOLVIMENTO DAS VARIÁVEIS UTILIZADAS NO APLICATIVO

MicrosoftTeams-image (7).png

Para o armazenamento e tratamento das informações, providas da comunicação entre o aplicativo e o Arduino, foram criadas variáveis para guardarem estes valores.

DESENVOLVIMENTO DA COMUNICAÇÃO DO APLICATIVO COM O SMARTPHONE

MicrosoftTeams-image (8).png
MicrosoftTeams-image (9).png

Para que o aplicativo leia, constantemente, as informações providas pelo Arduino, foi desenvolvido uma rotina de atualizações desta leitura. Também é nesta rotina que o aplicativo envia as informações para o Arduino; tornando assim a comunicação intrínseca.

Nesta rotina, o aplicativo verifica se o dispositivo está conectado ou não; sendo que o resultado desta verificação é a alteração da cor do status de conexão, além da informação escrita de conectado ou desconectado.

Se houver dados providos pelo Arduino, o aplicativo os separa de forma a criar um vetor de 10 posições. Para certificar que os dados vieram em ordem correta, o aplicativo verifica se a informação da primeira posição do vetor é a palavra “Deus”. Se esta verificação for satisfatória, o aplicativo armazena as informações das posições sequenciais; sendo estas: status da temperatura, status da umidade, status do sensor de fumaça, status da luz da sala, status da luz do quarto, status do sensor de presença, status do modo viagem e status do portão. Além de armazenar estas informações, o aplicativo envia para o Arduino os comandos de controle da luz da sala, do quarto, do modo viagem e do portão.

DESENVOLVIMENTO DA ATUALIZAÇÃO DAS INFORMAÇÕES NO SMARTPHONE

MicrosoftTeams-image (10).png
MicrosoftTeams-image (11).png

Foi desenvolvido outra rotina para que as informações fossem atualizadas no aplicativo. Desta forma, o aplicativo verifica o status de cada variável lida anteriormente pela rotina de leituras e realiza a alteração na visualização do aplicativo, como por exemplo: o resultado da leitura da lâmpada da sala acesa, é a alteração da cor do botão de comando para verde.

Já para a informação de detecção de chuva ou fumaça, além de informar que o sensor foi atuado, a cor destas informações é alterada para vermelho; de forma de chamar a atenção do usuário pois, em uma atuação a cor vermelha, demostra atenção a uma ocorrência importante.

DESENVOLVIMENTO DOS BOTÕES DE COMANDO

MicrosoftTeams-image (12).png
MicrosoftTeams-image (34).png

Para cada botão criado, foi desenvolvida uma lógica que verifica o ultimo status da informação de operação daquele botão. Ao ser clicado, ele realizará a operação inversa e a disponibilizará para que seja escrita no Arduino.

Além dos comandos individuais das lâmpadas da casa, foi desenvolvido um botão para o controle geral das iluminações; sedo que, ao ser pressionado, este irá acender ou apagar todas as lâmpadas.

A lógica utilizada no portão eletrônico foi a mesma da iluminação, já que o portão tem os sentidos de rotações distintos para abertura e fechamento; ou seja, ao dar um comando no portão com ele fechado, o programa irá enviar a informação para abrir. Se o comando for dado com a informação de portão aberto, o aplicativo irá enviar a informação para fechar.

DESENVOLVIMENTO DO CONTROLE POR VOZ

MicrosoftTeams-image (12).png

Para a criação do controle por voz, foi utilizado o reconhecedor de voz da Google, sendo que, ao clicar sobre o botão “comando por voz” abrirá uma interface para que seja falada alguma palavra ou frase e o resultado deste reconhecimento irá alterar as variáveis de escrita no Arduino; semelhantemente aos botões de comando.

DESENVOLVIMENTO DO MODO VIAGEM

MicrosoftTeams-image (35).png

O modo viagem, ao ser ativado na tela inicial, realiza uma verificação se o sensor de presença, lido pelo Arduino, está ativado. Caso esteja ativado, aparecerá, em intervalos de tempos, uma mensagem na tela do aplicativo com a informação “Perigo!!! Alguém dentro da casa.

DESENVOLVIMENTO DA PROGRAMAÇÃO NO ARDUINO

MicrosoftTeams-image (16).png

Inicialmente temos a inclusão das bibliotecas para facilitar e simplificar o programa, pois as mesmas são uma coleção de subprogramas utilizados no desenvolvimento de software. Temos várias bibliotecas desenvolvidas por programadores para diversas funções. Para esse projeto apenas as bibliotecas string.h, DHT.h, Thread.h e ThreadController.h foram utilizadas e atenderam a necessidade do proposto.

A biblioteca string.h contém uma série de funções para manipular strings (letras, palavras e frases, ou seja, qualquer tipo de caracter). Essa biblioteca possui os seguintes comandos: comparar, concatenar, descobrir o tamanho da string.

A biblioteca DHT.h serve para leitura de sensores de umidade e temperatura.

As bibliotecas Thread.h e TreadController.h apresentam funções similares e servem basicamente para ajudar e manter organizado o uso de várias tarefas. Segue alguns comandos dessas bibliotecas: parar, aguardar, chamar, apontar, bloquear, desbloquear a execução de um comando, entre outros.

Após a inclusão das bibliotecas temos as definições dos pinos a serem utilizados no Arduino.

Na sequência temos a declaração do tipo das variáveis e o seu nome, respectivamente, utilizadas durante o programa.

MicrosoftTeams-image (17).png

Após a configuração inicial, temos a declaração dos sensores de temperatura e umidade, além das declarações de cada tarefa que será utilizada no programa.

Nesta parte também temos a rotina de leitura do aplicativo sendo realizada através do bluetooth. Da mesma forma que o aplicativo recebe as informações e as guarda em um vetor de 10 posições, o Arduino recebe as informações do aplicativo e as guarda em um vetor de 5 posições; sendo que cada posição é reservado para as informações de: comando luz da sala, comando luz do quarto, comando do modo viagem e comando do portão, respectivamente.

MicrosoftTeams-image (18).png

Para a rotina de escrita no aplicativo, o Arduino envia as informações seriadas. Pode-se observar a palavra DEUS sendo enviada antes dos demais dados para sincronismo entre o Arduino e aplicativo. Esse comando se fez necessário para evitar ou minimizar as incongruências das informações.

MicrosoftTeams-image (19).png
MicrosoftTeams-image (22).png

Após a leitura das informações lidas do aplicativo e separada nas posições do vetor, estas são introduzidas na rotina de tratamento de dados. Esta rotina verifica a informação de cada variável e o resultado desta verificação é o acionamento dos dispositivos da casa.

Quando há informação de que o modo viagem foi ativado no dispositivo, o Arduino aciona uma tarefa nomeada “viagem” e trata, separadamente, esta informação. Nesta rotina, o Arduino aciona, alternadamente, as luzes da casa com o intuito de simular que existem pessoas dentro dos cômodos.

Para a rotina de leitura dos sensores, é utilizado os comandos preestabelecidos pela biblioteca DHT, que permite ler as informações destes sensores e armazena-las nas variáveis.

MicrosoftTeams-image (23).png
MicrosoftTeams-image (24).png
MicrosoftTeams-image (25).png

Para a rotina de comando do portão, é verificado se a informação lida pelo aplicativo possui o comando de abrir ou fechar. Desta forma é acionado as saídas respectivas a estes comandos.

Na rotina de configurações de hardware, foram configurados os pinos do Arduino que serão utilizados como saídas e entradas; além das configurações de comunicação serial, comunicação com os sensores de umidade e temperatura e das rotinas utilizadas no programa.

DESENVOLVIMENTO DO PROTOTIPO NO PROTEUS

MicrosoftTeams-image (29).png
MicrosoftTeams-image (30).png
MicrosoftTeams-image (31).png

Para simular o controle da casa através do aplicativo, foi utilizado o software Proteus. Neste software foram utilizados o Arduino Uno, placa de comunicação bluetooth, sensor UHT para umidade e temperatura, sensor de presença, sensor de fumaça, sensor de chuva; além dos leds para simular as lâmpadas da casa e um driver transistorizado para simular a abertura e fechamento do portão.

Para estabelecer a comunicação entre o proteus e o bluetooth do computador, é necessário que as configurações de porta e taxa de comunicação estejam corretas.

SIMULAÇÃO DO APLICATIVO

MicrosoftTeams-image (26).png

Ao iniciar o aplicativo, a primeira tela será a de login. Nesta tela o usuário deverá digitar o login e a senha corretamente para ter acesso às demais tela do aplicativo. Caso seja digitado login ou senha incorretamente, uma mensagem aparecerá com a informação “Usuário ou senha incorretos. Tente novamente”.

MicrosoftTeams-image (27).png

Após serem digitados corretamente, é necessário estabelecer a comunicação com o Proteus. Para isso é necessário iniciar a aplicação do Proteus, certificar que o bluetooth do computador está ativado e pareado com o celular. Tendo certificado as ações anteriores, basta clicar em procurar, selecionar o nome do computador e, posteriormente, clicar no botão conectar.

Se a conexão for estabelecida, o aplicativo irá retornar a tela conforme mostra a imagem abaixo.

MicrosoftTeams-image (28).png

Quando o aplicativo estiver conectado com a aplicação do Proteus, a tela do aplicativo deverá ser semelhante a imagem em destaque. Nesta tela o usuário terá as informações de todos os sensores da casa e também dos status dos dispositivos. Também nesta tela o usuário poderá comandar os dispositivos existentes na casa, ao clicar sobre os botões disponíveis para cada equipamento.

MicrosoftTeams-image (32).png

Caso os sensores de fumaça ou de chuva sejam atuados, além da informação que estes forma atuados, a cor é alterada para vermelho; conforme foi informado na etapa de configuração das atualizações do aplicativo.

MicrosoftTeams-image (33).png

Se o modo viagem estiver acionado e o sensor de presença detectar alguém dentro da casa, a informação de segurança é disposta em qualquer tela do aplicativo, além de acionar o vibracall par alertar o usuário.

Vídeo De Simulação

Smart Home