Buscar

Domótica de baixo custo com ênfase em eficiência energética

Prévia do material em texto

Ministério da Educação
Secretaria de Educação Profissional e Tecnológica
Instituto Federal Catarinense
Câmpus Videira
ELITON TIAGO GUZI GUARNIERI
CORDLESS HOME - DOMÓTICA DE BAIXO CUSTO COM
ÊNFASE EM EFICIÊNCIA ENERGÉTICA
Videira
2016
ELITON TIAGO GUZI GUARNIERI
CORDLESS HOME - DOMÓTICA DE BAIXO CUSTO COM
ÊNFASE EM EFICIÊNCIA ENERGÉTICA
Trabalho de Conclusão de Curso apresentado ao
Curso de graduação em Ciência da Computa-
ção do Instituto Federal de Educação Ciência e
Tecnologia Catarinense – Câmpus Videira para
obtenção do título de bacharel em Ciência da
Computação.
Orientador(a):Angelita Rettore de Araujo Za-
nella, Msc.
Videira
2016
AGRADECIMENTOS
A Deus, por estar sempre presente e permitir que pela fé se concretize mais essa reali-
zação.
Agradeço aos professores pela dedicação de todos estes anos, eles que são os principais
responsáveis pela nossa formação profissional, o que nos norteará por toda a nossa vida.
Agradeço em especial ao professor Marcelo Massocco Cendron coordenador do curso
e à professora Angelita Rettore de Araujo Zanella orientadora, que se demonstrou acessível e
solícita durante toda a elaboração deste projeto e que foi de fundamental importância para a
conclusão do mesmo. Ao laboratorista e amigo Tiago Possato pelo auxílio no desenvolvimento
do protótipo. E também aos colegas Jeferson, Leonardo, Marlene, Ricardo, Silmar e Taynara,
pela convivência e amizade nestes anos de muito aprendizado.
Outro agradecimento especial a minha esposa, Patricia Rampon, que esteve sempre ao
meu lado em toda esta caminhada, me auxiliando e compreendendo nos momentos mais árduos.
A minha família e amigos que, com muito carinho, deram o apoio necessário e souberam
entender as minhas ausências durante o desenvolvimento deste projeto.
A todos que de uma forma ou outra, colaboraram para que este trabalho fosse realizado.
Se valorizarmos a busca pelo conhecimento, devemos
ser livres para ir aonde quer que esta busca nos
leve. A mente livre não é um cachorro latindo,
para estar presa a uma corrente de dez pés.
(Adlai E. Stevenson Jr., discurso na Universidade
de Wisconsin, Madison, 8 de outubro de 1952)
RESUMO
A Internet das Coisas é um conceito, que se refere à possibilidade de interligar os equipamentos
do cotidiano com a Internet ou uma base de dados através do uso de sensores, automatizando
tudo que for possível. Aplicando este conceito nas residências, obtém-se benefícios como eco-
nomia energética, além de conforto e aumento da segurança. O sistema de automação residen-
cial Cordless Home, atua nos dispositivos do ambiente de forma autônoma, com o objetivo de
melhorar a eficiência energética, evitando os desperdícios de consumo. Esta aplicação utiliza
meios pervasivos e autônomos, com um sistema de agente inteligente que, ao realizar leituras
do ambiente, o controla conforme dados salvos previamente. O método de controle é realizado
através de técnicas de rede neural Perceptron, que se modelam conforme a interação do usuário.
A análise experimental é feita através de um protótipo instalado em um cômodo, que controla
uma lâmpada e que possui sensores de movimento e luminosidade. Com a ação do agente in-
teligente, o sistema é capaz de ligar e desligar a lâmpada, adaptando-se ao ambiente e trazendo
comodidade ao usuário, além de evitar o desperdício de energia.
Palavras-chave: Internet das Coisas. Domótica. Eficiência energética. Baixo custo. Agente In-
teligente. Perceptron.
ABSTRACT
The Internet of Things is a concept which refers to the possibility of interconnecting everyday
equipments to the the global network by using sensors, automating everything that is possible.
Applying this concept to our homes, we may obtain some benefits like energy savings, more
comfort and extra security. Cordless Home, the home automating system, autonomously acts
upon environment devices, trying to improve energy efficiency and reducing unwanted con-
sumption waste. This application is an intelligent agent that is able to reason about both the
current and previous environment readings and then, using those readings, make decisions in a
pervasive and autonomous way. The reasoning is all done by a single artificial neural network
neuron, a Perceptron, which is trained by the user interactions with the system. The experi-
mental analysis is made by using a prototype installed in a room, which has movement and
luminosity sensors and can turn a lamp on or off. With the intelligent agent’s actions, we can
achieve a reduction in the consumption waste and conveniently automate the task of controlling
the lamp’s state, adapting it to the environment.
Key-words: Internet of Things. Home Automation. Energy efficiency. Low cost. Intelligent
Agent. Perceptron.
LISTA DE ILUSTRAÇÕES
Figura 1 – Estimativa do número de coisas conectadas a Internet, por categoria . . . . . 16
Figura 2 – Termostato Nest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figura 3 – Etapas de um programa de uso racional de energia . . . . . . . . . . . . . . 19
Figura 4 – Agentes interagem com ambientes por meio de sensores e atuadores . . . . 20
Figura 5 – Perceptron de única camada . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figura 6 – Amazon Echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 7 – Representação do modelo proposto por Cavalli, Heinen e Ruaro (2014) . . . 24
Figura 8 – Visão frontal do Arduino Nano . . . . . . . . . . . . . . . . . . . . . . . . 25
Figura 9 – Visão do módulo ESP8266 ESP-201 . . . . . . . . . . . . . . . . . . . . . 26
Figura 10 – Cordless Home - casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . 28
Figura 11 – Arquitetura do Agente de controle de um ambiente . . . . . . . . . . . . . . 30
Figura 12 – Perceptron controle de um ambiente . . . . . . . . . . . . . . . . . . . . . 31
Gráfico 1 – Perceptron controle de um ambiente . . . . . . . . . . . . . . . . . . . . . 31
Figura 13 – Diagrama de sequência do agente . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 14 – Esquema de ligação do primeiro teste . . . . . . . . . . . . . . . . . . . . . 35
Figura 15 – Protoboard montada para o primeiro teste . . . . . . . . . . . . . . . . . . 35
Figura 16 – Resultado Perceptron no primeiro teste . . . . . . . . . . . . . . . . . . . . 37
Figura 17 – Alterações da Protoboard para o segundo teste . . . . . . . . . . . . . . . . 43
Figura 18 – Projeto da placa de circuito do agente . . . . . . . . . . . . . . . . . . . . . 44
Figura 19 – Placa de circuito concluída do Agente . . . . . . . . . . . . . . . . . . . . 44
Figura 20 – Projeto da placa de circuito de controle da lâmpada . . . . . . . . . . . . . 45
Figura 21 – Placa de circuito concluída para controle da lâmpadas . . . . . . . . . . . . 46
Figura 22 – Projeto da placa de circuito de controle dos sensores . . . . . . . . . . . . . 46
Figura 23 – Placa de circuito concluída para controle dos sensores . . . . . . . . . . . . 47
Gráfico 2 – Valores dos pesos do Perceptron, no dia 19 de outubro de 2016 . . . . . . . 48
Gráfico 3 – Leitura sensor Luminosidade, no dia 19 de outubro de 2016 (%) . . . . . . 48
Gráfico 4 – Leitura sensor movimento, no dia 19 de outubro de 2016 (%) . . . . . . . . 49
Gráfico 5 – Valor da luz desejada, no dia 15 de outubro de 2016 (%) . . . . . . . . . . 49
Gráfico 6 – Valor da luz desejada corrigido, no dia 19 de outubro de 2016 (%) . . . . . 50
Gráfico 7 – Valores do retardo do desligamento, do dia 16 ao dia 22 de outubro . . . . 50
Gráfico 8 – Variável que habilita o Perceptron a ligar, do dia 16 ao dia 22 de outubro . 51
LISTA DE ALGORITMOS
Algoritmo 1 – Função Perceptron em C++ . . . . . . . . . . . . . . . . . . . . . . . . 32
Algoritmo 2 – Função Perceptron para verificação deerro em C++ . . . . . . . . . . . 32
Algoritmo 3 – Função Perceptron para correção de erro em C++ . . . . . . . . . . . . 33
Algoritmo 4 – Primeiro teste do Perceptron . . . . . . . . . . . . . . . . . . . . . . . 36
Algoritmo 5 – Função que inicia o Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . 38
Algoritmo 6 – Funções para controle dos sensores . . . . . . . . . . . . . . . . . . . . 39
Algoritmo 7 – Funções para leitura e gravação na EEPROM . . . . . . . . . . . . . . . 40
Algoritmo 8 – Funções para leitura e gravação na EEPROM . . . . . . . . . . . . . . . 40
Algoritmo 9 – Funções para ajuste dos parâmetros em horas de pouco uso . . . . . . . 41
Algoritmo 10 – Inicia comunicação com servidor NTP . . . . . . . . . . . . . . . . . . 42
Algoritmo 11 – Função para atualização da hora . . . . . . . . . . . . . . . . . . . . . 42
LISTA DE ABREVIATURAS E SIGLAS
ANEEL Agência Nacional de Energia Elétrica
AURESIDE Associação Brasileira de Automação Residencial
CES Consumer Electronics Show (Exposição Internacional de Eletrônicos de
Consumo)
EEPROM Electrically-Erasable Programmable Read-Only Memory (Memória somente
para leitura eletricamente apagável)
IDE Integrated Development Environment (Ambiente de Desenvolvimento Inte-
grado)
IEA International Energy Agency (Agência Internacional de Energia)
IFC Instituto Federal Catarinense
IA Inteligência Artificial
IoT Internet of Things (Internet das Coisas)
NTP Network Time Protocol (Protocolo de Tempo da Internet)
RTC Real Time Clock (Relógio de Tempo Real)
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1 PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.1 Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2 Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5 HIPÓTESES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 REVISÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1 DOMÓTICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.1 Eficiência energética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2 Baixo custo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.3 Agentes inteligentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.3.1 Redes Neurais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . 22
2.3 HARDWARES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 CORDLESS HOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1 REQUISITOS DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 ARQUITETURA DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 PERCEPTRON DE CAMADA ÚNICA . . . . . . . . . . . . . . . . . . . . 30
4 TESTES E RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1 DESENVOLVIMENTO DO PRIMEIRO PROTÓTIPO . . . . . . . . . . . . 34
4.2 DESENVOLVIMENTO DO SEGUNDO PROTÓTIPO . . . . . . . . . . . . 38
4.3 DESENVOLVIMENTO DO PROTÓTIPO EM PLACA DE CIRCUITO . . . 43
4.3.1 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4 DIFICULDADES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4.1 Aplicação do Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4.2 Utilização do ESP8266 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.3 Desenvolvimento protótipo . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.1 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
APÊNDICE A ALGORITMOS DO CORDLESS HOME . . . . . . . . . . 58
A.1 MAIN.INO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
A.2 CONECTAWIFI.INO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
A.3 CONTROLALAMPADA.INO . . . . . . . . . . . . . . . . . . . . . . . . . 59
A.4 CONTROLAMEMORIA.INO . . . . . . . . . . . . . . . . . . . . . . . . . 61
A.5 CONTROLEPERCEPTRON.INO . . . . . . . . . . . . . . . . . . . . . . . 62
A.6 HORANTP.INO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
A.7 LEITURASENSORES.INO . . . . . . . . . . . . . . . . . . . . . . . . . . 67
12
1 INTRODUÇÃO
A Internet das Coisas (Internet of Things, IoT) é um conceito e um paradigma perva-
sivo no ambiente, de uma variedade de coisas/objetos que, através de conexões com ou sem fio,
são capazes de interagir uns com os outros, cooperando com outras coisas/objetos, para criar
novas aplicações/serviços e alcançar objetivos comuns (VERMESAN; FRIESS, 2013). Neste
contexto, ela tem por finalidade interligar todos os equipamentos eletrônicos usados no dia a dia
com a Internet ou com uma base de dados, através do uso de uma rede de sensores (AFONSO;
PEREIRA; PEREIRA, 2015). Isto já é uma realidade e está presente cada vez mais no cotidi-
ano das pessoas, atingindo uma expansão menos visual e mais incorporada aos nossos hábitos
(SANTAELLA et al., 2013).
A principal força da Internet das Coisas é o alto impacto que ela terá sobre o dia a dia e
sobre o comportamento dos usuários potenciais (ATZORI; IERA; MORABITO, 2010). Visando
essa evolução, hoje o foco principal do mundo tecnológico é automatizar tudo o que for possível,
gerando um maior conforto e segurança para as pessoas. Para isso, a automação residencial,
também chamada de domótica, está sendo cada vez mais adotada, trazendo benefícios como a
economia de energia elétrica e o aumento da segurança (AHMED, 2010).
O conceito de domótica, introduzido na França nos anos 1980, refere-se à in-
tegração de diversas tecnologias no ambiente doméstico mediante o uso si-
multâneo de eletricidade,eletrônica, informática e telecomunicações, buscando
como resultado melhorar aspectos como segurança, conforto, flexibilidade de
uso dos espaços, e, consequentemente, a qualidade de vida de seus moradores
(FERREIRA, 2010, p. 1).
Segundo Agrawal e Vieira (2013), as residências estão repletas de aparelhos eletrônicos,
como fornos de micro-ondas, geladeiras, aquecedores, aparelhos de ar condicionado, ventilado-
res e luzes. Os atuadores e sensores podem ser instalados nestes dispositivos, a fim de utilizar a
energia de forma mais eficiente e para adicionar mais conforto na vida. Estes sensores podem
medir a temperatura exterior e até mesmo determinar os ocupantes de um quarto e, assim, con-
trolar a quantidade de aquecimento, refrigeração e fluxo de luz. Todas essas informações podem
ajudar a minimizar o custo e aumentar a economia de energia em residências.
Este trabalho trata de um sistema de domótica denominado Cordless Home, é um sis-
tema autônomo de controle da residência com foco em reduzir os desperdícios energéticos e está
estruturado em cinco capítulos, o segundo capítulo realiza uma revisão bibliográfica da Internet
das Coisas, aplicada nas residências, como também uma discussão de trabalhos que foram pu-
13
blicados recentemente, na área de domótica, focando em suas formas de aplicação. O terceiro
capítulo, contém os requisitos da arquitetura, para atingir os objetivos levantados, como tam-
bém mostra o que o Cordless Home propõe. Em seguida, no quarto capítulo, são apresentadosos protótipos desenvolvidos para a comprovação do que foi abordado nos capítulos anteriores,
demonstrando o passo a passo da construção deles. Ainda nesse capítulo, serão descritos os
resultados obtidos, através da coleta de dados de um ambiente em um determinado espaço de
tempo. O último capítulo, expressa o que foi alcançado e tudo que ainda pode ser realizado em
trabalhos futuros.
1.1 PROBLEMA
Com o crescente aumento da domótica, poder levar automação até as residências de
pequeno e médio porte e, através dela, reduzir desperdícios energéticos é muito importante.
Além do fator ambiental, representa uma redução nos custos com energia. Para tal, é preciso
gerar um sistema que controle os dispositivos dos lares das pessoas, obtendo melhor aproveita-
mento energético e que o mesmo não se torne inviável, seja por alto custo ou por dificuldade de
instalação.
1.2 OBJETIVOS
1.2.1 Geral
Estudar formas econômicas e propor um conjunto de técnicas de automação residencial
que, através da análise de sensores e de informações recebidas pelo morador da residência,
possam melhorar a eficiência energética de forma autônoma, evitando desperdícios de consumo.
1.2.2 Específicos
∙ Listar possíveis pontos de controle energético, presentes na maioria das residências;
∙ Controlar os pontos de forma autônoma através de sensores e preferências do usuário,
diferenciado para cada hora do dia;
∙ Alterar os dados de controle se utilizando de técnicas de inteligência artificial;
∙ Implementar um protótipo para avaliar as técnicas selecionadas;
14
1.3 JUSTIFICATIVA
Algumas pessoas ainda não conseguem assimilar a tecnologia agindo em seu ambiente
doméstico ou acreditam que se trata de um luxo desnecessário, por entenderem que automação
residencial trata-se apenas de fechar a porta, acender a luz, abrir as persianas da sala, ligar e
desligar o micro-ondas, o condicionador de ar, o DVD ou o aparelho de som. Porém, a domótica
também visa fornecer uma modernização e facilitação de tarefas, adequando as residências para
se alcançar um aumento na segurança, no bem estar, como também reduzir o desperdício de
água e energia elétrica. Por se tratar de um assunto recente, a bibliografia sobre o assunto é ainda
escassa, sendo assim essencial o desenvolvimento de estudos nessa área, tanto para contribuição
acadêmica como também social (FERREIRA, 2010).
Com as mudanças climáticas atuais, a escassez de água e energia elétrica, criou-se uma
nova megatendência de urgência para a racionalização do uso de recursos. Para se obter isto,
sem grandes restrições ou sacrifícios, a automação residencial vem contribuir para uma maior
eficiência energética e aumento do conforto (FOLLONI; BLATT, 2015). Com o objetivo de me-
lhorar a eficiência energética em qualquer residência, o custo para a implantação neste trabalho
não pode ser um empecilho e o retorno do investimento tem de ser o mais breve possível. Di-
ante disto foram buscadas novas tecnologias, que possibilitem a redução dos custos, facilitando
assim a expansão dessa tecnologia.
1.4 METODOLOGIA
Este trabalho foi desenvolvido em 5 etapas. Na primeira realizou-se a revisão biblio-
gráfica sobre novas tecnologias que estão sendo aplicadas no ambiente de IoT e de domótica,
tentando encontrar a forma mais simples e barata para realizar a análise e controle do ambiente,
como também demonstrar um comparativo entre diversos trabalhos relacionados à proposta
levantada.
Na sequência, determinaram-se todos os requisitos necessários e arquitetura do sistema,
para o controle autônomo da residência, levando em consideração as técnicas abordadas na
etapa anterior. Além disso, foi definida a arquitetura do protótipo e as técnicas utilizadas para o
desenvolvimento dos protótipos.
Na terceira etapa foram construídos os protótipos de sensores e atuadores necessários,
como também foram desenvolvidos os algoritmos utilizando o método escolhido na etapa ante-
rior. Em seguida a etapa de testes, na qual foi instalado o protótipo em uma região da residência
15
para assim conseguir obter resultados de seu aprendizado e funcionamento em um ambiente
real.
Na última etapa foi realizada uma análise geral do sistema, demostrando os resultados
e dificuldades que foram obtidos. Além disso, foram propostas melhorias e ampliações que
podem ser incluídas ao sistema em trabalhos futuros.
1.5 HIPÓTESES
Espera-se que este sistema possa chegar até as residências de pequeno e médio porte,
levando um melhor aproveitamento do consumo energético. E que ele também seja capaz de
gerir um ambiente, através de sensores, desligando os dispositivos que nele estejam conectados
e que realize as interações de forma autônoma, seguindo as preferências do usuário. Outra
hipótese importante é a viabilidade de implantação do sistema. Ele deve ser instalado sem alterar
a instalação elétrica existente na residência, além de poder ser instalado por qualquer pessoa e
em quantos ambientes desejar.
16
2 REVISÃO BIBLIOGRÁFICA
Segundo Perera et al. (2013), a Internet das Coisas é um paradigma que rapidamente está
ganhando terreno no cenário da tecnologia de comunicação sem fio. Com a ideia básica da pre-
sença generalizada de uma variedade de coisas ou objetos, com sensores, atuadores, dispositivos
com identificação por radiofrequência, entre outros, que através de esquemas de endereçamento
único, poderão ser capazes de interagir uns com os outros, cooperando, para assim atingir obje-
tivos comuns.
O avanço da Internet das Coisas está acontecendo, cada dia mais objetos/coisas estão
sendo conectados à rede mundial de computadores. Uma pesquisa realizada em novembro de
2014 pela indústria Gartner, verificou a existência de quase 3,8 bilhões de objetos/coisas co-
nectados naquele ano e previa um aumento de 30% ao ano, chegando ao seu objetivo principal
de 25 bilhões de objetos/coisas conectados em 2020 (RIVERA; MEULEN, 2014). Os dados da
pesquisa podem ser verificados na Figura 1.
Figura 1 – Estimativa do número de coisas conectadas a Internet, por categoria
Fonte: (RICHTER, 2014)
Rivera e Meulen (2014) afirmam que esta súbita expansão irá acarretar num impacto
econômico da Internet das Coisas. Consumidores, empresas, autoridades, hospitais e muitas
17
outras entidades terão que encontrar novas maneiras de explorar a tecnologia conseguindo reti-
rar dela todos os seus benefícios para compensar o investimento, pois estima-se que será gerada
uma despesa total de serviços em torno de 263 bilhões de dólares em 2020.
Um exemplo recente disso foi a compra pela Google, por 3,2 bilhões de dólares, da
empresa Nest, responsável por uma vasta gama de produtos de consumo, tais como termosta-
tos inteligentes (Figura 2). Estes termostatos são projetos para iluminação pública inteligente
que podem ajudar os governos a economizar energia. O aumento de conectividade irá tornar
smartphones ainda mais inteligentes, transformando-os em um controle remoto para tudo, po-
dendo controlar desde refrigeradores até lâmpadas e máquinas de lavar (RICHTER, 2014).
Figura 2 – Termostato Nest
Fonte: https://nest.com/thermostat/meet-nest-thermostat/
2.1 DOMÓTICA
À medida que novas tecnologias estão surgindo, as pessoas estão mais ansiosas para
aplicá-las em suas residências, a fim de torná-las mais confortáveis e seguras (JAHROMI; RA-
JABZADEH; MANASHTY, 2011). Uma pesquisa realizada pela Coldwell Banker Real (2016),
antes da realização da CES1 2016, entrevistou 4 mil norte-americanos e descobriu que 45% de
todos entrevistados querem adotar algum tipo de tecnologia em sua própria casa e planejam
investir nisso ainda em 2016. Esta pesquisa ainda descobriu que mais da metade (54%) dos pro-
prietários de imóveis iria comprar ou instalar produtos de domótica se eles estivessemvendendo
a sua casa e isto fosse tornar a venda mais rápida. Deste grupo, 65% pagaria 1,5 mil dólares por
estas mudanças.
1 Consumer Electronics Show (Exposição Internacional de Eletrônicos de Consumo), é uma feira profissional e
acontece anualmente no mês de janeiro em Las Vegas.
18
Há pouco tempo atrás, somente uma faixa privilegiada da população poderia implantar
algum recurso de automação residencial, pois os custos dessas alterações chegavam a 100 mil
dólares. Porém, estas soluções estão se tornando mais acessíveis graças às empresas Apple,
Google, Comcast , AT & T, Honeywell e ADT que se uniram na busca da popularização da
domótica (SOUTHERLAND, 2015).
Para ajudar na popularização do assunto existem, em alguns países, órgãos e instituições
que estudam este assunto. No Brasil, esta associação é representada pela Associação Brasileira
de Automação Residencial (AURESIDE), que desde o ano de 2000, aproxima profissionais,
empresas e usuários, para levá-los ao que há de mais moderno em tecnologia de automação
(TEZA, 2002). Esta associação se utiliza de seu portal na Internet2 para divulgar suas ações,
como congressos, encontros, feiras, cursos, palestras, entre outros. Além do portal a AURE-
SIDE possui um repositório3, onde mantém artigos próprios ou traduzidos, de acesso público,
contendo informações atualizadas sobre domótica e projeções de novas tendências e tecnolo-
gias.
2.1.1 Eficiência energética
A energia elétrica trouxe um estilo de vida mais confortável. Vários eletrodomésticos e
eletrônicos se tornaram indispensáveis nas residências e à medida que sociedade se desenvolve,
buscam-se novas tecnologias e formas de obter mais conforto, com isso o consumo energético
aumenta. Para evitar isso deve-se buscar formas mais eficientes de consumo, como apagar a
luz ao deixar um cômodo da casa. Este é o cenário atual dos países desenvolvidos, que buscam
um melhor aproveitamento da energia gerada para continuarem competitivos. Por exemplo,
a Europa pretende, até 2020, reduzir o consumo energético primário em 20%, aumentar os
recursos renováveis também em 20% e a incorporar 20% em biocombustíveis nos carburantes
(ADENE, 2013).
No Brasil, a Agência Nacional de Energia Elétrica (ANEEL) é o órgão responsável por
realizar investimentos em pesquisa e desenvolvimento da eficiência energética. A Resolução no
242, editada pela ANEEL, em 24 de julho de 1988, prevê a obrigação de investimento anual,
pelas concessionárias, de 1% da receita operacional do ano anterior, em ações envolvendo efi-
ciência energética, prevendo aplicação de multa para as que não a cumprirem (VIANA et al.,
2012). O aumento da eficiência energética foi colocado como preferencial, sendo uma das for-
2 O portal da AURESIDE está hospedado no endereço http://www.aureside.org.br
3 O repositório pode ser acessado através do endereço http://aureside.blogspot.com.br
19
mas mais econômicas e ambientalmente favorável (MINISTÉRIO DE MINAS E ENERGIA,
2011).
De acordo com Viana et al. (2012), para se obter uma utilização eficiente de energia,
temos que aplicar os conceitos da engenharia e análise econômica, que passa necessariamente
por uma mínima estrutura gerencial (Figura 3), podendo ser aplicada em qualquer ambiente.
Seguindo essa estrutura podemos obter as respostas para as seguintes questões:
∙ Quanta energia está sendo consumida?
∙ Quem está consumindo energia?
∙ Como se está consumindo energia, com qual eficiência?
Figura 3 – Etapas de um programa de uso racional de energia
Fonte: (VIANA et al., 2012, p. 59)
2.1.2 Baixo custo
A decisão de investimento em domótica, com alternativas e projetos de economia e uso
eficiente de energia, deve necessariamente passar por uma análise que verifica a possibilidade de
implantação do projeto. Essa viabilidade somente é conseguida quando os custos de automação
são menores que os benefícios que ela fornece. A forma mais difundida da análise de viabilidade
é o critério do tempo de retorno de capital, ou payback, devido à sua facilidade de aplicação.
Nessa forma é definido um tempo em que o valor gasto com o projeto deve se igualar aos
benefícios (VIANA et al., 2012). No projeto proposto o benefício desejado é a redução do
consumo de energia elétrica.
20
2.1.3 Agentes inteligentes
Para obter a eficiência energética desejada, sem interferir no conforto que já se possui
na residência, o sistema tem que possuir características de um agente inteligente. "Um agente
é tudo o que pode ser considerado capaz de perceber seu ambiente por meio de sensores e de
agir sobre esse ambiente por intermédio de atuadores"(RUSSELL; NOVIG, 2013, p. 62), essa
ideia é ilustrada na Figura 4. Além disso uma casa inteligente também é composta por uma
computação distribuída e móvel, que permita controlar iluminação, ventilação, temperatura,
multimídia, segurança e saúde (SUN et al., 2013).
Figura 4 – Agentes interagem com ambientes por meio de sensores e atuadores
Fonte: (RUSSELL; NOVIG, 2013, p. 63)
O agente é uma ferramenta capaz de realizar alguma tarefa em nome de um ser humano.
Para ser considerado inteligente ele deve possuir conhecimento adicional de domínio e saber
lidar com situações inesperadas, alterando estes parâmetros de domínio (COPPIN, 2012). Isso
torna fundamental o reconhecimento de padrões e captura de dados, relacionando-as com as
ações dos usuários, fazendo isso de forma que não se perceba o processo de captura de da-
dos, interagindo de forma natural com os seus aparelhos do ambiente (HENRÍQUEZ; PALMA,
2011).
2.1.3.1 Redes Neurais
Reagir a tantas mudanças necessita de um sistema que seja similar a um ser humano
e simular o cérebro é o objetivo de muitos trabalhos em IA (inteligência artificial). De forma
21
simples o cérebro humano funciona com neurônios ativando ou inibindo, uns aos outros, isso
ocorre dependendo das entradas que ele recebe (ROSA, 2011).
Com a premissa de imitar esse comportamento Flank Rosenblatt em 1958 propôs o Per-
ceptron, um neurônio simples usado para classificar suas entradas em uma de duas categorias,
podendo ter qualquer número de entrada (CORNELL UNIVERSITY, 1971). Os Perceptron po-
dem ser usados para realizar classificação de imagens ou de tarefas de reconhecimento simples
(COPPIN, 2012).
O Perceptron consiste em uma camada de entrada, outra interna e mais uma de saída,
visível na Figura 5. Ela possui entradas de X1 à Xm, cada qual com o seu peso próprio. O Per-
ceptron possui além das entradas uma variável de ajuste, chamada de bias, este possui sempre
valor positivo, além de um peso próprio. Os pesos são determinados através de um algoritmo
especializado, sendo eles ajustados verificando os dados de entrada e saída conhecidos, também
chamado de treinamento da rede. Ao final de um período de treinamento a rede passa a ser capaz
de estimar variáveis linearmente separáveis (MARTINS-FILHO; MOL; ROCHA, 2005). Com
todas as entradas relacionadas com seus pesos, é realizada a função aditiva, onde os valores são
somados, passando assim pela função de ativação, que compara o valor da soma com um valor
de limite, se maior que este valor a saída será verdadeira, se não será falsa.
Figura 5 – Perceptron de única camada
Fonte: (MARTINS-FILHO; MOL; ROCHA, 2005)
Matematicamente falando, se possui 𝑚 entradas com 𝑚 pesos associados nas linhas de
entrada, então a unidade calcula a função de soma ponderada, dada por:
22
𝑌𝑘 =
𝑚∑︁
𝑗=1
𝑊𝑘𝑗𝑋𝑗
Onde 𝑊𝑖𝑗 refere-se ao peso da entrada naquela verificação e 𝑌𝑘 o resultado da função.
Esse resultado passa na função de ativação, que realiza um processo de comparação de limites,
para caso o valor seja maior que o limiar a saída se torne verdadeira, se não a saída será falsa
(BHATTACHARYYA; MAULIK, 2013).
Outrarede neural, introduzida em 1960, por Bernard Widrow e Marcian E. Hoff, foi o
ADALINE (ADAptive LInear NEuron), com um aprendizado adaptativo, rápido e preciso. O
ADALINE foi a primeira rede neural aplicada comercialmente, onde quase todos os telefones
analógicos a utilizavam para filtragem de eco (KRIESEL, 2007). Faceli et al. (2011) descreve
que a principal diferença do ADALINE para o Perceptron é que ela leva em consideração a fun-
ção de ativação linear e a magnitude do erro no momento de ajuste dos pesos da rede, enquanto
o Perceptron utiliza a função do tipo limiar.
Para problemas não linearmente separáveis, tanto o Perceptron como o ADALINE não
serão bem sucedidos. Sendo necessário interligar várias camadas de redes neurais, para atingir
uma maior capacidade de separação e poder ser capaz de modelar funções mais complexas
(COPPIN, 2012). O maior problema da rede multicamadas é o aprendizado, pois o seu sistema
de representação de conhecimento é um tanto obscuro (ROSA, 2011).
No Cordless Home, por se tratar de um sistema linearmente separável, não se faz ne-
cessária a utilização de redes com mais de uma camada. Devido ao Perceptron possuir mais
referencial teórico e por seu teorema de convergência ser capaz de classificar um conjunto de
entradas linearmente (FACELI et al., 2011), ele foi escolhido como sistema de aprendizagem.
2.2 TRABALHOS RELACIONADOS
Várias empresas startups e empresas de renome mundial estão investindo em domó-
tica inteligente. Dawson (2016) comenta sobre uma startup de Londres que deseja controlar a
residência de forma intuitiva, através de movimentos que foram predeterminados e são inter-
pretados pela IA através de várias câmeras espalhadas pelo ambiente desejado. Eles pretendem
vender o seu produto por cerca de 900 e 960 Euros. De outro lado, a Amazon4 lançou, em 2015
o Amazon Echo, que pode ser visualizado na Figura 6. Ele possui um sistema Bluetooth com re-
conhecimento de voz que utiliza técnicas de IA, para assim o sistema poder ouvir, compreender
4 https://www.amazon.com/
23
e resolver qualquer pergunta ou comando, funcionando como uma central que pode controlar
dispositivos de terceiros, conectados através do protocolo sem fio Bluetooth (NUÑEZ, 2015).
Figura 6 – Amazon Echo
Fonte: (NUÑEZ, 2015)
Estas empresas, como várias outras, utilizam a IA voltada a "entender"o usuário e assim
facilitar a interação dele com os dispositivos da residência. Isso abre um precedente, pois a IA
pode ser aplicada voltada a aprender os comportamentos do dispositivo e de como podemos
obter uma melhor eficiência energética deles.
Também existem vários pesquisadores que buscam novas formas de controlar as residên-
cias através de técnicas de IA, como Cavalli, Heinen e Ruaro (2014) que propõem a utilização
de um sistema que controle a energia elétrica da residência, através de sensores e recursos do
Arduino5. Este atua como central da residência, comunicando com sensores e atuadores, mas
utilizando um servidor na nuvem para o armazenamento das informações. Esse modelo pro-
posto pode ser observado na Figura 7. Ele recomenda o servidor na nuvem, pois as residências
são diferentes umas das outras, exigindo diversos níveis de hardware, através desta forma o
hardware é locado conforme a necessidade da residência, sendo o valor do aluguel diretamente
relacionado a isso. A desvantagem é exigir que o proprietário pague mensalmente para utilizar
a sua automação residencial, através da Internet.
5 https://www.arduino.cc/
24
Figura 7 – Representação do modelo proposto por Cavalli, Heinen e Ruaro (2014)
Fonte: (CAVALLI; HEINEN; RUARO, 2014, p. 369)
Cavalli, Heinen e Ruaro (2014) comentam que o seu trabalho está no início e as técnicas
de inteligência artificial ainda não foram determinadas. Diferentemente de Silva et al. (2015)
que propõem uma arquitetura distribuída, com dois componentes distintos. Controladores locais
atuam em um cômodo da residência e o outro controlador centralizado distribui as informações
de contexto, para os locais. O Arduino Nano atua como controlador local e o Raspberry Pi6
atua como central. Os pesquisadores afirmam que desenvolveram protótipos e os avaliaram
em dois cenários distintos, obtendo resultados satisfatórios, conseguindo automatizar tarefas
de maneira proativa. Estes dois estudos encontram-se em fase inicial, havendo ainda muito a
ser aprimorado, mas demostram formas interessantes de sustentabilidade ecológica, utilizando
estatísticas geradas pelo sistema e das necessidades dos usuários para controlar os dispositivos
da residência.
Os pesquisadores não deixam muito claro a forma que avaliam o baixo custo e sim uti-
lizam ferramentas para reduzi-lo. Os projetos apresentados possuem uma central que controla
os dispositivos através de relés, sendo necessário instalação elétrica própria, para levar o acio-
namento até o dispositivo. O lado positivo desta forma é a redução de latência da informação,
onde a própria central se encarrega de acionar e desligar um determinado equipamento. Por ou-
tro lado, existe a necessidade de alterar a instalação elétrica, desativando o que já está instalado,
como por exemplo, os antigos interruptores da casa.
6 https://www.raspberrypi.org/
25
2.3 HARDWARES
Para a elaboração do sistema é necessário um hardware que controle o ambiente. Sua
escolha está relacionada ao tamanho da área que ele deverá controlar, tendo que possuir todas as
entradas e saídas necessárias, como também ter memória e processador suficientes para arma-
zenar e processar as informações com qualidade. Para tal é necessário levantar as características
de possíveis controladores embarcados.
Com base em baixo custo escolheu-se hardwares da plataforma de software livre e que
possuem formas de programação com ampla documentação e de alto nível. O site do Arduino
(2016) descreve que sua experiência de utilização é simples e acessível e tem sido utilizado em
milhares de projetos e aplicações pelo mundo todo. Possuindo uma interface simples e clara, a
sua linguagem é expandida através de bibliotecas C++. O Arduino nasceu no Ivrea Interaction
Design Institute como uma ferramenta fácil para prototipagem rápida, destinado a estudantes
sem experiência em eletrônica e programação (ARDUINO, 2016). Por se tratar de um sistema
em pequena escala foi escolhido o Arduino Nano (Figura 8), ele pode ser encontrado no Brasil
por menos de R$ 20,00. Possui doze entradas digitais e sete saídas analógicas como seu ponto
forte, mas possuindo muito menos memória que os outros modelos do Arduino, tendo 32 kB de
memória flash e 512 bytes de memória EEPROM, limitando assim o tamanho do software que
nele rodar.
Figura 8 – Visão frontal do Arduino Nano
Fonte: https://www.arduino.cc/en/Main/ArduinoBoardNano
Um dos objetivos do sistema é o controle diferenciado para cada hora do dia, porém o
Arduino não possui relógio de tempo real interno, sendo necessária a aquisição de um periférico
externo responsável por controlar a hora e informa-lá ao Arduino. Este periférico conhecido
como RTC (Real Time Clock) pode chegar a custar 50% do valor do Arduino Nano.
Outro controlador embarcado com preço similar ao Arduino Nano é o ESP8266. Criado
pela Espressif como uma solução para indústria de Internet das Coisas, com Wi-Fi integrado,
26
que suporta 802.11 b/g/n/e/i, baixo consumo de energia, em torno de 80 mA e designer com-
pacto, cerca de 10mm2 (ESPRESSIF, 2016). Ele também não possui relógio de tempo real
interno, mas por possuir Wi-Fi é possível buscar a hora atual através da Internet.
O ESP8266 não possui memória integrada, por isso diversos módulos foram criados
com o intuito de tornar sua utilização mais próxima do que vemos no Arduino. O módulo
mais comum é o ESP-01, mas este não possui todosos pinos a disposição o tornando inviável
para este sistema. Um módulo com um formato para prototipagem e com todos os pinos a
disposição é o ESP-201 (Figura 9), com um tamanho de 25x35mm e com memória flash de
512 kB integrada, possuindo dez entradas digitais utilizáveis e somente uma entrada analógica
(SMARPLDOTCOM, 2015).
Figura 9 – Visão do módulo ESP8266 ESP-201
Fonte: (SMARPLDOTCOM, 2015)
Um dos pontos fortes do ESP8266 é a diversidade de firmwares disponíveis no mer-
cado e um deles se utiliza justamente do mesmo ambiente de desenvolvimento integrado (IDE,
Integrated Development Environment) que o Arduino, tornando os algoritmos para ambos os
projetos quase idênticos, se diferenciando no uso de poucas bibliotecas (SPARKFUN, 2015).
27
Sparkfun (2015) descreve em seu artigo um passo a passo de como configurar a IDE do Arduino,
para funcionar com os módulos do ESP8266, incluindo um exemplo ao final da configuração.
Os controladores possuem grandes qualidades, como a grande biblioteca disponível para
programar o Arduino, como também vários projetos que foram criados com ele. De outro lado
temos o ESP8266, com Wi-Fi integrado, trazendo novas soluções aos projetos já desenvolvi-
dos, mas ainda com pouca biblioteca disponível e com os projetos ainda em fase inicial. Uma
solução para quando se exige Wi-Fi e mais entradas digitais e analógicas é unir os dois através
de comunicação serial, com essa junção é possível controlar diversos dispositivos do mesmo
ambiente.
28
3 CORDLESS HOME
Este trabalho apresenta um sistema de domótica, denominado Cordless Home, que uti-
liza de conceitos de agentes inteligentes para controlar ambientes da residência, levando em
consideração a eficiência energética. Ele atua nos dispositivos do ambiente, em que foi insta-
lado, de forma autônoma, apenas adaptando-se através das ações que usuário realiza.
Este sistema é retratado no diagrama de casos de uso, presente na Figura 10, em que
é possível observar o agente, Cordless Home, e o usuário como atores de um ambiente. Eles
podem atuar sobre todos os dispositivos, mas o agente além de atuar, percebe as alterações
dos dispositivos e com isso forma a sua base de preferências, através da qual o agente tomará
suas decisões. A base de informações também é composta pelas leituras dos sensores, que são
formados de no mínimo um sensor de presença e um sensor de luminosidade. Para melhorar a
adaptabilidade, o ambiente possui preferências distintas para cada hora do dia.
Figura 10 – Cordless Home - casos de uso
Fonte: O autor
3.1 REQUISITOS DO SISTEMA
Para desenvolver o sistema residencial Cordless Home foram levantados alguns requi-
sitos que nortearam a sua aplicação. Ele contém um agente inteligente para cada cômodo, não
sendo necessário instalar em todos ao mesmo tempo, trabalhando de forma individual para cada
um deles. Os agentes devem integrar-se ao ambiente, tornando-se imperceptível ao usuário,
tanto através das suas ações, como também no designer do ambiente.
O usuário deve continuar interagindo com seus dispositivos1 da mesma forma que rea-
lizava antes da instalação do agente. Ou seja, a instalação que já existe na residência deve ser
mantida, para o usuário não perder o conforto que já possui.
1 Lâmpadas, tomadas, aquecedores, eletroeletrônicos, entre outros.
29
O agente inteligente é formado por três partes distintas, a primeira responsável pela per-
cepção do ambiente, deverá conter no mínimo um sensor de presença e um sensor de lumino-
sidade. Em ambientes maiores, será necessária a instalação de mais de um sensor de cada tipo.
Para um controle mais específico, o agente poderá contar com outros tipos de sensores, como
os de infravermelho, distância e proximidade. A segunda parte é responsável pelo controle e
percepção do dispositivo, no qual está conectado. Já a terceira, é composta pelo controlador que
recebe os dados das outras partes e realiza o controle do ambiente.
Os parâmetros para o controle do ambiente, deverão se adaptar ao comportamento di-
ferenciado do usuário ao longo do dia. Para isso, estes parâmetros deverão estar divididos por
hora, tendo cada hora os seus próprios valores. Eles deverão ser alterados seguindo as regras de
aprendizagem da rede neural Perceptron, através das intervenções do usuário no agente. Todos
estes valores deverão ser salvos na memória EEPROM2, sempre que os valores forem renovados
e lidos, sempre que alterar a hora.
Estes parâmetros devem conter, em cada hora do dia, valores do Perceptron, como os
pesos dos sensores e do bias. Como também o tempo em que os dispositivos deverão ficar
ligados, além de uma variável que habilite o sistema a ligar ou não os dispositivos. Por último,
o sistema deve possuir um valor máximo do sensor de luminosidade que possa liberar ou não
o funcionamento destes dispositivos. Todos estes parâmetros citados deverão ser atualizados
conforme as ações do usuário.
Por se tratar de um sistema que busca a eficiência energética, ele deverá sempre poder
atuar nos dispositivos com o intuito de desligá-los, somente ajustando o tempo de retardo para
essa ação.
3.2 ARQUITETURA DO SISTEMA
Para atender a estes requisitos o sistema conta com um agente central em cada ambiente
da residência, com acesso à hora atual, aos dados de controle e a um hardware que processe
as informações dos sensores e dispositivos que irá controlar. Ele é distribuído na visão geral da
residência, mas centralizado na visão do cômodo. A Figura 11 retrata os componentes da arqui-
tetura proposta, necessários para atender as necessidade de um cômodo qualquer da residência.
2 Electrically-Erasable Programmable Read-Only Memory, Memória somente para leitura eletricamente apagá-
vel
30
Figura 11 – Arquitetura do Agente de controle de um ambiente
Fonte: O autor
O controlador do ambiente é um dispositivo composto por três componentes distintos.
O primeiro é o agente central, que possui todos os dados de controle armazenados em sua
memória interna. O segundo é a placa de verificação do ambiente ou placa de sensores, através
da qual o agente poderá perceber o ambiente. O último componente é a placa de atuação ou de
acionamento, nela o dispositivo que se deseja controlar fica conectado. Essa divisão serve como
facilitador para o momento de desenvolver o protótipo, não necessariamente os componentes
ficando separados da central.
3.3 PERCEPTRON DE CAMADA ÚNICA
Os parâmetros para construção da ferramenta computacional Perceptron, foram defini-
dos por ser de camada única, com os sensores de movimento e luminosidade como entrada. Ele
contém um parâmetro de bias, para ajuste de inclinação da reta de separação linear. A Figura
12 contém o modelo deste Perceptron.
31
Figura 12 – Perceptron controle de um ambiente
Fonte: O autor
A classificação das ações do sistema é realizada de forma autônoma, atuando quando é
necessário ligar ou desligar o dispositivo. Desta forma, o Gráfico 1 exemplifica uma situação
com valores aleatórios e uma provável reta de classificação desejável, separando a intervenção
do Perceptron.
Gráfico 1 – Perceptron controle de um ambiente
Fonte: O autor
O Algoritmo 1 contém os cálculos da função perceptron e também como torna o resul-
tado verdadeiro ou falso. A função recebe os valores atuais dos sensores, que são multiplicados
por seus respectivos pesos e posteriormente somados entre si. O resultado da soma caso for
maior que zero é retornado 1 (verdadeiro), senão retorna 0 (falso).
32
Algoritmo 1 – Função Perceptron em C++
1 bool perceptron(float luminosidade, bool movimento){
2 float soma = (bias * Wb) + (luminosidade * Wl) + (movimento * Wm);
3 if(soma > 0){
4 return 1;
5 }else{
6 return 0;
7 }
8 }
Fonte: O autor
O Algoritmo 2 traz afunção verificaErro. A qual recebe o resultado da função percep-
tron que, ao verificar através do condicional, se está ocorrendo movimento e se a luminosidade
está abaixo do valor desejado, indica a veracidade do resultado recebido. Caso ela não seja com-
provada, é então chamada a função correcaoErro, presente no Algoritmo 3. Essa realiza os cál-
culos de correção de erro através da regra de treinamento do Perceptron: 𝑤𝑖 ←− 𝑤𝑖+(𝑒*𝑎*𝑥𝑖),
onde o 𝑎 é a taxa de aprendizagem, devendo estar sempre entre 0 e 1 e o 𝑒 é o erro que retor-
nou da função anterior. Caso a função anterior tenha comprovado a veracidade, o valor do erro é
nulo, mas caso não seja comprovada, o valor será de -1 quando o resultado da função perceptron
deveria ser 0, mas retornou o valor 1. Se ocorrer o inverso o valor do erro será de 1. Ocorrendo
um decréscimo no peso se o erro for negativo e um aumento se for positivo.
Algoritmo 2 – Função Perceptron para verificação de erro em C++
1 int verificaErro(bool saida, float luminosidade, bool movimento){
2 if(luminosidade < valorLuzDesejada && movimento == 1){
3 //Aqui eu espero que tenha 1 se nao tiver, entao 1 - 0 = 1
4 if(!saida){
5 correcaoErro(1, luminosidade, movimento);
6 return -1;
7 }else{
8 return 1;
9 }
10 }else{
11 //Aqui eu espero que tenha 0 se nao tiver, entao 0 - 1 = -1
12 if(saida){
13 correcaoErro(-1, luminosidade, movimento);
14 return -1;
15 }else{
16 return 0;
17 }
18 }
19 }
Fonte: O autor
33
Algoritmo 3 – Função Perceptron para correção de erro em C++
1 void correcaoErro(int erro, float luminosidade, bool movimento){
2 Wb = Wb + (erro * aprendizagem * bias);
3 Wl = Wl + (erro * aprendizagem * luminosidade);
4 Wm = Wm + (erro * aprendizagem * movimento);
5 }
Fonte: O autor
O processo total de atuação do Perceptron é compreendido através do diagrama de
sequência, presente na Figura 13. Ele possui um agente capaz de controlar uma luminária de um
ambiente. Primeiramente, o agente percebe a alteração do estado a partir do usuário e ajusta os
valores dos pesos através da regra de treinamento do Perceptron. Caso não ocorra interação são
realizados os cálculos do Perceptron com base nos pesos da hora atual. Quando o Perceptron
altera o estado do dispositivo, e o usuário venha a voltar ao estado anterior em um espaço de
tempo curto, é entendido como um erro e são ajustados os pesos dos sensores e novos pesos são
obtidos e salvos.
Figura 13 – Diagrama de sequência do agente
Fonte: O autor
34
4 TESTES E RESULTADOS
Para comprovar o funcionamento do agente inteligente do Cordless Home, foram cons-
truídos protótipos em protoboard, responsáveis por controlar uma lâmpada de um ambiente.
4.1 DESENVOLVIMENTO DO PRIMEIRO PROTÓTIPO
Por não precisar de periféricos externos para controle da hora e podendo atualizar au-
tomaticamente através da Internet, sem a interferência do usuário, foi montado o primeiro pro-
tótipo com o ESP8266. Foram utilizados os seguintes materiais para o controle de um Led
simbolizando uma lâmpada de um ambiente:
∙ ESP8266 módulo ESP-201;
∙ Protoboard;
∙ Sensor de presença e movimento;
∙ Resistor dependente de luz (LDR, Light Dependent Resistor);
∙ Fonte de alimentação 3.3V para circuito e 5V para o sensor de movimento;
∙ Cabos para ligação na protoboard;
∙ Led;
∙ Botão de pulso;
∙ Resistores: 4 x 3,3kΩ, 1 x 1kΩ, 2 x 10kΩ, 1 x 4,7kΩ, 1 x 330Ω.
O esquema de ligação deste primeiro protótipo é apresentado na Figura 14. A Figura 15
exibe o protótipo montado na protoboard.
O primeiro teste foi realizado com o Algoritmo 4, desenvolvido através da IDE do Ar-
duino. Ela utiliza as funções citadas no capítulo anterior, acrescentando somente a estrutura em
torno delas e incluindo a leitura dos sensores e acionamento do led. As variáveis utilizadas pelo
Perceptron, são o bias, que sempre deve ter o valor um, como também, os pesos (Wb, Wl e
Wm), com valores de -1 a 1 e por último a taxa de aprendizagem que determina o quão rápido
será realizada a correção do erro.
35
Figura 14 – Esquema de ligação do primeiro teste
Fonte: O autor
Figura 15 – Protoboard montada para o primeiro teste
Fonte: O autor
36
Algoritmo 4 – Primeiro teste do Perceptron
1 //Configuracao sensores
2 int pinoSensorMov = 4;
3 int luminosidade = 0;
4 bool movimento = 0;
5 //variaveis perceptron
6 bool bias = 1;
7 float Wb = -0.2;
8 float Wm = 0.7;
9 float Wl = -0.4;
10 float aprendizagem = 0.01;
11 void setup() {
12 pinMode(pinoSensorMov, INPUT);
13 pinMode(13, OUTPUT);//configura Led
14 digitalWrite(13, LOW);
15 }
16 bool perceptron(){
17 float soma = (bias * Wb)+(luminosidade * Wl)+(movimento * Wm);
18 if(soma > 0){
19 digitalWrite(13, HIGH);//Liga Led
20 return 1;
21 }else{
22 digitalWrite(13, LOW);//Desliga Led
23 return 0;
24 }
25 }
26 void correcaoErro(int erro){
27 Wb = Wb + (erro * aprendizagem * bias);
28 Wl = Wl + (erro * aprendizagem * luminosidade);
29 Wm = Wm + (erro * aprendizagem * movimento);
30 }
31 void verificaErro(bool saida){
32 if(luminosidade < 0.68 && movimento == 1){
33 if(!saida){//Eu espero que tenha 1, se nao, entao 1 - 0 = 1
34 correcaoErro(1);
35 }
36 }else{
37 if(saida){//Eu espero que tenha 0, se nao, entao 0 - 1 = -1
38 correcaoErro(-1);
39 }
40 }
41 }
42 void loop() {
43 luminosidade = analogRead(A0);//atualiza valores sensores
44 movimento = digitalRead(pinoSensorMov);
45 verificaErro(perceptron());//execucao do perceptron
46 delay(3000);
47 }
Fonte: O autor
37
Os testes foram executados com e sem movimento e em diversos níveis de luminosidade,
com luz solar e não, além da própria luz do ambiente. Após um período de teste notou-se as
alterações nos valores dos pesos, mostrados na Figura 16. Os valores iniciais dos pesos Wb, Wl
e Wm eram respectivamente -0.2, -0.4 e 0.7, chegando após os testes aos valores -0.3, -0.47 e
0.6.
Figura 16 – Resultado Perceptron no primeiro teste
Fonte: O autor
Este teste foi capaz de revelar a capacidade do Perceptron, como também as suas limi-
tações. No início do teste o led ligou algumas vezes quando a luminosidade estava próxima de
zero e não ocorria movimento, como também não ligava inicialmente com valores de luminosi-
dade próximo do valor limite, que neste teste era 0.68% de luminosidade. Ao se aproximar do
valor limite para acionamento, o Perceptron realizou várias correções de erros aumentando os
valores e em seguida os abaixando, ficando em um círculo contínuo. Este problema se apresen-
tou somente quando o valor chegava a uma diferença menor que duas casas decimais, que foi
38
resolvido através de uma pequena zona morta.
4.2 DESENVOLVIMENTO DO SEGUNDO PROTÓTIPO
Com o funcionamento do Perceptron comprovado no primeiro protótipo, foi necessário
a construção do segundo protótipo para validar todos os requisitos levantados para a arquitetura
do sistema. Para este protótipo foram feitas poucas mudanças na protoboard com relação ao
teste anterior, as maiores mudanças foram melhorias de software.
Para simplificar o sistema, devido ao aumento do código, o algoritmo foi dividido em
várias pequenas partes, que na IDE do Arduino são chamadas de abas. A primeira aba específica
criada, que é verificada no Algoritmo 5, realiza a conexão com a rede Wi-Fi da residência, com
os parâmetros do nome da rede, senha, endereço IP, máscara da sub-rede e gateway, tornando
esse item muito simples, pois somente é necessário chamar a função iniWifi através da função
setup da aba principal e incluir a biblioteca ESP8266WebServer.h também na aba principal.
Algoritmo 5 – Função que inicia o Wi-Fi
1 void initWifi() {
2 WiFi.mode(WIFI_STA);// somente modo estacao
3 char ssid[] = "ESPnetwork";// o nome da sua rede
4 char pass[] = "passNetwork";// a senha da sua rede
5
6 IPAddress ip(192,168, 5, 210);// um IP valido
7 IPAddress gat(192, 168, 5, 1);// o IP do seu roteador
8 IPAddress sub(255, 255, 255, 0);// marcara valida
9
10 WiFi.config(ip, gat, sub);
11 WiFi.begin(ssid, pass);
12
13 //laco de espera para conectar
14 while (WiFi.status() != WL_CONNECTED) {
15 delay(500);
16 }
17 }
Fonte: O autor
O Algoritmo 6 é responsável pelo controle e leitura dos sensores. Nele há uma função
para configuração dos pinos dos sensores e outra função para retorno dos valores destes pinos.
Na função getLuminosidade são realizados dez leituras consecutivas do sensor de luminosidade
e em seguida é retirada a média das leituras, isso é realizado para evitar que uma interferência
momentânea afete o valor final da leitura.
39
Algoritmo 6 – Funções para controle dos sensores
1 int pinoSensorMov = 4;
2
3 void configuraSensores(){
4 pinMode(pinoSensorMov, INPUT);
5 }
6
7 float getLuminosidade(){
8 int j;
9 float valorLuminosidade = 0;
10 for(j = 0; j < 10; j++){
11 valorLuminosidade += analogRead(A0);
12 yield();
13 }
14 valorLuminosidade = (valorLuminosidade/10)/1024;
15 return valorLuminosidade;
16 }
17
18 bool getMovimento(){
19 bool valorSensorMov = 0;
20 valorSensorMov = digitalRead(pinoSensorMov);
21 return valorSensorMov;
22 }
Fonte: O autor
Outra parte importante do sistema, que ficou separado em aba, é responsável pelo con-
trole da memória. O Algoritmo 7 possui duas funções distintas, uma responsável pela leitura
dos dados e a outra pela sua gravação. Elas se utilizam de funções da biblioteca EEPROM.h,
como a função EEPROM.read(int pos), para leitura da memória de uma determinada posição.
Outra função dessa biblioteca é a EEPROM.write(int pos, uint8_t valor), responsável por gra-
var na memória um valor passado, na posição informada. Nestas funções, cada posição possui
o tamanho de 8 bits, o que permite gravar valores de 0 a 255, sendo necessária a conversão das
variáveis para valores válidos.
O controle da lâmpada também possui uma aba separada. É possível encontrar nela o
controle da lâmpada como também a verificação do estado da mesma. Por não retirar o aciona-
mento através do interruptor, a saída pode estar em nível lógico alto e a lâmpada estar desligada.
Para resolver esse problema foram criadas duas funções, que através de uma tabela verdade ve-
rifica o estado da lâmpada e da saída. O Algoritmo 8 possui a tabela verdade, que tem o valor
zero para a lâmpada e saída desligadas, o valor um para lâmpada desligada, mas saída ligada, o
valor dois para lâmpada ligada, mas saída desligada e por último o valor três para ambas ligadas.
40
Algoritmo 7 – Funções para leitura e gravação na EEPROM
1 void LeituraInicial(){
2 mWb = EEPROM.read(0+hora);
3 mWl = EEPROM.read(24+hora);
4 mWm = EEPROM.read(48+hora);
5 mLd = EEPROM.read(72+hora);
6 mTd = EEPROM.read(96+hora);
7 Wb = (((float)mWb)-100)/100;
8 Wl = (((float) mWl)-100)/100;
9 Wm = (((float) mWm)-100)/100;
10 valorLuzDesejada = ((float) mLd)/100;
11 tempoDesliga = mTd;
12 }
13
14 void GravaNovosValores(){
15 mWb = (uint8_t) ((Wb*100) + 100);
16 mWl = (uint8_t) ((Wl*100) + 100);
17 mWm = (uint8_t) ((Wm*100) + 100);
18 mLd = (uint8_t) (valorLuzDesejada*100);
19 mTd = tempoDesliga;
20 EEPROM.write(0+hora,mWb);
21 EEPROM.write(24+hora,mWl);
22 EEPROM.write(48+hora,mWm);
23 EEPROM.write(72+hora,mLd);
24 EEPROM.write(96+hora,mTd);
25 EEPROM.commit();
26 }
Fonte: O autor
Algoritmo 8 – Funções para leitura e gravação na EEPROM
1 void alteraTabela(){
2 if(!statusRele && !leLampada()){
3 tabelaLampERele = 0;
4 }else if(statusRele && !leLampada()){
5 tabelaLampERele = 1;
6 }else if(!statusRele && leLampada()){
7 tabelaLampERele = 2;
8 }else if(statusRele && leLampada()){
9 tabelaLampERele = 3;
10 }
11 }
Fonte: O autor
A aba mais importante é a que realiza o controle do Perceptron. E ela possui uma função
que é chamada em tempos distintos, sendo dois segundos em funcionamento normal ou dois
minutos após interação pelo usuário. Esta função chama a função perceptron e em seguida a
sua função de verificação de erro. Um resultado positivo realiza o acionamento da lâmpada, um
41
resultado zero a desliga, e um resultado negativo é nulo, evitando assim que a lâmpada altere o
seu estado quando houver um erro nos cálculos do Perceptron.
Para evitar que ela fique ligando e desligando seguidamente, foi inserida a variável de
controle do tempo para retardo do desligamento. O valor desta variável determina quantas vezes
o Perceptron necessita retornar, seguidamente, o valor de zero, para assim desligar a lâmpada.
Ao desligar é alterado o tempo de execução da função do Perceptron para cinco vezes o tempo
normal, atrasando um possível religamento.
Caso não ocorram alterações no ambiente durante uma hora, o Algoritmo 9 possui uma
função de alteração dos valores de controle do Perceptron, reduzindo as possibilidades dele vir
a ligar a lâmpada nestas horas. Esta função altera os valores da porcentagem de luz mínima
desta hora, reduz o tempo que a lâmpada fica ligada e também reduz a possibilidade dela ligar.
Algoritmo 9 – Funções para ajuste dos parâmetros em horas de pouco uso
1 void ajusteHoraParada(){
2
3 if(valorLuzDesejada > luminosidade && valorLuzDesejada < 0,9){
4 perceptronLuzDesejada(valorLuzDesejada-luminosidade, -1);
5 }else if(valorLuzDesejada < luminosidade && luzDesejada > 0,05){
6 perceptronLuzDesejada(luminosidade-luzDesejada, 1);
7 }
8
9 if(tempoDesliga > 5){
10 tempoDesliga = tempoDesliga + (-1*aprendizagem*tempoDesliga);
11 }
12
13 perceptronDesejaLigar(-1);
14 }
15
16 bool perceptronLuzDesejada(float luz, int erroLuz){
17 luzDesejada = luzDesejada + (erroLuz * aprendizagem * luz);
18 }
19
20 bool perceptronDesejaLigar(int erroLiga){
21 if(desejaLigar > 0 && desejaLigar < 255){
22 desejaLigar = desejaLigar + (erroLiga * (aprendizagem*100));
23 }
24 }
Fonte: O autor
O protótipo verifica a hora através do protocolo de tempo da Internet (NTP, Network
Time Protocol), que é o mesmo protocolo utilizado para sincronização dos relógios dos com-
putadores. Para utilizá-lo foi necessário o uso das bibliotecas NTPClient.h1 e WiFiUdp.h. O
1 https://github.com/arduino-libraries/NTPClient
42
Algoritmo 10 possui a comunicação com o servidor NTP. A variável utc definiu o fuso horário
de Brasília que é de menos três horas em relação ao Meridiano de Greenwich.
Algoritmo 10 – Inicia comunicação com servidor NTP
1 WiFiUDP ntpUDP;
2 int16_t utc = -3; //UTC -3:00 Brazil
3 NTPClient timeClient(ntpUDP, "a.st1.ntp.br", utc*3600, 60000);
4
5 int initTimeNTP(){
6 timeClient.begin();
7 timeClient.update();
8 return getHora();
9 }
10
11 int getHora(){
12 return timeClient.getHours();
13 }
Fonte: O autor
O Algorimo 11 demonstra a função que atualiza os valores da hora, através do comando
update. A função é executada a cada dez segundos, tempo este adequado para captação dos
dados e posterior geração dos gráficos.
Algoritmo 11 – Função para atualização da hora
1 uint32_t currentMillis = 0;
2 uint32_t previousMillis = 0;
3
4 int newHourNTP() {
5 currentMillis = millis();
6
7 if (currentMillis - previousMillis > 10000) {
8 previousMillis = currentMillis;
9 timeClient.update();
10 Serial.print("Hora atual : ");
11 Serial.println(getHora());
12 }
13
14 return getHora();
15 }
Fonte: O autor
Após a conclusão de todos os requisitos da arquitetura alcançados foram iniciados os tes-
tes na protoboard, mas o controle do led não se fez mais suficiente. Com isso, foi acrescentado
o acionamento de uma lâmpada ao circuito, esquemático na Figura 17. Foram acrescentados
dois relés, um relé para o acionamento da lâmpada através do pino de entrada treze e outro relé
com bobina de 220VAC, para verificação do status da lâmpada.43
Figura 17 – Alterações da Protoboard para o segundo teste
Fonte: O autor
Iniciando os testes com o acionamento da lâmpada, não foram obtidos resultados satis-
fatórios devido a interferência eletromagnética gerada pelo acionamento dos relés, que reinici-
avam o sistema toda vez que a lâmpada era acionada. Foram executadas várias alterações na
protoboard, para redução das interferências, incluindo diversos filtros, mas todos sem sucesso.
4.3 DESENVOLVIMENTO DO PROTÓTIPO EM PLACA DE CIRCUITO
Após as dificuldades encontradas nos protótipos anteriores, foram construídos os proje-
tos de placa de circuito para o agente inteligente. Os projetos foram construídos com software
da Labcenter2 e com o auxílio do laboratorista de eletroeletrônica Tiago Possato. Foram cons-
truídas três placas distintas, conforme requisito levantado do projeto. A Figura 18, exemplifica
o projeto do agente principal, onde o ESP8266 é instalado.
Este projeto foi simplificado ao máximo, para assim, conseguir reduzir o custo e o ta-
manho. Ele possui pinos para gravação de firmware, um jumper para mudança da entrada zero
para nível alto, estado normal, ou para nível baixo, estado de gravação do firmware. Possui
conectores para entrada de tensão alternada de 100 V a 240 V, outro conector para placa de
sensores, outro para placa de controle da lâmpada e também um para entrada ou saída de 5 V
de corrente contínua. Do primeiro projeto até este, foi mantido o botão para realizar a reinici-
alização do controlador. A Figura 19 contém a placa concluída, medindo 60mm de largura e
100mm de comprimento. Possui como fonte de alimentação um HLK-PM013, que possui saída
2 https://www.labcenter.com/
3 http://www.hlktech.net/product_detail.php?ProId=54
44
de 5 V contínua e potência máxima de 3 W. O ESP8266, por trabalhar com tensão de 3,3 V, foi
utilizado o regulador de tensão AMS11174, por ter um tensão de queda muito baixa, cerca de
1,1 V.
Figura 18 – Projeto da placa de circuito do agente
Fonte: O autor
Figura 19 – Placa de circuito concluída do Agente
Fonte: O autor
4 http://www.alldatasheet.com/datasheet-pdf/pdf/49118/ADMOS/AMS1117.html
45
O esquemático do projeto da placa do controle da lâmpada está na Figura 20. A maior
mudança em relação ao projeto anterior desta placa foi a utilização de dois optoacopladores,
um para o recebimento do sinal da lâmpada, que ao acionar carrega o capacitor de 4,7 micro
Faraday, que ao perder o sinal da lâmpada leva em torno de 200 ms para descarregar. O outro
optoacoplador foi utilizado para acionar o relé com campo 220 V, assim foi possível isolar
totalmente o circuito da lâmpada, do circuito do controlador. Após estas mudanças não ocorreu
mais o reiniciamento do controlador.
Figura 20 – Projeto da placa de circuito de controle da lâmpada
Fonte: O autor
A placa criada, constante na Figura 21, possui medidas de 50mm de largura e 70mm de
comprimento, podendo ser introduzida no interior das caixas de passagem, presentes na maioria
das residências. As caixas mais utilizadas possuem tamanho aproximadamente de 60mm de lar-
gura, por 100mm de comprimento(2"x4"). Dessa forma, pode-se instalar essa placa sem alterar
a instalação da residência, somente levando os sinais até o controlador principal do ambiente.
46
Figura 21 – Placa de circuito concluída para controle da lâmpadas
Fonte: O autor
Na Figura 22 é evidenciado o projeto que foi utilizado para construção da placa de
sensores. Exibida na Figura 23, a placa possui apenas um sensor de presença e um sensor de
luminosidade, sendo o mínimo necessário para o controle de uma lâmpada em um ambiente
pequeno. Por conta de sua simplicidade foi possível extrair um tamanho bem reduzido desta
placa, contando com 35mm de largura e 50mm de comprimento, podendo ser instalado ao lado
da lâmpada ou juntamente ao interruptor, ficando quase imperceptível ao usuário.
Figura 22 – Projeto da placa de circuito de controle dos sensores
Fonte: O autor
47
Figura 23 – Placa de circuito concluída para controle dos sensores
Fonte: O autor
Com todas as três placas concluídas e instaladas foi possível um melhor controle da
iluminação do ambiente, pois a placa não apresenta problemas de interferência eletromagnética.
Podendo assim, verificar claramente o funcionamento do código e melhorá-lo.
4.3.1 RESULTADOS
Os dados considerados para a análise do resultado foram coletados entre os dias 12 e
22 de outubro. Em alguns dias ocorreram falta de energia elétrica e queda de acesso à Internet,
como também, em alguns momentos os dados não eram enviados devido falta de resposta do
servidor. Isto interferiu nos resultados pois alguns dados deixaram de ser considerados, mas não
chegando a distorcer a análise geral do sistema.
Para a armazenagem de dados foi utilizado o serviço gratuito da Sparkfun5. Os gráficos
são gerados automaticamente através do serviço front-end do analog.io, que funciona direta-
mente com os dados armazenados da Sparkfun.
O Gráfico 2 indica as mudanças dos valores durante o dia 19 de outubro. Ocorrem saltos
destes valores, durante as mudanças das horas, pois são carregados novos valores nestes mo-
mentos. As alterações dos pesos ocorrem de forma agrupada, com a alteração quase simultânea
5 https://data.sparkfun.com/
48
de todos os pesos. Isso ocorre pelo fato do bias possuir sempre o valor um, ou seja, ele sempre
sofre alteração, como também o valor do sensor de luminosidade que dificilmente tem o valor
de zero.
Gráfico 2 – Valores dos pesos do Perceptron, no dia 19 de outubro de 2016
Fonte: O autor
O Gráfico 3 exibe leituras do sensor de luminosidade, no dia 19 de outubro, com valores
de 0% a 100%, demonstrando as fases do dia e sua utilização. No começo de um novo dia, os
valores estavam próximos de zero, ou seja, não havia recebimento de nenhum tipo de luz. Os
picos de maior incidência de luz eram das horas em que a lâmpada estava acesa.
Gráfico 3 – Leitura sensor Luminosidade, no dia 19 de outubro de 2016 (%)
Fonte: O autor
As leituras do sensor de movimento, no dia 19 de outubro, evidenciadas no Gráfico 4,
comprova as horas de utilização do ambiente. Com a análise de atuação tanto do sensor de
luminosidade, como do sensor de movimento, verificou-se uma grande utilização do ambiente
em determinados horários, como antes do meio-dia e depois das dez da noite.
49
Gráfico 4 – Leitura sensor movimento, no dia 19 de outubro de 2016 (%)
Fonte: O autor
Um dos controles que o sistema realiza é o de limitar a luz máxima para o Perceptron
ligar a lâmpada, através de valores na mesma proporção do sensor de luminosidade, de 0% a
100%, o Gráfico 5 atesta as alterações deste valor. Em um determinado momento, o valor está
muito além do valor máximo, ultrapassando os 200%, isto ocorreu por uma falha nos cálculos
de ajuste deste valor.
Gráfico 5 – Valor da luz desejada, no dia 15 de outubro de 2016 (%)
Fonte: O autor
Durante diversos testes, ocorreu um erro salvando na memória EEPROM um valor de
outra variável. Graças à coleta de dados foi percebido este valor acima do desejado, em somente
uma hora do dia. Para evitar esses valores extrapolados, foram inseridos limitadores de valores,
toda vez que é realizada a leitura da memória EEPROM. O Gráfico 6, possui dados coletados no
dia 19 de outubro, no qual o valor não extrapolou o limiar de 100%. As horas do dia, com menos
50
alterações, possuem valores menores de luz desejada, tornando assim mais difícil da lâmpada
ser ligada.
Gráfico 6 – Valor da luz desejada corrigido, no dia 19 de outubro de 2016 (%)
Fonte: O autor
O Gráfico 7 demonstra os valores da variável, responsável pelo retardo do desligamento
da lâmpada, com dados coletados entre os dias 16 e 22 de outubro. Ela define quantidadede
vezes em que o Perceptron tem de executar a ação de desligar a lâmpada, com limite mínimo de
5 e máximo de 100. Inicialmente com o valor máximo, o sistema começou a reduzir o seu valor
nos períodos de menor utilização e mantendo valores maiores nos outros períodos. Com isso, o
Perceptron atuou mais rapidamente nas horas em que não ocorriam intervenções.
Gráfico 7 – Valores do retardo do desligamento, do dia 16 ao dia 22 de outubro
Fonte: O autor
Além do retardo que o Perceptron leva para desligar os dispositivos, era esperado que
o mesmo não viesse a ligá-los em alguns momentos do dia. A variável para este controle, não
permite que o Perceptron ligue a lâmpada, quando estiver com um valor menor que 120. Ela
51
possui limitadores de valor, como seu máximo 255 e o seu mínimo 0. Como a variável anterior,
ela foi inicializada em seu valor máximo e reduziu nas horas de menor utilização. O Gráfico 8
contém os dados coletados desta variável, entre os dias 16 e 22 de outubro.
Gráfico 8 – Variável que habilita o Perceptron a ligar, do dia 16 ao dia 22 de outubro
Fonte: O autor
Estes gráficos manifestaram com clareza o comportamento do Perceptron, permitindo
verificar problemas, como também acertos. Eles possibilitam validar as alterações dos pesos
das entradas, como elas se comportam, além de entender melhor as entradas que são recebidas
pelos sensores.
4.4 DIFICULDADES
Durante o desenvolvimento do sistema Cordless Home, foram encontradas várias di-
ficuldades, dentre elas a aplicação do Perceptron, a falta de bibliotecas para o ESP8266 e o
desenvolvimento do protótipo.
4.4.1 Aplicação do Perceptron
Uma das primeiras dificuldades encontradas, foi a da utilização do Perceptron, pois não
são encontradas informações claras da sua aplicação. Existem vários vídeos e trabalhos que
explicam como ele se comporta, mas não existem algoritmos e nem suas aplicações.
Quando encontrada a forma da sua aplicação, foi notado que a sua fórmula de aprendi-
zagem possui falhas, não sendo possível entrar com qualquer valor inicial. Valores próximos do
considerado ideal, foram necessários para a partir deles o Perceptron alcançar o funcionamento
desejado.
52
Os pesos do Perceptron após alguns dias de utilização não foram alterados seguida-
mente. Com isso, mesmo com os problemas citados, ele se mostrou viável. Sua adaptabilidade
para as diferentes horas do dia se tornaram bem distintas, em relação aos seus valores iniciais.
4.4.2 Utilização do ESP8266
Por se tratar de um hardware relativamente novo, com apenas dois anos no mercado, não
existem muitas informações e nem muitas bibliotecas sobre ele, devendo buscar informações
em sites de diversas partes do mundo, para conseguir alguma informação. As suas ligações
complicadas, para um usuário de sistema Arduino, se tornaram mais simples somente com a
utilização da placa de circuito, por já possuir estas ligações definidas.
A utilização da IDE do Arduino e a placa de circuito construída tornam a utilização
deste hardware muito simples, com grandes soluções possíveis por causa do Wi-Fi integrado.
4.4.3 Desenvolvimento protótipo
A maior dificuldade encontrada foi a construção do protótipo, pois através dele foi pos-
sível notar o real funcionamento do Perceptron e o seu comportamento em relação as interações
do usúario.
Ao começar o controle da lâmpada, muitos problemas com a protoboard, desde mal
contato até interferências eletromagnéticas. Os mal contatos durante a utilização de protoboard
são comuns, devido ao desgaste na utilização do mesmo, pois os cabos e componentes já não
se prendem bem como no início. As interferências se deram ao uso da protoboard, pois a ali-
mentação do controlador não ocorria de forma eficiente e qualquer alteração na rede já o fazia
reiniciar.
Graças aos auxílios, das ferramentas encontradas nos laborátorios de eletrônica do IFC
e com uma ação conjunta do seu laboratorista Tiago Possato, foi possível localizar o problema.
Ao acionar o relé que aciona a lâmpada, a sua bobina somada com a carga da lâmpada gerava
uma interferência mínima no circuito que não era suportada pelo controlador. Com a utilização
de optoacopladores foi possível isolar a fonte responsável pelo controle, da fonte responsável
pelo acionamento, com isso o problema não se repetiu.
Somente após encontrada a solução que se deu início a construção das placas de cir-
cuito. Dessa forma, foi possível superar as dificuldades e finalmente poder comprovar o que se
esperava do sistema Cordless Home.
53
5 CONCLUSÃO
O sistema de automação residencial Cordless Home, atua de forma autônoma através
de técnicas da rede neural Perceptron. Ele foi desenvolvido com o intuito de permitir a todas
as residências a instalação de uma automação, que traga um melhor aproveitamento da energia
elétrica consumida. Visando economia de energia, o sistema consegue desligar e ligar dispositi-
vos de um determinado ambiente, se ajustando às ações do usuário neles, e ainda diferenciando
estas ações conforme a hora em que esteja acontecendo essa ação.
Com a intenção de realizar a análise experimental desta solução, foram desenvolvidos
três protótipos. O primeiro utilizou um led que comprovou o funcionamento do Perceptron, mas
não foi aplicado no ambiente. O segundo protótipo foi construído para aplicação no ambiente,
porém não funcionou como esperado, devido às interferências eletromagnéticas que reiniciali-
zavam o sistema. Por fim, o terceiro protótipo foi construído com placa de circuito utilizando
optoacopladores, que isolaram o circuito da lâmpada, resolvendo o problema. Este último se
manteve atuante no mesmo ambiente por um mês. Nestes testes o sistema se comportou de
maneira satisfatória, mesmo com as limitações do Perceptron de camada única, trazendo como-
didade ao usuário.
O sistema foi capaz de ligar e desligar uma lâmpada e se adaptar aos diferentes momen-
tos de utilização, desligando-a sempre que o ambiente não estivesse sendo ocupado. Porém, em
determinados momentos o sistema desligou de forma errônea, sendo necessária a interação do
usuário para ajustar seus valores.
O Cordless Home possui fácil aplicabilidade em qualquer residência, pois não interfere
na instalação já existente, sendo conectada diretamente ao interruptor. Isso é uma vantagem,
quando comparada a outros sistemas existentes, que exigem a desativação do que encontra-se
instalado. Espera-se que este trabalho desperte um maior interesse da comunidade às novas
tecnologias, pois o sistema completo está disponível na Internet1, tanto as placas de circuito,
como também todo o código, que encontra-se no Apêndice A deste trabalho. Isso permite, que
qualquer pessoa interessada possa utilizá-lo em sua residência.
1 https://github.com/ElitonTiago/TCC
54
5.1 TRABALHOS FUTUROS
Como trabalhos futuros, pretende-se aprimorar este protótipo, levando-o a controlar ou-
tros dispositivos do mesmo ambiente, como televisores e eletrodomésticos. Também pode-se
gerir o controle de informação de múltiplos agentes, interligando cada ambiente da residência,
para que se comuniquem, para obter melhor resultado e adaptabilidade do comportamento do
usuário.
O Perceptron é um ponto que pode ser melhorado, aplicando um sistema de múltiplas
camadas, para obter resultados mais precisos na tomada de decisão. Podendo ainda, aumentar
o número de sensores no ambiente, tendo vários resultados possíveis e com as técnicas de
aprendizagem escolher o melhor resultado. Outras técnicas de IA podem ser selecionadas, tanto
para trabalhar em conjunto como também para substituir o Perceptron. Uma solução para se
trabalhar em conjunto com o Perceptron, pode ser a de adotar uma técnica capaz de controlar a
intensidade da iluminação do ambiente, atingindo o valor

Continue navegando