Escolar Documentos
Profissional Documentos
Cultura Documentos
Projeto de Automação Residencial Utilizando
Projeto de Automação Residencial Utilizando
Banca Avaliadora:
......................................................................................................................................................
Prof. Marcos Moulin Valencia (orientador)
Engenheiro Eletricista – UFRJ
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campos
......................................................................................................................................................
Prof. Caio Fábio Bernardo Machado
Engenheiro de Controle e Automação – IFF
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campos
......................................................................................................................................................
Prof. Yves Rocha de Salles Lima
Engenheiro de Controle e Automação – IFF
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campos
iv
AGRADECIMENTOS
RESUMO
ABSTRACT
This paper presents the study and implementation of a home automation system using
low-cost hardware and open source software, whose main objective is to provide a basic home
automation system using open source technology. Using Arduino UNO, Raspberry PI 2 and
Mango Automation, it was possible to create a prototype of control and supervision in a
residence, simulating tasks and daily situations of a residence and some implementations
observing the security of the property. The project was implemented and successfully tested in a
model , the tests through the supervisory and physical interface achieved the expected results.
LISTA DE FIGURAS
SUMÁRIO
1- INTRODUÇÃO ....................................................................................................................... 05
2.2 -Software.................................................................................................................................. 17
2.2.1 – Software Livre ........................................................................................................... 17
4 – RESULTADOS E CONCLUSÕES.......................................................................................43
REFERÊNCIA BIBLIOGRÁFICA............................................................................................45
ANEXO A......................................................................................................................................48
iv
ANEXO B......................................................................................................................................50
ANEXO C......................................................................................................................................54
ANEXO D......................................................................................................................................60
ANEXO E......................................................................................................................................69
5
1 INTRODUÇÃO
1.1 Histórico
1.2 Contextualização
Uma matéria publicada no site da revista Exame, em abril de 2011, corrobora essa
afirmação. Com o título de: “Serviço automatiza casa por R$ 8 mil”, a matéria mostra que, por
esse valor, é possível adquirir um pacote básico, capaz de automatizar iluminação, ar-
condicionado, cortinas e eletrônicos em geral.
Esse custo não é elevado apenas no Brasil, ou em países menos desenvolvidos, segundo
dados disponibilizados pela FIXR (2013), site norte americano que conecta empresas com
consumidores que procuram os seus serviços, o custo para uma automatização residencial pode
variar, de 5 a 15 mil dólares, em média (ALHO; SEPULVEDA, 2013).
Além disso, a falta de padronização e uniformização de protocolos de comunicação para
os sistemas de automação residencial é, frequentemente, um problema para os técnicos
envolvidos na concepção e projeto dessas instalações, especialmente quando o sistema será
instalado num edifício ou residência cuja a infraestrutura de dutos não é adequada para suportar
esse nível de automação (MAINARDI, 2005).
Neste sentido, diversas empresas buscam minimizar esse impacto sobre seus produtos
através do uso de tecnologias de código aberto, cujas licenças são distribuídas de forma gratuita.
1.3 Justificativa
1.4 Objetivo
Neste projeto será utilizado o computador de baixo custo Raspberry PI 2, fazendo uso do
sistema operacional de código aberto Raspbian. Neste sistema operacional será instalado o
supervisório open source Mango Automation, que irá se comunicar com a plataforma de
prototipagem Arduino. O projeto será implementado numa maquete de uma casa, onde alguns
LED’s simularão lâmpadas, um sensor de presença acionará um buzzer ao ser atuado, um sensor
de temperatura irá indicar a temperatura do ambiente através do supervisório e um sensor de
luminosidade externo irá acender um LED ao ser atuado.
8
2 REVISÃO BIBLIOGRÁFICA
2.1 Hardware
O termo hardware livre é utilizado para descrever placas e circuitos eletrônicos que,
assim como o software livre, podem ser estudados, modificados e redistribuídos livremente,
desde que dentro dos parâmetros previstos em lei (MAKE, 2007).
Corroborando esta ideia, Pomerantz (2000) afirma que, um hardware pode ser
considerado livre caso possua uma licença que garanta: i) a permissão para a livre redistribuição,
tanto do seu código fonte quanto de outros hardwares baseados neste primeiro, e ii) o direito de
criar obras derivadas baseadas no código fonte deste hardware e distribuí-las sob a mesma
licença.
Com intuito de desenvolver um sistema eficiente e de baixo custo, optou – se pela
utilização de hardwares livres que possuem histórico de sucesso em projetos similares.
9
2.1.2 Microcontrolador
Fonte: Atmel
2.1.3.1 Arduino
O Arduino é capaz de perceber o ambiente a sua volta e interagir com o mesmo, através
do uso de sensores, controle de luzes, motores, e outros mecanismos. Sua programação é feita
utilizando-se a linguagem C, e o código é embutido no microcontrolador com o auxílio de uma
IDE (ARDUINO, 2013).
Os projetos desenvolvidos com o Arduino podem ser independentes, isto é, terem o seu
funcionamento autônomo, ou eles também podem se comunicar com um software que esteja em
execução em um computador, o qual recebe o nome de servidor (ARDUINO, 2013).
Outro fato interessante acerca do Arduino é que suas placas podem ser construídas em
casa, já que todos os mapas de seus circuitos encontram-se disponíveis gratuitamente para
download. Assim, qualquer um que deseje se aventurar na construção de seu próprio Arduino,
basta ter em mãos os componentes necessários e conhecer um pouco de eletrônica para começar
(ARDUINO, 2013).
A plataforma Arduino possui diferentes versões, sendo que a versão utilizada no protótipo
é denominada Arduino UNO.
O Arduino Uno foi desenvolvido e baseado no microcontrolador ATmega328P, ele possui
14 portas de entrada e saída, das quais 6 podem ser utilizadas como saída PWM, 6 entradas
analógicas, um pequeno ressoador cerâmico de 16 MHz, uma conexão USB, um conector de
alimentação, uma conexão ICSP, e um botão de reset. (ARDUINO, 2013).
O Arduino Uno difere de todas as placas antecessoras por não utilizar o chip FTDI para
conversão do sinal serial. Utiliza no seu lugar um Atmega8U2 programado como conversor de
USB para serial (ARDUINO, 2013).
12
A plataforma Arduino UNO foi escolhida para o projeto devido a sua facilidade de
integração com os demais periféricos, ao número de entradas e saídas correspondentes a
necessidade e a possibilidade de integração com um sistema de supervisão e controle.
Fonte: Autores
2.1.4 Raspberry PI 2
Figura 3: Raspberry PI 2
Fonte: Autores
2.1.5 Sensores
Sensores são dispositivos sensíveis a alguma forma de energia do ambiente, que pode ser
luminosa, térmica, cinética, entre outras, relacionando informações sobre uma grandeza física que
precisa ser medida, como: temperatura, pressão, velocidade, corrente, aceleração, posição, entre
outros.
Um sensor nem sempre possui as características elétricas necessárias para ser utilizado em
um sistema de controle. Normalmente o sinal de saída deve ser manipulado antes da sua leitura
no sistema de controle. Isso geralmente é realizado com um circuito de interface para produção
de um sinal que possa ser lido (WENDLING, 2010).
Fonte: Autores
Foi utilizado um sensor do tipo LDR (Light Dependent Resistor), que em português
significa resistência dependente de luz. Assim como seu próprio nome sugere, é uma resistência
capaz de variar de acordo com a quantidade de luz que lhe é incidida, possibilitando, com a
programação adequada, o acendimento de luzes de maneira autônoma, quando o ambiente estiver
mais escuro (MARINHO 2012).
Fonte: Autores
15
Fonte: Autor
2.1.6 LED
Figura 7: LED
Fonte: Autores
2.1.7 Buzzer
Buzzer é um dispositivo de áudio que pode ser mecânico, eletrônico ou piezo elétrico.
Consiste num pequeno alto-falante capaz de emitir sons em diversas frequências. O buzzer é
normalmente utilizado em projetos que necessitam de avisos sonoros, relógios com alarme, e até
para reproduzir músicas.
Ao ser alimentado com uma fonte de sinal, o buzzer vibra da mesma frequência recebida,
funcionando como uma sirene ou alto-falante.
Existem várias versões e tamanhos. Todos os dispositivos sonoros de alarmes (como os de
automóvel) usam um buzzer para o som. Sua vantagem em relação a alto-falantes comuns é que
consome pouca energia em relação à potência sonora, sendo facilmente alimentado com pequenas
baterias.
17
Figura 8: Buzzer
Fonte: Autores
2.2 Software
2.2.2 IDE
a placa Arduino Uno em poucos cliques. Com isso não há necessidade de editar arquivos fora do
programa ou rodar programas em ambientes de linha de comando. (ARDUINO, 2016).
A ferramenta possui uma biblioteca chamada Wiring aceitando que a programação seja
feita em linguagem C/C++. Isso permite criar com facilidade muitas operações de entrada e saída,
definindo apenas duas funções no pedido para o programa funcional.
setup () - Inserido no inicio, sendo usada para a inicialização da configuração.
loop () - Chamada para repetir o bloco de comandos com a instrução principal do
programa ou até que seja desligada.
A principal finalidade do Arduino IDE é facilitar a programação voltada para
prototipagem, implementação ou emulação do controle de sistemas interativos, a nível doméstico,
comercial ou móvel, da mesma forma que um Controlador Lógico Programável (CLP) controla
sistemas de funcionamento industriais. Sendo possível o envio e recebimento de basicamente
qualquer sistema eletrônico. O software pode ser obtido gratuitamente no portal oficial do
Arduino. Existem versões disponíveis para Windows, MAC, e Linux. No portal também é possível
ter acesso ao código de programação do IDE do Arduino, se o usuário assim desejar.
No software deve-se definir o modelo de plataforma Arduino a ser utilizado, bem como a
porta de comunicação. Os menus disponíveis no software, assim como a descrição dos mesmos,
podem ser vistas em detalhes no manual do fabricante (ARDUINO, 2013).
O fabricante também disponibiliza ao usuário a descrição e a explicação de como utilizar
as funções e instruções necessárias para desenvolver o código na linguagem utilizada pelo IDE
do Arduino (ARDUINO, 2013).
20
Fonte: Autores
evento ocorrer, como exemplo, a solicitação de desligar o computador por parte do usuário
(FACOL, 2016).
2.2.3.1 Raspbian
Este sistema SCADA é um dos sistemas open source mais conhecidos do mundo. É de
origem canadense, possui várias características importantes, é um software “M2M” (Máquina
para Máquina), possui diversos protocolos de comunicação, geração de gráficos de tendências,
históricos, alarmes, construtor de telas é todo baseado na WEB, pode ser acessado por um
browser e pode visualizar e controlar equipamentos dos mais variados processos, seja local ou à
distância.
O Mango Automation é executado a partir do Apache TomCat, que consiste num servidor
Web open source utilizado em mais de 70% dos servidores do mundo.
Optou-se pela utilização do Mango Automation, pois foi o sistema supervisão que
apresentou uma maior facilidade de instalação no Raspbian. O ScadaBR é basicamente uma
23
FUNCIONAMENTO
SERVIDOR WEB
O Apache TomCat é um servidor Web livre para aplicações Java desenvolvido pela
Apache Software Foundation, fazendo parte do projeto Apache Jakarta. É considerado um
servidor muito robusto, sendo utilizado inclusive em ambientes de produção.
A utilização da linguagem Java facilitou o desenvolvimento de aplicações para Web
baseados na internet, onde as comunicações são baseadas em pacotes e no relacionamento entre
cliente e servidor. Desta forma, o cliente (navegador Web) solicita uma ação que é enviada ao
servidor (servidor Web), que executa a ação e responde com uma página da Web em HTML
correspondente para o cliente – navegador (RAYSARO, 2009).
24
Fonte: Autores
DATA SOURCE
São as fontes de dados recebidas pelo sistema, ou seja, a configuração dos componentes
que serão fisicamente controlados, constituindo uma parte imprescindível para o funcionamento
do sistema. É constituído por um barramento de comunicação com os mais variados tipos de
protocolos como: Modbus, Http, TCP-IP, ASCII, SQL entre outros.
DATA POINT
às medições, os pontos podem ser representados, por exemplo, como uma leitura de pressão,
temperatura, umidade vazão, etc. Em relação ao controle podem indicar uma condição de ligado e
desligado num determinado equipamento. Sendo assim os data points armazenam todos os
valores de dados que são coletados por um data source (RAYSARO, 2009).
PARTE GRÁFICA
3 DESENVOLVIMENTO DO PROJETO
Neste capitulo serão descritas as etapas do projeto, desde a aquisição dos componentes, a
linguagem de programação utilizada e IDE, até a criação da parte gráfica no supervisório.
Através de conhecimentos básicos em linguagem de programação C, noções de eletrônica básica,
elétrica e sistemas de supervisão, foi possível a criação de um protótipo de controle de automação
residencial de baixo custo.
Para o desenvolvimento do projeto, foram adquiridos os seguintes equipamentos: Arduino
Uno, Raspberry PI 2, sensor de presença PIR, sensor de luminosidade LDR, buzzer, LEDs, fonte
de alimentação, cartão de memória, adaptador USB WI-FI, jumpers e resistores. Uma maquete de
uma casa com quatro cômodos servirá de exemplo de implementação do sistema proposto.
Após a conclusão do projeto, o protótipo permitirá ao usuário realizar o controle e
supervisão de algumas tarefas e estados de uma residência através do supervisório Mango
Automation, que poderá ser acessado através de um browser conectado à intranet.
Neste tópico serão abordados os procedimentos utilizados para instalação dos softwares
utilizados neste projeto.
Raspberry PI 2
Teclado USB
Mouse USB
28
Fonte de alimentação de 5V / 2A com conexão micro USB. Lembrando que entrada USB
do computador suporta no máximo 500 mA, portanto o Raspberry PI 2 não foi conectado
diretamente nesta porta.
Monitor de vídeo com entrada HDMI ou DVI
Cartão Micro SD vazio de pelo menos 8 GB
Computador com entrada para cartão Micro SD
PREPARANDO O CARTÃO SD
Foi utilizado um computador para realizar a formatação do cartão Micro SD que será
utilizado como disco rígido do Raspberry PI 2. Em seguida foi acessado o site
<www.raspberry.org> onde foi feito o download do software Noobs, que conduz de forma
facilitada a instalação do sistema operacional Raspbian no Raspberry PI 2. Após o download,
descompactou-se o arquivo e copiou-se todos os arquivos para o cartão Micro SD.
Após um estudo de mercado, onde foram avaliados os custos e os benefícios dos modelos
mais comuns de Arduino, concluiu-se que para o desenvolvimento deste trabalho a melhor opção
seria a aquisição de um kit básico para desenvolvimento, contendo uma grande variedade de
componentes. Dentre eles, foram testados e utilizados os sensores luminosidade, temperatura e
presença, buzzer e os LEDs.
A partir desse kit, teve início a fase de experimentação e de familiarização com um novo
tipo de desenvolvimento, voltado para plataformas de hardwares e microcontroladores. Para tal,
foi necessária uma revisão dos conceitos básicos de eletrônica, elétrica e um aprimoramento dos
conhecimentos de programação em C com ênfase em microcontroladores.
Optou-se por realizar testes individuais de acionamento de cada componente eletrônico,
através de códigos e esquemas de ligações específicos para cada tipo de componente.
Adotou–se a estratégia de testar o acionamento somente no Arduino e posteriormente
implementar a supervisão e o controle no Mango Automation. Neste tópico serão descritos os
testes realizados com os sensores, os LEDs e o buzzer.
O teste descrito a seguir tem o objetivo de acender um LED através de um botão físico,
ambos componentes estão conectados a uma protoboard e interligados ao Arduino Uno.
Segue o esquema de ligação utilizado:
30
Fonte: Autores
Fonte: Autores
Fonte: Autores
33
Fonte: Autores
O teste deste sensor irá contemplar também o acionamento de um LED, simulando assim
uma situação típica de uma residência onde, na ausência de determinada quantidade de luz, um
sensor aciona uma lâmpada.
Segue o esquema de ligação e o código utilizado:
34
Fonte: Autores
35
Fonte: Autores
Assim como o sensor anterior, o sensor de presença PIR também irá acionar um
componente eletrônico ao ser atuado, trata-se de um buzzer (buzina). Sendo assim, obtém-se
outra situação comum ao sistema de automação residencial, onde a presença indesejada de uma
pessoa dispara um alarme.
36
Fonte: Autores
37
Fonte: Autores
Após todos os componentes eletrônicos do projeto terem sido testados com sucesso,
objetivou – se a comunicação entre o Arduino Uno e o Mango Automation.
38
Essa comunicação foi realizada utilizando-se o protocolo Modbus Serial. Isso foi possível
graças a utilização da biblioteca open-source Modbus-Arduino obtida no endereço
<https://github.com/andresarmento/Modbus-Arduino>.
Primeiramente, efetuou-se o download dos arquivos e os adicionou na pasta de bibliotecas
da IDE do Arduino. Após esse processo, as funções da biblioteca ficaram disponíveis para
utilização.
Para a construção do programa foram adicionados os seguintes includes necessários:
#include <Modbus.h>
#include <ModbusSerial.h>
#include <SoftwareSerial.h>
Nos códigos utilizados na IDE Arduino existe a função setup() que é chamada no início da
programação. É utilizada para inicializar variáveis, definir os modos de entrada ou saída dos
pinos, inicializar bibliotecas etc. Essa função é executada somente uma vez, quando o Arduino é
iniciado ou quando ocorre um reset. Para possibilitar a comunicação com o Mango Automation
foi preciso inserir algumas funções na biblioteca Mudbus-Arduino:
mb.setSlaveId(1)
39
mb.addIsts(Entrada_digital_1)
mb.addCoil(Saída_digital_1)
mb.addHreg(Saída_analógica_1)
mb.addIreg(Entrada_analógica_1)
Após a função setup() foi executada a função loop(), que tem objetivo de repetir-se
continuamente permitindo que o programa funcione dinamicamente, sendo utilizada para
controlar de forma ativa a placa Arduino. Foi necessário adicionar a função da biblioteca
Modbus-Arduino que é responsável por responder as requisições e alterar os registradores se
necessário, funcionando apenas uma vez, no início de cada loop:
mb.task()
Após essas definições, para enviar e receber dados entre o Arduino e o Mango
Automation, foi preciso utilizar as seguintes funções:
parâmetros de acordo com a necessidade. Os procedimentos para criação de data source e data
point estão descritos no Anexo C.
Neste tópico será descrito o procedimento para criação da interface gráfica que será
exibida através do supervisório Mango Automation. Será demonstrada a criação de um botão para
acender e apagar um LED, uma indicação do status desse LED e a indicação da temperatura
aferida pelo sensor DHT11. Apesar do projeto possuir mais representações gráficas, a criação e
configuração destes itens citados abrange o procedimento para a criação dos demais, conforme
será explicado no Anexo D.
Para demonstração do projeto foi utilizada uma maquete de quatro cômodos: quarto,
banheiro, sala e cozinha. Os componentes eletrônicos e suas respectivas funções estão descritas
abaixo:
Os LEDs foram distribuídos pela maquete, sendo que cada LED citado possui
acionamento por um botão físico e por um virtual. Foi implementado um botão virtual que
permite que o usuário escolha se deseja realizar os acionamentos dos LED’s de forma virtual ou
através dos botões físicos. Quando o acionamento físico estiver atuado, não será possível
controlar os LEDs pelo supervisório, da mesma forma que, quando o acionamento virtual estiver
atuado, não será possível controlar os LEDs pelos botões físicos. Também foi implementada a
visualização dos status dos LEDs, obtendo assim a informação de ligado/desligado.
Sensor de Presença – quando atuado, este sensor irá acionar um buzzer, simulando assim
um alarme de presença. O disparo do buzzer pode ser visualizado no supervisório.
Sensor de Temperatura – A indicação de temperatura foi implementada no supervisório.
Sensor de Luminosidade – Quando atuado, aciona um LED na parte externa da maquete,
o status desse LED pode ser observado no supervisório.
Segue a foto com a montagem do circuito na maquete:
41
Figura 19 – Maquete
Fonte: Autores
Custos do Projeto
Cotação do Dólar em 03/06/2016: R$ 3,52
Buzzer 1 R$ 3,00
Fonte: Autores
4 RESULTADOS E CONCLUSÕES
Neste trabalho foi realizada a integração entre hardwares e softwares livres com o
objetivo de desenvolver um protótipo de um sistema de automação residencial básico de baixo
custo. Através da utilização da plataforma de prototipagem Arduino Uno, do sistema de
supervisão Mango Automation e do computador Raspberry PI 2, foi possível realizar o controle e
supervisão de simples tarefas residenciais.
Uma das principais dificuldades encontradas foi a busca por um software de supervisão
que pudesse ser instalado no sistema operacional utilizado. O Mango Automation, assim como o
ScadaBr, necessitam de um servidor Web para funcionar, esse servidor é o TomCat, que é escrito
na linguagem de programação Java. No ScadaBr o TomCat é instalado de forma independente e
por isso apresenta mais problemas de compatibilidade com a máquina virtual Java instalada no
sistema operacional. A versão mais nova do ScadaBr foi instalada com a versão mais nova do
Java e não funcionou. Mesmo instalando versões mais antigas do TomCat e do Java o problema
persistiu. Após algumas pesquisas, foi levantado que o Mango Automation não traria esse tipo de
problemas, visto que já possui o TomCat integrado, eliminando assim o problema de
compatibilidade.
Ocorreram problemas também na comunicação entre o Arduino e o Mango Automation
para definir a velocidade correta de comunicação da porta serial. Como os exemplos da biblioteca
sempre utilizavam a velocidade de 38400, demorou-se um pouco até perceber que o problema
não estava no código e sim na incompatibilidade de comunicar o Arduino e o Mango Automation
com essa velocidade. Após algumas pesquisas, testou-se a velocidade de 9600, onde obteve-se
sucesso.
Outra dificuldade foi entender como o Mango Automation diferencia os dados das
variáveis (Coil, Ists, Ireg e Hreg) quando estes são do mesmo tipo. Após pesquisas, constatou-se
que é preciso configurar no código e no campo Offset dos data points um valor para cada variável
do mesmo tipo, iniciando pelo número zero e crescendo sucessivamente.
Superadas essas dificuldades, os testes realizados na maquete ocorreram sem problemas,
todos as implementações previstas funcionaram como o planejado, não ocorrendo problemas na
comunicação entre os softwares e hardwares utilizados, com todos os comandos e status
funcionando conforme o esperado.
44
Projetos futuros podem ser implementados permitindo que o usuário tenha acesso a
interface gráfica do sistema através da internet e não somente pela intranet. Além disso, outras
funções do Mango Automation podem ser mais exploradas como por exemplo, log de eventos e
scripts. Podem ser implementadas diversas outras funcionalidades como por exemplo, controle de
ar-condicionado, cortinas, irrigação de jardim, nível de caixa d’água, dentre outros. Dependendo
da quantidade de funções adicionais, pode ser necessário substituir o Arduino Uno pelo Arduino
Mega, que possui uma maior capacidade de memória e pinos.
45
REFERÊNCIAS BIBLIOGRÁFICAS
GOMES, José. Automação Industrial com Recurso a Ferramentas “Open Source”. 2014.
135 f. Dissertação (Mestre em Ciências) - Faculdade de Engenharia Universidade do Porto.
Portugal.
TEZA, Vanderlei. Alguns Aspectos sobre a Automação Residencial – Domótica. 2002. 108 f.
Dissertação (Mestre em Ciências) – Universidade Federal de Santa Catarina. Santa Catarina.
SILVA, Armando. Alarme com Ativação por Sensor Presencial e Alerta via SMS. 2013. 67 f.
Dissertação – Faculdade de Tecnologia e Ciências Sociais Aplicadas. Brasília.
LEMES, João. Monitoramento em redes IPv6 com Zabbix e Rasperry PI. 2013. 64 f.
Dissertação – Universidade Tecnológica Federal do Paraná. Curitiba.
46
OLIVEIRA, Jefferson. Linux como Alternativa de Sistema Operacional para Desktops. 2008.
109 f. Dissertação – Universidade do Estado de Minas Gerais. Frutal.
MORAES, Cícero. CASTRUCCI, Plínio – Residências Inteligentes. 2006. 360 f. Brasil. LTC.
MAINARDI, E., BANZI, S., BONFIÈ, M. e BEGHELLI, S., A low-cost Home Automation
System based on Power-Line Communication Links, 22nd International Symposium on
Automation and Robotics in Construction. ISARC 2005 - September 11 mar 2016, Itália.
MONTEIRO, Aline. Serviço Automatiza Casa por R$ 8 mil, 2011. Revista Exame.
Disponível em: <http://exame.abril.com.br/tecnologia/noticias/servico-automatizacasa-por-r-8-
mil>. Acesso em: 16 abr. 2016.
MAKE, Open source Hardware, what is it? Here's a start, 2007. Disponível em
<http://blog.makezine.com/2007/04/23/open-source-Hardware-what/>. Acesso em:
21 mar. 2016.
47
PARK, J. & MACKAY, S. Practical Data Aquisiion for Instrumentation and Control
Systems, Newnes Publications, United Kingdom, 2003.
A instalação do Mango Automation foi realizada através dos passos descritos a seguir:
1- Foi acessado o terminal como usuário administrador, para isso digitou-se:
sudo su
apt-get update
3- Foi verificado se a versão instalada do Java era a JDK 1.8 (versão utilizada pelo Mango
Automation). Para isso, digitou-se:
java – version
4- Foi observado que a versão do Java instalada não era a 1.8. Desta forma, procedeu – se
com a atualização digitando:
5- Após a instalação do Java foi preciso criar uma pasta para instalar o Mango Automation.
Ela foi criada dentro da pasta OPT, para isso digitou-se:
Mkdir /opt/mango
6- Utilizou-se o browser Epiphany presente no Rasbpian para que fosse possível acessar o
endereço <http://infiniteautomation.com/index.php/download-mango> e efetuar o download do
Mango Automation. Após o download, descompactou-se o arquivo obtido em uma pasta chamada
“mango” e o copiou para o caminho /opt.
49
7- Foi executado um scripit para inicialização do Mango Automation. Para isso digitou-se:
./bin/ma/sh start
<http://localhost:8080>
Fonte: Autores
50
Lsusb
Fonte: Autores
Fonte: Autores
ls –la/dev/ttyUSB*
Fonte: Autores
52
6- No Raspbian apenas o usuário root e o grupo dialout tem a permissão para controlar a
porta onde o Arduino está conectado. Sendo assim, foi necessário acrescentar o usuário pi,
que é o usuário padrão do Raspbian e o www-data, que é o usuário do servidor TomCat.
Para isso, digitou – se:
adduser pi dialout
adduser www-data dialout
Fonte: Autores
Foi visualizada a tela a seguir, indicando que o procedimento obteve o resultado esperado.
53
Fonte: Autores
Fonte: Autores
54
Primeiramente criou-se um data source. Para isso foi preciso acessar o menu Data
Sources na barra de menus. Conforme figura abaixo:
Fonte: Autores
Em seguida, foi selecionado o tipo de comunicação que será utilizada pelo data source.
Foi selecionada a Modbus Serial, conforme figura abaixo:
55
Fonte: Autores
4- A velocidade foi configurada com o mesmo valor utilizado no código do Arduino. Nos
testes realizados funcionou apenas na velocidade de 9600 baud.
5- Conforme o código utilizado no Arduino, o padrão de transmissão utilizado é o 8N1, ou
seja, 8 bits de dados, com 1 bit de parada e sem paridade.
6- Foi selecionado o tipo de codificação RTU.
7- Em relação aos outros parâmetros, foi utilizado o valor padrão já disponibilizado pelo
Mango Automation.
Fonte: Autores
Após inserir os dados de configuração do data source deve-se salva-lo, para que o mesmo
seja criado.
Após a criação do data source, foi realizado o procedimento para criação dos data points,
responsáveis por controlar no Mango Automation o envio e recebimento dos dados do Arduino.
Em cada data point foi preciso informar a qual tipo de entrada ou saída ele se refere.
Segue um exemplo de configuração para cada tipo de data point que foi utilizado no projeto,
ressaltando que não foi utilizado saída analógica.
57
Saída Digital
Fonte: Autores
Entrada Analógica
5. Realizada essas configurações, o data point foi salvo para que fosse criado.
Fonte: Autores
Entrada Digital
Fonte: Autores
Após a criação dos datas points foi necessário conectá-los. Para isso, clicou-se nos ícones
destacados na figura abaixo.
Fonte: Autores
Em seguida foi conectado o data source, clicando no ícone destacado na figura abaixo.
Fonte: Autores
60
Fonte: Autores
2- Informou-se um nome para a representação gráfica, e foi anexada uma imagem de uma
planta 3D similar a maquete do projeto. Esta imagem foi utilizada como plano de fundo para as
animações que serão implementadas. Após todas as configurações, clicou-se em “Save”.
61
Fonte: Autores
Para a configuração da representação gráfica foi necessário inserir os datas points, através
dos quais será possível controlar um LED e visualizar informações como status do LED e
temperatura aferida. Segue o procedimento de criação do botão Liga/Desliga do LED.
Fonte: Autores
2- Em seguida, foi selecionado o data point referente ao botão que está sendo configurado,
que no caso é “Lampada_Quarto – Liga_Desliga”.
Conforme imagem:
Fonte: Autores
Fonte: Autores
Fonte: Autores
5- Ao passar o mouse sobre, o botão ele será exibido num formato que permita o controle do
LED, conforme imagem abaixo:
Fonte: Autores
Fonte: Autores
Fonte: Autores
65
Fonte: Autores
Fonte: Autores
66
Fonte: Autores
Fonte: Autores
3- Clicou- se na opção “Exibir texto”, para que seja mostrado o status “Ligado/Desligado”
do LED e escolheu como ele será exibido com status de ligado e desligado.
Fonte: Autores
68
Fonte: Autores
Os passos para configurar a indicação de ativação do buzzer são similares a esse, alterando
apenas o estilo das lâmpadas.
69
int Status_Quarto = 0;
int Status_LED_Quarto = 0;
int Status_sala = 0;
int Status_LED_sala = 0;
int Status_ban = 0;
int Status_LED_ban = 0;
//Configuracao PIR
int pinBuzzer = 6;
int pinSensorPIR = 7;
int valorSensorPIR = 0;
ModbusSerial mb;
long ts;
void setup () {
pinMode(LED_Quarto, OUTPUT);
pinMode(Botao_Quarto, INPUT);
digitalWrite(LED_Quarto, LOW);
pinMode(LED_sala, OUTPUT);
pinMode(Botao_sala, INPUT);
digitalWrite(LED_sala, LOW);
pinMode(LED_ban, OUTPUT);
pinMode(Botao_ban, INPUT);
71
digitalWrite(LED_ban, LOW);
pinMode(LED_LDR, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
pinMode(pinSensorPIR, INPUT);
mb.addIsts(SWITCH_Quarto_ISTS);
mb.addCoil(LAMP_Quarto_COIL);
mb.addCoil(HAB_Quarto_COIL);
mb.addIsts(SWITCH_sala_ISTS);
mb.addCoil(LAMP_sala_COIL);
mb.addCoil(HAB_sala_COIL);
mb.addIsts(SWITCH_ban_ISTS);
mb.addCoil(LAMP_ban_COIL);
mb.addCoil(HAB_ban_COIL);
mb.addIsts(LED_Status_LDR_ISTS);
mb.addIsts(Status_PIR_ISTS);
mb.addIreg(SENSOR_TEMP);
void loop()
{
mb.task();
if (mb.Coil(HAB_sala_COIL) == true)
{
// Recebe o comando virtual do mango e aciona o LED
digitalWrite(LED_sala, mb.Coil(LAMP_sala_COIL));
// Envia para o mango a situaçao que esta o porta do LED
mb.Ists(SWITCH_sala_ISTS, digitalRead(LED_sala));
}
73
if (mb.Coil(HAB_ban_COIL) == true)
{
// Recebe o comando virtual do mango e aciona o LED
digitalWrite(LED_ban, mb.Coil(LAMP_ban_COIL));
// Envia para o mango a situaçao que esta o porta do LED
mb.Ists(SWITCH_ban_ISTS, digitalRead(LED_ban));
}
valorSensorPIR = digitalRead(pinSensorPIR);
if (valorSensorPIR == 1) {
ligaAlarme();
mb.Ists(Status_PIR_ISTS, digitalRead(pinSensorPIR));
}
else
desligaAlarme();
mb.Ists(Status_PIR_ISTS, digitalRead(pinSensorPIR));
76
void ligaAlarme(){
tone(pinBuzzer,1500);
//delay(3000);
desligaAlarme();
}
void desligaAlarme(){
noTone(pinBuzzer);
}