Você está na página 1de 14

1

Projeto de Automação Residencial por


Comando de voz
JESUS, M. C. IFBA, 2018

 segurança, e acessibilidade aos usuários que estão cada vez


Resumo—A indústria da Automação Residencial no Brasil mais exigentes. A questão ambiental tem sido alvo de
ainda é pouco desenvolvida e muito cara. A Domótica (termo preocupação da sociedade e a Domótica, por sua vez, busca
sinônimo de automação residencial) vem se tornando uma através da sua atuação formas de gerar sustentabilidade,
tendência mundial para customização de edifícios tornando-os
possibilitando, inclusive a redução do consumo energético de
mais tecnológicos, seguros, inteligentes, gerando comodidade aos
seus usuários. Neste artigo, o autor busca desenvolver um projeto uma residência, visto que uma casa automatizada pode oferecer
de automação residencial por comando de voz baseado na um gerenciamento inteligente de economia de energia [1]. Vale
utilização de um smartphone para o controle do sistema por meio ressaltar também que quanto maior a tecnologia envolvida na
da internet, podendo controlar a iluminação de uma casa em automação de uma casa maior a valorização do imóvel
qualquer lugar do mundo. [6][7][8][9].
Diversas pesquisas da Domótica vêm se desenvolvendo na
Palavras-chave: Automação Residencial, Blynk, Comando de
Voz, Domótica, IoT (Internet of things), NodeMCU, Otimização
Europa e Ásia voltados a produção de novas tecnologias com
Energética, Tasker. ênfase na área de redes sem fio, protocolos como o ZigBee, Z-
Wave, Bluetooth e Wifi entretanto a falta de padronização de
protocolo utilizado dificulta a integração de sistemas já
I. INTRODUÇÃO existentes. [3][4][5].
A integração de funções ao telefone celular como a internet,
Internet of Things (IoT) ou “Internet das Coisas “ em câmera, gravação e edição de áudio de vídeo gerou o chamamos
A português é um conceito moderno que surgiu na década
de 90 com a ideia de interligar equipamentos de uso cotidiano
hoje de smartphone, em breve espera-se que seja comum a
integração de eletrodomésticos e dispositivos residenciais.
com a rede, especificamente a internet [1]. Logo, este projeto tem por finalidade o desenvolvimento de um
Uma residência é um local que possui um enorme potencial Sistema de automação residencial sem fio por comando de voz
de ser automatizado. A automação residencial foi uma destinado a controle de tomadas e lâmpadas da residência a
consequência da IoT com o intuito de controlar e monitorar os partir de um smatphone.
sistemas domésticos. Diversos sistemas de automação podem Este projeto tem por finalidades específicas desenvolver
ser aplicados em casas simples até as mais sofisticadas uma pesquisa sobre automação residencial, mostrando o
mansões, tais como: iluminação, climatização, áudio e vídeo, panorama mundial e brasileiro, desenvolver a programação de
biometria, irrigação, câmeras de segurança, eletrodomésticos, um microcontrolador NodeMCU, desenvolver um software de
garagem, etc. [2]. aplicação de um smartphone Android através da plataforma
As casas inteligentes são realidade nos países Blynk, desenvolver um sistema de reconhecimento de voz
desenvolvidos, principalmente na Alemanha e EUA. Elas baseado no aplicativo TASKER, e integrar os sistemas
contribuem para a qualidade de vida dos seus usuários, \desenvolvidos para compor um sistema de automação
principalmente os idosos e portadores de necessidades residencial por comando de voz.
especiais, que possuem dificuldade de executar atividades
cotidianas dentro de uma residência, portanto, a automação
viabiliza a realização de atividades, como por exemplo, acender
uma luz, ou abrir uma porta automaticamente, conforme mostra
a figura 1.[3][4][5].
No Brasil esse mercado está em crescimento, no entanto os
produtos são voltados para um público de alto poder aquisitivo
devido aos custos de instalação e manutenção elevados. [2]
A automação residencial vem se desenvolvendo
mundialmente para proporcionar maior economia, comodidade,
Fig. 01. Sistema de Automação Residencial
2

II. BASE TECNOLOGICA “[...] designa o conjunto de dispositivos instalados com o


objetivo de controlar outros dispositivos e sistemas
eletrônicos, integrando-os de forma harmônica, segura e
Este item visa apresentar o tema automação residencial personalizada, aos componentes instalados na habitação.”
descrevendo as tecnologias e ferramentas dentre hardware e
software utilizadas na construção do projeto. Já segundo [14]:
Numa residência existem diversos sistemas com grandes
“ A automação residencial define-se como um complexo de
potenciais de automatização que operam de forma independe. tecnologias que auxiliam na gestão e execução de tarefas
A figura 5 mostra alguma das diversa possibilidades de domésticas diárias e a sua utilização tem a proporcionar um
automação residencial uma casa. maior nível de conforto, comodidade e segurança além de
consumo mais racional e econômico de energia elétrica.”
Tem-se utilizado diversas plataformas para o
desenvolvimento de pesquisa e produtos destinados a Domótica
O objetivo da Automação Residencial ou Domótica, é
[1]-[9], este projeto baseia-se na utilização do microcontrolador fornecer aos usuários meios mais elaborados para controlar uma
NodeMCU, a IDE do Arduino como compilador e aplicativos residência, como por exemplo, desligar uma lâmpada via
Blynk e Tasker como plataformas para smartphones Android internet ou configurar a persiana de um quarto para abrir às
responsáveis pela interface entre o usuário e o sistema. Antes 06h00min.
de tratar das ferramentas usadas para a construção do sistema Outro termo utilizado em literaturas sobre o assunto
se faz necessário entender o que é a Automação Residencial e associado a automação residencial é substituir esse termo por
suas premissas. “casas inteligentes”, que segundo [15] são casas que possuem
características que tornam a vida de quem nelas habitam mais
A. Automação Residencial
simples, envolvendo aspectos como: segurança, economia,
A Automação residencial (em inglês, home automation) ou conforto, praticidade, confiabilidade, gestão de tempo.
Domótica ( em francês, “domotique”, que pode ser A origem da automação residencial no mundo se deu com o
identificada como uma junção das palavras “casa” (Domus) avanço tecnológico e industrial na década de 60, substituindo a
com “automática” (Imotique)) [11][13] são conceitos que de mão de obra humana pelos maquinários, no entanto uma
acordo com [1] : tecnologia muito robusta, repletos de fios, com o passar dos
anos foi desenvolvido um dispositivo chamado CLP

Fig. 02. Sistemas domesticos com potenciais de automatização [12]


3

(controlador Lógico Programável) que conseguia controlar e de cortinas e cenário de iluminação, proporcionando um
comandar maquinas e sistemas industriais. A partir daí a clima de cinema em casa. Piscinas com auto filtragem e auto
automação teve grandes avanços tecnológicos, na década de 70, aquecimento iluminação e efeitos de cascata.
surgiram no EUA, os primeiros módulos inteligentes chamados
X-10 voltados a área residencial. Uma década depois houve a  Utilidades Gerais: Irrigação de jardim, com sensores de
popularização dos computadores pessoais, e passou-se a utilizar humidade. Sistema de aspiração centralizada, varrendo e
os PCs como centrais de atuação, no entanto devido ao alto aspirando o pó de forma automática.
custo, impulsionou-se ao desenvolvimento e fabricação de
dispositivos dedicados a automação residencial.  Banho: Torneira com sistema de detecção de presença,
No início essa tecnologia era voltada a um público alvo de aquecedor de toalha, banheira com controle de temperatura,
alto padrão e ter uma casa integralmente automatizada ainda é quantidade de água, velocidade de jatos, espuma e
algo para poucos, mas isto vem mudando, graças ao surgimento autolimpeza com comandos executados remotamente
maior de fabricantes com sistemas inovadores, os custos estão conforme mostra a figura 3.
reduzindo, sendo criado dispositivos simples com preços
acessíveis como os Sonoff, conforme mostra figura 2, um
interrupitor Wifi, custando no Brasil por volta de R$ 50 reais.

Fig. 4. Smarthydro [17]

Nota-se que várias tecnologias vêm sendo desenvolvidas e


cada vez melhores e a mais aprimoradas, fornecendo a primazia
da automação residencial que é a qualidade de vida.

B. Smartphone
Fig. 3. Interruptor Sonoff [15]
O smartphone (palavra inglesa que significa “telefone
inteligente”) é um celular que combina recursos de
Apesar do desenvolvimento desses dispositivos de baixo custo,
computadores com funcionalidades avançadas que podem ser
a maior variedade de produtos ainda são artigos de luxo. As
estendidas por meio de programas (aplicativos) executados
principais aplicações praticas da automação residencial são na:
pelos seu Sistema Operacional, tais sistemas permitem que
desenvolvedores criem milhares de programas adicionais, com
 Segurança: Com fechaduras com leitor faciais e
diversas utilidades, agregados em lojas online como o Google
biométricos, alarmes, sensores de presença e câmeras de
Play para Android, e a Apple App Store para iOS.
monitoramento a longa distância.
Esses dispositivos possuem características de hardware e
 Iluminação de ambientes: Sistemas de iluminação, software, tais como capacidade de conexão com rede de dados
lâmpadas com acionamento a distância, dimerização de para acesso à internet, telefonia celular com tecnologia 4G,
luzes por tablet ou smartphone, controle de persianas, etc. câmeras de altas resoluções e estabilização ótica, acesso E-mail,
Um exemplo é uma tecnologia israelense cuja técnica redes sociais. Além de contar com com hardware de elevado
modifica a composição molecular do vidro, tornando-o mais processamento gráfico capaz de executar aplicativos em 3D,
claro ou mais escuro de acordo com o desejo do usuário. ecrãs 4k ou UltraHD, sensores biométricos, reconhecimento de
Dispensando o uso de cortinas, persianas, ou portas opacas. íris ocular e de rosto com tecnologias bem sofisticadas.
C. Microcontrolador
 Climatização: Ar condicionado e aquecedores
controlado em centrais de monitoramento, não necessitando É um pequeno computador em um único circuito integrado
o uso de controle remotos individuais. o qual contém um núcleo de processador, memória e periféricos
programáveis de entrada e saída. A memória de programação
 Acessibilidade: Porta automática, sensores de presença. pode ser RAM, NOR Flash ou PROM, a qual muitas vezes está
Sistema de elevador com reconhecimento biométrico facial. embutida no chip. Tem tamanho reduzido e custo reduzido
comparado aos microprocessadores de computador pessoal.
 Entretenimento: Sistema de sonorização ambiente, tornam-se econômicos para controlar digitalmente dispositivos
equipamentos audiovisuais retrateis, sistema automatizado e processos. O seu consumo de energia é relativamente baixo,
4

na cada de miliwatts e possui capacidade de entrar em modo de para as mais diversas funções. Ex: Shield Relé; WiFi; sensores
espera. . Eles são usados em produtos e dispositivos (temperatura, umidade, etc.), figura 5 mostram outros exemplos
automatizados, como os sistemas de controle de automóvel, de Shields para Arduino.
controle remoto, eletrodomésticos, brinquedos, sistemas
médicos implantáveis, dentre outros sistemas embarcados.
D. Arduino

O Arduino é um kit de desenvolvimento e prototipagem


eletrônica composto pelo hardware que é constituído por uma
placa de circuito impresso, com um microcontrolador e
software (IDE Arduino) livre para programação. Com um
algoritmo gravado no hardware é possível funcionar circuitos e
Fig. 6. Exemplo de Shields [11]
dispositivos externos, que podem ser sensores, atuadores,
motores, leds, e as Shields que esse serão detalhado a seguir. ESP8266

E. IDE Arduino O ESP8266 é um microcontrolador fabricado pela empresa


O Arduino IDE é o ambiente de desenvolvimento de Espressif Systems. Ele possui vários recursos, o mais
importante é o sistema de comunicação Wifi integrado, o que é
programação do Arduino, ou seja, um compilador, utiliza língua
torna diferente dos demais microcontroladores. Além do baixo
C e C++, com uma interface gráfica construída em Java. A
custo , geralmente na faixa entre 20 a 50 reais, ele tem pequenas
função da IDE é permitir o desenvolvimento de um software e
dimensões, cabendo na palma da mão e tem alto poder de
enviar o código ao hardware para ser executado, conforme processamento, o tornando mais poderoso do que o famoso
mostra a figura 5, essa comunicação geralmente é feita via USB. Arduino. No geral as especificações do ESP8266 estão descritas
na tabela 01.

TABELA I
ESPECIFICAÇÕES GERAIS DO ESP8266
Voltagem 3,3V
Consumo de Corrente 10µA
Memória Flash 16MB (512k normal)
Processador Tensilica L106 32bit
Velocidade do Processador 80-160MHz
RAM 32k+80k
GPIOs 17(multiplexada com outras funções
Analogico para Digital 1 entrada com 1024 resolução
Suporte 802.11 (wifi) b/g/n/d/e/i/k/r
Máxima Corrente de conexão TCP 5 mA

Fig. 5. IDE Arduino Esse CI está no mercado desde 2014, tornando pouco o
Ele é um software de aplicação multiplataforma, o que acervo de estudos sobre sua aplicação. Seu fabricante criou 14
significa que é possível programar outros microcontroladores modelos de ESP8266, que podem ser visualizadas na figura 3,
além do Arduino, possui um ambiente de programação de ambos apesar de ter o mesmo processador e modulo wifi
código aberto, gratuito. Além de vir com diversas funções pré- integrado, possuem números de pinos diferentes, capacidade de
memória, espaçamento entre os pinos, velocidade de
definidas facilitando a construção do código, a IDE possui
processamento são outras características que os diferem.
bibliotecas para controle de periféricos.
O microcontrolador NodeMCU utilizado nesse projeto tem
linguagem de programação padrão a Lua, utilizando o
compilador, ou seja, o ambiente de desenvolvimento SDK Lua.
Porém é possível utilizar a IDE Arduino como ambiente de
desenvolvimento, visto que ele é multiplataformas, utilizando a
linguagem C++, para isso é necessário realizar algumas
configurações adicionais na IDE descrita em (13).

F. Shields do Arduino
São módulos ou periféricos do Arduino usados para
interligar, enviar, receber comandos da placa principal do
Arduino ou microcontrolador compatível, agregando
funcionalidades ao sistema. Existem diversos tipos de Shield, Fig. 7. As 14 versões de ESP8266 + ESP-WROOM-02
5

G. NodeMCU comunicação com o servidor e processando todos os


É um microcontrolador de baixo custo e pequena dimensão comandos de entrada e saída.
que possui um módulo ESP8266 integrado, possibilitando a
comunicação via rede wireless, sobre protocolo Wi-Fi IEE O funcionamento da Blynk pode se resumir da seguinte
802.11b/g/n . Foi criado em 2014, possui alimentação de 5v via forma:
“Agora imagine: toda vez que você pressiona um botão no
conexão USB 2.0 Micro-B, com 11 pinos de entrada e saídas aplicativo Blynk, a mensagem viaja peça internet até o
digitais que operam com 3,3v e processador ARM de 32 bits. servidor Blynk Cloud, onde magicamente encontra seu
Ele permite a utilização das Shields (módulos ou periféricos) do caminho para o seu hardware. Funciona da mesma maneira
na direção oposta e tudo acontece num piscar de olhos [...]”
Arduino como relé, sensores, que facilitam no desenvolvimento [3]
do projeto.
Os requisitos mínimos para utilizar o Blynk é:
 Plataforma (hardware): Arduino,NodeMCU, ESP8266,
Raspberry Pi dentre outras plataformas que contem na lista
de disposivos suportados pela Blynk.

 Acesso à internet: Para aplicações sem fio, o Blynk


funcionará através da internet, logo, a plataforma deve ter
estar conectado a internet.

 Smartphone: O aplicativo possui uma interface intuitiva,


facilitando o desenvolvimento e funciona em dispositivos
Android e iOS.

 Conta de Usuário: Após a instalação do aplicativo no


smartphone é necessário que o desenvolvedor crie uma
conta de usuário para poder utilizar a plataforma.

Fig. 8. Arquitetura NodeMCU [6]  Biblioteca Blynk: Durante o desenvolvimento no


software na IDE do Arduino será necessário a instalação de
um pacote de bibliotecas da Blynk.
H. Blynk
O Blynk é uma plataforma virtual que integra um aplicativo Para relatar melhor o funcionamento do Blynk serão
com sistema operacional IOS ou Android com um hardware exibidas capturas da tela do smartphone detalhando as
(microcontrolador), que pode ser NodeMCU, ESP8266, ferramentas deste aplicativo.
Arduino, Raspberry Pi, entre outras plataformas de Após a instalação do aplicativo no celular, criar a conta no
desenvolvimento. A plataforma é intuitiva e de fácil Blynk, e criar um novo projeto conforme mostra a figura 8 na
manipulação e exige pouco conhecimento de programação [2]. figura esquerda, será exibida uma mensagem informando o
Auth Token do projeto foi enviado para o E-mail registrado na
Neste projeto o Blynk surgiu da necessidade de se fazer um criação da conta. O Auth Token é uma chave alfanumérica de
aplicativo Android que interagisse com o usuário com a 32 caracteres que possibilita o servidor Blynk consiga
finalidade de controlar a casa, mas sem a necessidade de obter direcionar as informações entre o smartphone e o hardware
profundo conhecimento em linguagem Java e desenvolvimento utilizado. Esta chave é única para cada projeto.
de apk para Android. Desta forma, essa plataforma que foi
projetada para a IoT, podendo controlar um hardware
remotamente, exibindo dados de sensores, armazenando dados,
visualizando, etc. Existem três componentes principais na
plataforma:

 Blynk App - permite criar interfaces incríveis para os


projetos usando vários widgets que o aplicativo fornece.

 Blynk Server - responsável por todas as comunicações


entre o smartphone e o hardware. Pode-se usar nosso Blynk
Cloud ou executar seu servidor Blynk Privado localmente. É
de código aberto, pode facilmente lidar com milhares de
dispositivos.
Fig. 9. Telas do Blynk (Blynk)
 Bibliotecas Blynk – Possui bibliotecas para todas as
plataformas de hardware populares permitindo a Com o projeto criado e “vazio” deve-se segurar e arrastar a
tela da direita para esquerda até aparecer a tela de widget box
6

como mostra a figura 8 na tela central, ele permite que adicionar pasta de instalação da IDE do Arduino para vincular o Blynk a
widgets a interface do seu projeto. Widgets são componentes de biblioteca de hardware que o Arduino trabalha. Nela contém
interface gráfica. Rolando a barra de rolagem para ver todos os informações Assembly ou linguagem raiz da máquina
widgets disponíveis, eles estarão divididos em categorias: convertida em funções pré-definidas, facilitando a escrita do
controllers, displays, interface, notifications, other, código. Logo mais no DESENVOLVIEMNTO DO PROJETO
smartphone sensors. Para adicionar um widget a tela principal abordaremos funções pré-definidas do Blynk usadas no projeto
no projeto basta clicar sobre o widget escolhido e o mesmo será que o Arduino só entende devido a instalação dessas
inserido na interface de comando. Para duplicar o widget basta bibliotecas. Entretanto, para se fazer o uso dessas bibliotecas é
pressiona-lo, aguardando a habilitação da opção conforme necessário fazer o download do pacote de bibliotecas acessando
o site oficial [10], na parte superior clique em “GETTING
mostra a figura 8 no print da direita. Caso deseje deletar um
STARTED” e em seguida clique em “DOWNLOAD BLYNK
widget, basta pressiona-lo e segura-lo até aparecer a opção no
LIBRARY” conforme mostra a figura 10.
topo da tela conforme figura 8 no lado direito, então basta
arrastar o widget e soltar na opção da lixeira.
Na mesma tela que adiciona os widget existe uma bateria que
está escrito “your energy balance”, essa bateria mostra a
quantidade de pontos que podem ser usados para adicionar
widget. Cada widget consome uma quantidade de energia, o
aplicativo dispões ao desenvolvedor na versão gratuita do
Blynk 2000 pontos de energia. Cada widget gasta entre 100 a
4900 pontos de energia. Para adquirir mais pontos é necessário
compra-los, conforme mostra a figura 9 no lado esquerdo.
Fig. 11. Download do pacote de biblioteca Blynk

Após o download, faz-se a descompactação do arquivo,


gerando as pastas “libraries” e “tolls”. Deve-se copiar
primeiramente os arquivos dentro desta pasta “libraries”.
Quando o Arduino é instalado no Windows, haverá uma pasta
chamada “Arduino” dentro da pasta “Meus Documentos”,
dentro dela haverá outra pasta chamada “libraries” conforme
mostra a figura 11.

Fig.10. Adição de energia no Blynk

É importante salientar que quando o Blynk foi lançado, não


havia limite de energia, entretanto, com a evolução do Fig. 12.: Pasta Libraries para instalação das bibliotecas do Blynk
aplicativo, seus desenvolvedores acharam necessário Por fim colar os arquivos copiados dentro da pasta
implementar este limite com a finalidade de arrecadar fundos “libraries” que foi descompactado da Blynk dentro desta pasta.
para melhorias da plataforma através da opção de venda de Confira se os arquivos estão sendo transferidos para as pastas
packs de energia. Para o desenvolvimento deste projeto foi feita corretas, caso haja qualquer erro, o Blynk não funcionará.
a compra de 28000 pontos. Em seguida, a pasta “Tools” que foi criada na
Após a implementação dos widget, é necessário configurar descompactação deverá ser copiado seu conteúdo e colado em
qual o pino do hardware que esse widget vai controlar, e como outra pasta “tools” localizada na pasta de instalação da IDE do
será esse controle, cada widget tem função específica, o botão Arduino, conforme mostra a figura 12.
por exemplo, visualizado na figura 9 (central) pode ser
acionado como push ou switch, se ele será acionado em nível
alto ou nível baixo, dentre outras funções. Mais detalhes sobre
as funções do widget serão relatados no item
DESENVOLVIMENTO DO PROJETO, onde serão mostradas
as configurações usadas em cada widget.
Após construção da interface no aplicativo Blynk é necessário
desenvolver o algoritmo que será colocado no hardware através
do software IDE do Arduino, para isso se faz necessário a Fig. 13. Pasta Tools da IDE do Arduino
instalação do pacote de bibliotecas do Blynk na IDE. Essas
bibliotecas nada mais são do que arquivos que são colocados na
7

Para certificar de que as pastas foram colocas nos locais local, evento, gestos, etc.) em perfis definidos pelo usuário. Ele
corretos, abra a IDE do Arduino e siga os passos: custa R$11,99 (Abril/2018), um aplicativo que automatiza
Arquivo>>Exemplos>>Blynk. Se encontrar o exemplo Blynk diversas funcionalidades básicas até as mais complexas, através
então o procedimento foi feito de forma correta. Conforme de uma interface simples, ele controla o dispositivo sem a
mostra a figura 13. necessidade de root ou uma tela inicial especial. Apesar de ser
um aplicativo pago ele contém diversos recursos que valem a
pena o preço investido na sua aquisição. Existem diversos
tutoriais no Youtube que demonstram o funcionamento desse
aplicativo. Ele foi a solução para integrar o comando de voz ao
Blynk, solução similar foi demonstrada em [12].

III. ESTRUTURA DO SISTEMA


A. Sistema Proposto
Controlar iluminação e tomadas de uma residência através
do microcontrolador NodeMCU acoplado a Shields¹ de relé. Os
hardwares seriam controlados via comunicação Wi-fi por meio
de um smartphone Android através do aplicativo Blynk, e com
suporte do aplicativo Tasker para a execução de tarefas por
comando de voz, conforme mostra a figura.

NodeMCU

Fig. 14. Verificação da instalação das Bibliotecas

Por fim, acessando o menu “Ferramentas” certifica-se de que


aparece as opções conforme imagem 14. Fig. 16: Diagrama geral do sistema proposto

O protótipo demonstrativo será composto por 3 cargas, 2


lâmpadas e 1 ar-condicionado, no entanto o sistema pode ser
incrementado até 11 cargas, que é capacidade de pinos de
entrada e saída do NodeMCU.

IV. DESENVOLVIMENTO DO PROJETO


A. Construção do algoritmo do sistema
Essa etapa visa retratar os métodos utilizados, contendo sua
descrição e resultados esperados durante o desenvolvimento do
projeto. A ideia inicial era utilizar ao Arduino como
microcontrolador, no entanto seria necessário acoplar uma
Shield wifi, e conhecendo os módulos da família ESP8266
descobriu-se o microcontrolador NodeMCU, e visto que ele
Fig. 15. Verificação das bibliotecas na IDE Arduino
além de ter o módulo wifi integrado, ele é um microcontrolador
mais barato e de menor dimensão que ao Arduino e pode-se usar
Caso as ferramentas Blynk não tenha aparecido na aba das a IDE do Arduino para o desenvolvimento do seu algoritmo,
ferramentas, é necessário conferir se copiou as pastas nos locais vale ressaltar que as imagens dos códigos apresentados nesse
corretos. Após esse procedimento, basta construir o código, tópico são de capturas da tela da IDE do Arduino do Algoritmo
compilar no hardware e rodar. final do projeto. A programação do NodeMCU foi feita baseada
I. Tasker na linguagem C++ e usando o compilador IDE do Arduino. Para
isso foi necessário a instalação de bibliotecas do NodeMCU e
O Tasker é um aplicativo para smartphone Android que
do Blynk. Ao criar um projeto na IDE, foi usado o código
executa tarefas com base em contextos (aplicativo, hora, data,
8

exemplo para o Blynk usando hardware NodeMCU, para ter Este mapeamento define que a variável correspondente ao
acesso a esse código basta seguir o caminho no IDE do seu pino, por exemplo, a variável D0 está vinculada ao pino 16
Arduino: Arquivo >> Exemplos >> Blynk >> Boards_WiFi>> do NodeMCU.
NodeMCU. Ao ser criado esse projeto exemplo já terá o Em seguida foram definidas as cargas e quais pinos do
formato padrão do programa, contendo as bibliotecas da Blynk microcontrolador essas cargas seriam controladas, conforme
e do NodeMCU conforme mostra a figura 17. mostra a figura 19. Nesse protótipo usou apenas 3 cargas, mas
poderia ser incrementado de acordo com a necessidade do
usuário, essa mudança resultaria no acréscimo de código do
algoritmo e layout da interface do Blynk.

Fig. 19. Definições de cargas

No código acima foram criadas as variáveis


“LAMPADA_QUARTO”, “LAMPADA_SALA” ,
“AR_CONDICIONADO”, e foram definidas nos respectivos
pinos do microcontrolador D0, D1 e D2. As variáveis
“led0(V0)” e “led2(V2)” são variáveis do Blynk, são leds que
acendem na interface gráfica do Blynk. O led(V0) indica o
Fig 17: Código exemplo Blynk com NodeMCU (IDE Arduino) estado da lâmpada do quarto, e o led2(V2) do Ar condicionado,
esses indicadores servem como um sinal de que o sinal
Para o desenvolvimento do algoritmo foi necessário
acionado na tela do celular chegou ao microcontrolador e o
entender como o Arduino funcionava, como fazia ele
microcontrolador mandou um sinal de retorno.
acionar/desacionar pinos e como ele iria interagir com o Blynk.
Agora se faz necessário entender um pouco de como
Todo material de apoio está disponibilizado no próprio site do
funciona o Blynk. Os widgets criados são vinculados aos pinos
Arduino e Blynk [6][3], mas foi utilizado algumas apostilas de
digitais do hardware selecionado, ou seja, do NodeMCU
como utilizar o Arduino.
(D0,D1,D2..D10). Conforme mostra a figura 20, o widget botão
Como visto na figura 17, é necessário colocar o Auth Token
que aciona a lâmpada do quarto funciona como switch, ou seja,
do projeto criado no Blynk, e colocar os dados de login e senha
ao apertar o botão quarto, caracterizado pela cor verde, ela sai
da rede Wifi que o módulo NodeMCU ficará instalado. Não
do estado OFF e vai para estado ON, e permanece ligado até
deve-se excluir nenhum comando deste código exemplo,
que seja apertado novamente, voltando ao estado OFF,
apenas incrementar, caso algum desses comandos sejam
desligando a lâmpada do quarto.
excluídos ou alterados de forma incorreta o microcontrolador
não se comunicará com o Smartphone.
O NodeMCU é dotado de 11 pinos de entrada e saída, esses
pinos foram definidos no algoritmo para facilitar ao logo do
programa. O mapeamento dos pinos pode ser visto na figura 18.

Fig. 20. Funcionamento do Widget do Blynk

Note que o pino selecionado para comandar a lâmpada do


quarto é o pino V1. O Blynk trabalha com pinos virtuais (V0,
V1, V2..V127), que são variáveis livres que podem serem
Fig. 18. Mapeamento dos pinos NodeMCU
usadas como intermediadoras de informações entre o hardware
e o aplicativo. No Algoritmo ele lê essa informação dos pinos
virtuais e realiza os comandos nos pinos reais do
9

microcontrolador, o código da leitura pode ser visualizado na


figura 21.

Fig. 21. Código leitura pino virtual


Fig. 23. Código Void Zerar

O comando para leitura dos pinos virtuais devem utilizar o Para fazer a leitura dos widgets modos do Blynk na IDE do
padrão da figura 21, o comando “int buttonState= Arduino é necessário configurar no Blynk, conforme mostra a
param.asInt();” cria a variável “buttonState” que receberá o figura 24, o pino virtual que a variável modo estará vinculada e
valor do pino V1, onde se o valor do sinal for 1, ou seja, ele utiliza-se uma linguagem especifica da própria Blynk, conforme
deverá escrever no pino D0 que corresponde ao pino real no mostra a figura 25. A leitura é feita a partir de um pino virtual
microcontrolador, que a lâmpada do quarto acenda. E o V10, as informações atribuídas ao pino V10 está no comando
comando “led0.on();” faz com que o LED verde, criado na “param.asInt()”.
figura 19, que fica acima do botão de acionar lâmpada do
quarto, acenda na interface gráfica do Blynk. E caso o sinal seja
0, o comando é para a lâmpada desligar e o LED verde fique
apagado. Esse mesmo comando serve para acionar e desacionar
qualquer carga a partir de um widget de botão.
Conforme a figura 22 mostra o “void setup” ou seja, a
função principal ficou responsável por definir o estado e função
dos pinos do microcontrolador. A instrução pinMode
(D0,OUTPUT) por exemplo indica que o pino D0 tem a função
de saída, ou seja, acionar uma carga, neste caso a lâmpada da
sala.

Fig. 24. Tela de configuração dos modos

Utilizou-se o switch case para acionar definir o modo


selecionado. Foram colocados dois modos, podendo ser
alterado de acordo com a necessidade do projeto.

Fig. 22. Código do void setup

Como pode-se notar o Blynk possui um código bem especifico


que gerou dificuldade para a construção e funcionamento
correto do algoritmo, principalmente para ler os dados do
aplicativo e manter essa comunicação entre o aplicativo e o
Fig. 25. Código de acionamento do modo cinema e Silencioso
hardware estável. Para inicializar ao software o void setup
aciona outra função, o void zerar, visualizado na figura 23, que A ideia dos modos é um atalho para cenários pré-definidos, o
por sua vez desliga todas as cargas, e mantem os pinos virtuais modo cinema seria para assistir o filme na sala, para isso seria
desativados também.
10

zerado todas as cargas elétricas da casa, e permaneceriam criação do perfil, nomeia-se a tarefa, ao selecionar no “+”
ligadas a iluminação da sala e o ar condicionado. E o modo apresentado na figura 26 (esquerdo), aparecerá uma tela
silencioso seria utilizado para desligar todas as cargas, caso por segundo mostra a figura 26(central), onde deverá selecionar
exemplo o usuário saísse para trabalhar, bastava apertar esse Plugin, ao abrir o plugin selecione AutoVoice e em seguida
modo, economizando o tempo de apertar todos os botões das selecione Recognized, conforme mostra figura 26 (direito).
cargas.

B. Comandos de voz
O sistema de comando de voz é gerenciado pelo aplicativo
Tasker, executando tarefas pré-programadas. As tarefas
possuem perfis que estabelecem condições que servem como
gatilho para que seja executada a tarefa. Como no exemplo da
figura 25.

Fig. 26. Habilitação do AutoVoice no Tasker

Feito isso, retorne a tela de perfil, pressione em cima do


“Estado da Tela Ligado” até aparecer “+” em seguida clique em
Evento>>sensor>>agitar e configure coloque as seguintes
configurações:
1. Eixo: esquerda direita
2. Sensibilidade: Médio
Fig. 25. Interface de configuração do Tasker
3. Duração: Curto
Volte para a tela de perfil, pressione novamente em cima do
Primeiramente é necessário baixar o aplicativo na Play “Estado de tela ligado”, clique em “+” depois app>>Blynk.
Store, ele custa R$11,99. Após sua instalação, necessário Finalizado o perfil inicial, mantendo o dedo pressionado em
configura-lo no Android seguindo esses passos: cima do perfil criado é possível modificar o nome dele, no caso
1. Abra as Configurações da figura 25 foi chamado de “Habilita AutoVoice”.
2. Na seção Notificações Conceda ao Tasker acesso às Após ativar o AutoVoice, o usuário deve falar um comando
para o AutoVoice capture, converta em texto e busque no banco
notificações
e caso haja alguma tarefa programada para o comando falado,
3. Abra a seção Acessibilidade
ele o executará. Na pratica funciona da seguinte forma, fazendo
4. Na aba se Serviços, ative o Tasker
um novo perfil, abra evento>>plugin>>AutoVoice>>
5. Abra a seção Administradores de dispositivo Recognized. Clique no lápis ao lado de configurações, abrirá
6. Habilite o Tasker para administrador do dispositivo uma tela de configuração especifica do AutoVoice, clique em
“The Hard Way”, depois em “Clear Filter” e depois em “Speak
O Tasker funciona de uma forma relativamente simples, é Filter” e fale o comando q deseja executar, por exemplo,
necessário impor uma condição (cenário) para ele fazer alguma acender lâmpada do quarto, dai aparecerá opções de texto,
tarefa, esse cenário fica na aba perfil visualizado na figura 25. conforme mostra na figura 27, selecione a correta e só voltar
No caso acima para ser executada a tarefa chamada de para tela de perfil.
“AutoVoice” o cenário proposto foi que é necessário estar com
a tela ligada, agitar a tela para direita e esquerda e estar com o
aplicativo Blynk aberto. Para configurar essas condições aperte
o “+” na tela de perfis e siga o caminho: Estado>>Tela>>Estado
da Tela, nesta etapa configure em Ligado. Ao concluir a
configuração do estado da tela, volte para a tela de perfil
aparecerá uma opção de adicionar nova tarefa, clique no “+”,
na figura 25, foi nomeada “AutoVoice”, Essa tarefa recebeu
este nome pois ela inicializa um plugin do Tasker chamado
AutoVoice, essa ferramenta ela capta a fala do usuário e
converte em texto. O AutoVoice na versão Free só converte os
primeiros 4 letras da palavra, ou seja se falar “câmera”, ele só
salvará os caracteres “câme”, Na versão paga não tem limite de
caracteres, essa versão foi usada no projeto e custou R$ 9,45. Fig. 27. Configuração do reconhecimento da fala
Para habilitar o AutoVoice, conforme mostra a figura 26 após a
11

Com o perfil configurado, executaremos o acionamento da http://45.55.96.146/23gda022c9d440eb8ffsda539002121c/upd


lâmpada no software Blynk, esse acionamento é feito através de ate/V1?value=1>. Podendo ser visualizado na figura 29.
um link http composto pelo “IP da Cloud Blynk / authToken /
Comando para ligar ou desligar pino”. Como por exemplo: : As falas do usuário foram configuradas seguindo um padrão da
<http://45.55.96.146/23gda022c9d440eb8ffsda539002121c/u seguinte forma sequencial:
pdate/V1?value=0>. Logo o:
carga + (do/da) + cômodo + comando
IP da Cloud Blynk = http://45.55.96.146/
AuthToken: 23gda022c9d440eb8ffsda539002121c ou seja, para ligar uma lâmpada do quarto deve-se falar:
Comando: update/V1?value=0 “Lâmpada do quarto ligar”. É importante frisar que as palavras
faladas devem estar no catalogo de palavras chaves, mostrados
O IP foi obtido através do teste de ping feito no Prompt de na Tabela II, para que o sistema funcione, não deve-se usar
Comando do Windows com o link da cloud Blynk: palavras sinônimas tais como acender=ligar, apagar=desligar,
<http://cloud.Blynk.cc>. obtendo o IP: 45.55.96.146, conforme luz=lâmpada, pois o sistema não reconhece esses sinônimos. E
mostra a figura 28. a sequência das palavras devem seguir entre
comando+carga+comodo, pois caso essa ordem seja invertida o
sistema de voz não funcionará corretamente.

TABELA II
PALAVRAS CHAVES PARA COMANDO DE VOZ
PALAVRAS CHAVES
Ligar Desligar Ventilador
Lâmpada Ar condicionado Cozinha
Quarto Sala Banheiro

C. Esquema Elétrico
Fig. 28. Descobrindo o IP do Cloud Blynk

O authToken é o mesmo colocado no algoritmo da IDE do


Arduino. E o comando de ligar e desligar tem o seguinte Padrão:
“update/V1?value=0”, onde V1 é o pino virtual 1 e terá valor 0.
A configuração no Tasker é inserida da seguinte maneira. Na
aba superior tarefa, clique no “+” para adicionar uma nova
tarefa, insira um nome para essa tarefa, no projeto foi nomeado
“acender lâmpada” conforme mostra a figura 25(central). Para
adicionar uma tarefa clique novamente no “+” depois selecione
alerta>>dizer e no campo texto digite “Ligando a lâmpada
senhor Matheus” conforme mostra a figura 29 (lado esquerdo).

Fig. 29. Configuração Http para acionar lâmpada

Para adicionar o comando http, basta adicionar uma nova tarefa Fig 30. Diagrama Elétrico do projeto
clicando no “+” depois selecione rede>>obter http e no campo
“servidor:porta” digite o http correspondente ao comando de O sistema é composto pelo NodeMCU, uma fonte de
acender lâmpada, que nesse projeto foi: alimentação de 5v, pode ser um carregador de celular com saída
USB Mini tipo B, que é ligado numa Shield Relé, que por sua
12

vez é ligada nas cargas (lâmpada, ventilador, ar condicionado, oportunidades para futuras pesquisas que possam trabalhar com
etc). a plataforma Blynk ou desenvolver um sistema por comando de
voz através do Tasker. O sistema desenvolvido neste trabalho
D. Analise de Custo está aberto a melhorias e ampliação das funcionalidades.s
O desafio desse projeto será integrar com outros
O custo destacado nesse tópico está relacionado ao material
microcontroladores num mesmo aplicativo Blynk e adicionar
necessário para o desenvolvimento do projeto, visto que
sistemas de vídeo e controle remoto universal conseguindo
algumas peças não foram utilizadas. Esse projeto fomenta o
alterar canais, volume de tv, som, e temperatura do ar
interesse em desenvolver pesquisas nessa área da Domótica
podendo ser caracterizado como sendo uma opção de condicionado, e controle do portão de uma garagem tornando o
automação de baixo custo. A tabela 2 detalha os custos sistema residencial cada vez mais automatizado e integrado
envolvidos no projeto. num único sistema para que os usuários possam usufruir de
TABELA III conforto, segurança e acessibilidade.
ANALISE DE CUSTO PARA DESENVOLVIMENTO
Item Descrição Data de compra Valor
VI. REFERÊNCIAS
01 Kit Arduino 21.12.2017 R$ 151,22
02 Blynk (28000 Energy) 05.01.2018 R$ 69,99
03 Tasker (PlayStore) 07.01.2018 R$ 11,99 [1] CARVALHO, G. B. Automação Residencial na
04 AutoVoice (PlayStore) 30.03.2018 R$ 9,45
contrução civil. TCC. UEG. Anápolis, 2015.
Total R$ 242,65
¹O kit de Arduino adquirido para o desenvolvimento contem peças não
utilizadas no projeto final, tais como o próprio Arduino Uno, Shields, dentre
outros. [2] DEMÉTRIO, F. G. et Al. Analise e implantação da
Domótica em edifícios residenciais de alto padrão.
Ao analisar os custos para esse projeto fica evidente que os UNIVAP. São José dos Campos. 2016.
preços cobrados em serviços de automação residencial são
oriundos da mão de obra altamente especializada, que custar [3] AARTS, J. HEITKAMP, F. Small Scale Living
pelo menos R$3.000,00 para projetos simples, um sistema (SSL) for the elderly through House Automation
completo custa a partir de R$ 15,000,00, valores bem (Domotica). IEEE, Harderwijk, Netherlands, 2011.
destoantes com o custo de peças e tecnologia.
[4] VERMA, A. K. et al. Multi-Operational Home
V. CONCLUSÃO Automation System Using Iot, An Approach. 8th
IEEE Annual Information Technology, Electronics
O projeto correspondeu aos objetivos propostos, and Mobile Communication Conference (IEMCON),
conseguindo controlar iluminação de uma residência por 2017, pp.305-308.
comando de voz, foi feito um protótipo real com 3 cargas: 2
lâmpadas e 1 ventilador, um sistema que pode ser facilmente [5] MRINAL, M. PRIYANKA, L. Smart Home –
incrementado, possibilitando o controle das cargas por cômodo, Automation and Security System Based on
vinculado a modos de atuação como modo cinema deixando Sensing Mechanism. IEEE, Patil College of
apenas a TV e ar condicionado ligado, ou modo silencioso, Engineering Indapur, SPPU,India. 2017
onde são desligadas todas as cargas exceto o ar condicionado,
para que os moradores possam dormir. [6] SILVA, M. C. Internet of thing: Medição de
É importante salientar o custo para a implementação desse temperatura e umidade de um ambiente. IFBA,
sistema que tem no mercado Brasileiro é de valores milionários Salvador, 2017 OLIVEIRA, S. Internet das Coisas
podendo chegar a mais de R$ 200 mil reais. Para o com ESP8266, Arduino e Raspberry Pi. São Paulo:
desenvolvimento foi gasto aproximadamente R$ 250 reais, Novatec, 2017.
conforme relatado na análise de custo, valor que pode vim a
[7] SILVA, B. R. S. Sistema de automação residencial
encarecer na instalação de uma casa, pois haverá custo
de baixo custo para redes sem fio. TCC. UFRS.
adicionais com fios, quantidade de cargas que serão acionadas,
Porto Alegre,2014.
mas nota-se que a justificativa maior para o valor tão alto
cobrado pelas empresas brasileiras para o projeto e instalação [8] SANTOS, D. M. S. et al. Automação R residencial
desses equipamentos é a mão de obra especializada, visto que sem fio de baixo custo. Artigo. UNIVALI. Santa
são tecnologias de alto nível, e existe uma mão de obra muito Catarina, 2014.
restrita.
As principais dificuldades encontradas na realização deste [9] SILVA, R. T. G. et Al. Sistema de automação
projeto foi encontrar materiais que abordassem o conteúdo de residencial de baixo custo utilizando o ESP8266.
programação do Blynk no Brasil, sendo necessário uma Artigo. IFCE. Ceará.
pesquisa mais profunda em sites internacionais, incluindo o
próprio site oficial da Blynk que possui seu conteúdo em inglês. [10] BLYNK. Plataforma de desenvolvimento
Motiva-se através dessa pesquisa estimular o uso de novas Android/NodeMCU. < https://www.Blynk.cc >
tecnologias voltadas a atuação residencial no Brasil, gerando Acessado em: 05 de fevereiro de 2018
13

16 #define D9 3
#define D10 1
[11] ARDUINO. Site Oficial do Arduíno. Disponível 17
em: <http://www.arduino.cc/>. Acesso em: 18 //defines de cargas que serão usadas
16/01/2018. 19 #define LAMPADA_QUARTO D0
20 #define LAMPADA_SALA D1
#define AR_CONDICIONADO D2
[12] YOUTUBE, Como Configurar o comando de voz 21
do tasker com o Blynk, <https://www.youtube.com/ 22 char auth[ ] = "1944ff10c9d440eb8ff19953d002121c";
watch?=0e5Sumc7MbM&t=10s> Acessado em 05 23 char ssid[ ] = "Beeh_Corporation";
de Fevereiro de 2018 24 char pass[ ] = "matheus9841";
25
WidgetLED led0(V0); //register to virtual pin 1
[13] NodeMCU. Configurando a ide do Arduino. 26 WidgetLED led2(V2); //register to virtual pin 1
<http://blogmasterwalkershop.com.br/embarcados/N 27
odeMCU/NodeMCU-configurando-a-ide-do- 28 void setup(){
Serial.begin(9600);
arduino/> , acesso em 28.02.201 29
Blynk.begin(auth, ssid, pass);
30
[14] BOLZANI, C. A. M. Residências Inteligentes: Um 31 //direção dos pinos
curso de Domótica. Ed.1. São Paulo: Editora Livraria 32 pinMode(D0, OUTPUT); //LAMPADA DA SALA
da Física, 2004. 316 p. pinMode(D1, OUTPUT); // LAMPADA DO QUARTO
33
pinMode(D2, OUTPUT); // AR CONDICIONADO
34
[15] ALVES, J. A.; MOTA, J. Casas Inteligentes. 35
Portugal: Editora Edições Centro Atlântico, 2003. 36 //pinos virtuais:
144 p. WidgetLED led0(V0); // led do Blynk da Lampada quarto
38
WidgetLED led2(V2); // Led do Blynk do Ar condicionado
39
[16] Sonoff, disponível em: <http://sonoff.itead.cc/en/>, 40 //inicialização dos motores
acessado em 05.04.2018 zerar();
41
}
42
[17] Disponível em: <
43 void zerar(){
http://www.ihouse.com.br/caracteristicas-da-
44 //desligando cargas
smarthydro.php > Acessado em 06.04.2018 digitalWrite(D0, LOW);
45
digitalWrite(D1, LOW);
46
[18] Disponível em: <http://blogmasterwalkershop.com. digitalWrite(D2, LOW);
br/Blynk/conhecendo-o-Blynk/ > acessado em 47
06.04.2018 48 //apagando leds da interface
49 led0.off();
led2.off();
[19] ANDROIIDPIT, Tutorial Tasker, Disponivel em: 50
<https://www.androidpit.com.br/ 51 //deixando botões da interface em off
forum/645307/tutorial-tasker-1-fundamentos> 52 Blynk.virtualWrite(V1,LOW);
53 Blynk.virtualWrite(V3,LOW);
acessado em 07.04.2018 Blynk.virtualWrite(V4,LOW);
54
}
55
VII. APÊNDICES 56 BLYNK_WRITE(V1){ // LÂMPADA DO QUARTO
57 int buttonState=param.asInt();
if (buttonState==1){
58
CÓDIGO-FONTE DO PROJETO digitalWrite(D0, HIGH);
59 led0.on();
60 }
1 //Programa: HOME SMART - NODEMCU
61 if (buttonState==0){
//Autor: Matheus Carneiro
2 62 digitalWrite(D0, LOW);
3 led0.off();
//Importa as bibliotecas necessárias para o funcionamento do 63 }
4 NodeMCU e da comunicação como blynk
64 }
5 65
#include <ESP8266WiFi.h>
6 66 BLYNK_WRITE(V3){ //LÂMPADA SALA
#include <BlynkSimpleEsp8266.h>
7 int buttonState=param.asInt();
67 if (buttonState==1){
8 //defines - mapeamento de pinos do NodeMCU
68 digitalWrite(D1, HIGH);
9 #define D0 16
69 }
#define D1 5
10 70 if (buttonState==0){
#define D2 4
11 digitalWrite(D1, LOW);
#define D3 0B 71 }
12 #define D4 2
72 }
13 #define D5 14
#define D6 12 73
14 74 BLYNK_WRITE(V4){ // AR CONDICIONADO
#define D7 13
15 int buttonState=param.asInt();
#define D8 15
14

75 if (buttonState==1){
digitalWrite(D2, HIGH);
76
led2.on();
77 }
78 if (buttonState==0){
79 digitalWrite(D2, LOW);
led2.off();
80
}
81 }
82
83 BLYNK_WRITE(V10){ // CONFIGURAÇÃO DOS MODOS
switch (param.asInt())
84
{
85 case 1: { // cinema
86 zerar();
87 Blynk.virtualWrite(V3,HIGH);
Blynk.virtualWrite(V4,HIGH);
88
digitalWrite(D1, HIGH);
89 digitalWrite(D2, HIGH);
90 led2.on();
91 break;
}
92
case 2: { // silencioso
93 zerar();
94 }
95 }
}
96
97
98 void loop() {
99 Blynk.run(); //vai no servidor do blynk ver os comandos a
serem executados
100
}
101
102