Você está na página 1de 85

BACHARELADO EM ENGENHARIA DE CONTROLE E AUTOMAO

HECTOR ALEXANDRE OLIVEIRA ALVES DA CRUZ


KARLUS DEYVID GOMES VIANA

PROJETO DE AUTOMAO RESIDENCIAL UTILIZANDO


SOFTWARES E HARDWARES LIVRES

Campos dos Goytacazes/RJ


2016
ii

HECTOR ALEXANDRE OLIVEIRA ALVES DA CRUZ


KARLUS DEYVID GOMES VIANA

PROJETO DE AUTOMAO RESIDENCIAL UTILIZANDO


SOFTWARES E HARDWARES LIVRES

Trabalho de concluso de curso apresentado ao


Instituto Federal de Educao, Cincia e Tecnologia
Fluminense como requisito parcial para concluso
do curso de Bacharelado em Engenharia de Controle
e Automao.

Orientador: Prof. Marcos Moulin Valencia.

Campos dos Goytacazes/RJ


2016
iii

HECTOR ALEXANDRE OLIVEIRA ALVES DA CRUZ


KARLUS DEYVID GOMES VIANA

PROJETO DE AUTOMAO RESIDENCIAL UTILIZANDO


SOFTWARES E HARDWARES LIVRES.

Trabalho de concluso de curso apresentado ao


Instituto Federal de Educao, Cincia e Tecnologia
Fluminense como requisito parcial para concluso
do curso de Bacharelado em Engenharia de Controle
e Automao.

Aprovada em 03 de Junho de 2016.

Banca Avaliadora:

......................................................................................................................................................
Prof. Marcos Moulin Valencia (orientador)
Engenheiro Eletricista UFRJ
Instituto Federal de Educao, Cincia e Tecnologia Fluminense/Campos

......................................................................................................................................................
Prof. Caio Fbio Bernardo Machado
Engenheiro de Controle e Automao IFF
Instituto Federal de Educao, Cincia e Tecnologia Fluminense/Campos

......................................................................................................................................................
Prof. Yves Rocha de Salles Lima
Engenheiro de Controle e Automao IFF
Instituto Federal de Educao, Cincia e Tecnologia Fluminense/Campos
iv

AGRADECIMENTOS

Agradecemos primeiramente a Deus, por todas as graas alcanadas e por mais um


objetivo conquistado em nossas vidas.
Agradecemos tambm aos nossos pais Janilda e Roque, Amaro e Cndida, por todos
ensinamentos ao longo da vida, pelo incentivo em momentos desanimo, pelo carinho nos
momentos difceis, pelas alegrias proporcionadas, enfim, por todo suporte necessrio para nossa
formao.
Aos nossos irmos Adriele, Heitor e Lvia, pelo companheirismo dedicado ao longo de
nossas vidas.
A Marcelle e Jerliano, pela pacincia e apoio essenciais prestados em momentos decisivos
da elaborao deste trabalho.
Aos nossos professores ao longo do curso, que sempre se mostraram solcitos a dvidas
mesmo fora dos horrios de aula, e sempre procuraram passar seus ensinamentos da melhor
maneira.
A todos os amigos que dividiram conosco momentos de dificuldades, mas tambm de
alegrias ao longo do curso.
v

RESUMO

Este trabalho apresenta o estudo e a implementao de um sistema de automao


residencial de baixo custo utilizando hardware e software livres, cujo objetivo principal prover
um sistema bsico de automao residencial atravs da tecnologia open source. Utilizando o
Arduino UNO, Raspberry PI 2 e Mango Automation, foi possvel criar um prottipo de controle e
superviso residencial, simulando tarefas e situaes rotineiras de uma residncia e algumas
implementaes visando a segurana do patrimnio. O projeto foi implementado e testado com
sucesso numa maquete, os testes feitos atravs do supervisrio e da interface fsica obtiveram os
resultados esperados.

Palavras-chave: Automao Residencial. Segurana. Arduino. Raspberry PI 2. Mango


Automation. Open Source.
vi

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.

Keyword: Home Automation . Security. Arduino. Raspberry PI 2. Mango Automation.


Open Source.
vii

LISTA DE SIGLAS E SMBOLOS

ARM Advanced RISC Machine


ASCII American Standard Code for Information Interchange
CLP Controlador Lgico Programvel
DHT Humidity and Temperature Sensor
DOS Disk Operating System
DVI Digital Visual Interface
EPROM Erasable Programmable Read-Only Memory
FTDI Future Technology Devices International
GB Gigabyte
GIF Graphics Interchange Format
GPIO General Purpose Input/Output
GUI Graphical User Interface
HD Hard Disk
HDMI High-Definition Multimidia Interface
HTML HyperText Markup Language
ICSP In-Circuit Serial Programming
IDE Integrated Development Environment
JDK Java Development Kit
LDR Light-Dependent Resistor
LED Light Emitting Diode
MHZ Mega-Hertz
PIR Passive Infrared
PWM Pulse Width Modulation
RAM Random Access Memory
RISC Reduced Instruction Set Computer
RTU Remote Terminal Unit
SCADA Supervisory Control and Data Acquisition
SQL Structured Query Language
SRAM Static Random Access Memory
TCP-IP Transmission Control Protocol/Internet Protocol
viii

USB Universal Serial Bus


VDC Voltage Direct Current
WI-FI Wireless Fidelity
ix

LISTA DE FIGURAS

Figura 1: Microcontrolador ATMega 328P ................................................................................... 10


Figura 2: Arduino Uno ................................................................................................................... 12
Figura 3: Raspberry PI 2 ............................................................................................................... 13
Figura 4: Sensor de Temperatura .................................................................................................. 14
Figura 5: Sensor de Luminosidade ................................................................................................ 14
Figura 6: Sensor de Presena ......................................................................................................... 15
Figura 7: LED ................................................................................................................................ 16
Figura 8: Buzzer ............................................................................................................................. 17
Figura 9: IDE Arduino ................................................................................................................... 20
Figura 10: TomCat ......................................................................................................................... 24
Figura 11: Esquema do LED ......................................................................................................... 30
Figura 12: Cdigo do LED ............................................................................................................ 31
Figura 13: Cdigo do Sensor de Temperatura ............................................................................... 32
Figura 14: Esquema do Sensor de Temperatura ............................................................................ 33
Figura 15: Esquema do Sensor de Luminosidade ......................................................................... 34
Figura 16: Cdigo do Sensor de Luminosidade ............................................................................ 35
Figura 17: Cdigo do Sensor de Presena ..................................................................................... 36
Figura 18: Esquema do Sensor de Presena .................................................................................. 37
Figura 19: Maquete........................................................................................................................ 41
Figura 20: Custos do Projeto ......................................................................................................... 42
Figura 21: Tela de Login do Mango Automation .......................................................................... 49
Figura 22: Verificando Conexo ................................................................................................... 50
Figura 23: Nome da Conexo ........................................................................................................ 51
Figura 24: Localizao do Diretrio .............................................................................................. 51
Figura 25: Adicionando Usurios .................................................................................................. 52
Figura 26: Verificando Procedimento ........................................................................................... 53
Figura 27: IDE Instalada................................................................................................................ 53
Figura 28: Acessando o Menu ....................................................................................................... 54
Figura 29: Protocolo de Comunicao .......................................................................................... 55
Figura 30: Finalizao do Data Source ......................................................................................... 56
Figura 31: Criao do Data Point de Sada Digital ....................................................................... 57
Figura 32: Criao do Data Point de Entrega Analgica .............................................................. 58
Figura 33: Criao do Data Point de Entrada Digital ................................................................... 59
Figura 34: Conectando os Data Points .......................................................................................... 59
Figura 35: Conectando o Data Source .......................................................................................... 59
Figura 36: Criao da Representao Grfica ............................................................................... 60
Figura 37: Anexando Imagem ....................................................................................................... 61
Figura 38: Configurao do Tipo de Data Point do Boto do LED .............................................. 62
Figura 39: Selecionando Data Point do Boto do LED ................................................................ 62
Figura 40: Configurao do Boto do LED ................................................................................... 63
Figura 41: Boto de Controle do LED ........................................................................................... 63
Figura 42: Operao do Boto do LED ......................................................................................... 63
Figura 43: Configurao do Tipo de Data Point do Sensor de Temperatura ................................ 64
Figura 44: Selecionando o Data Point do Sensor de Temperatura ............................................... 64
x

Figura 45:Configurao do Termmetro ....................................................................................... 65


Figura 46: Termmetro Configurado ............................................................................................ 65
Figura 47: Configurao do Tipo de Data Point do Status do LED.............................................. 66
Figura 48: Selecionando o Data Point do Status do LED ............................................................. 67
Figura 49:Configuao do Status do LED ..................................................................................... 67
Figura 50: Status do LED Configurado ......................................................................................... 68
ii

SUMRIO

1- INTRODUO ....................................................................................................................... 05

1.1- Histrico ................................................................................................................................. 05


1.2- Contextualizao .................................................................................................................... 05
1.3- Justificativa ............................................................................................................................ 06
1.4 Objetivo ................................................................................................................................ 06
1.5 Objetivo Especfico .............................................................................................................. 07
2 REVISO BIBLIOGRFICA .............................................................................................. 08

2.1 Hardware .............................................................................................................................. 08


2.1.1- Hardware Livre ........................................................................................................... 08

2.1.2 - Microcontrolador ........................................................................................................ 09

2.1.2.1 Microcontrolador ATMega 328P. .......................................................................... 09

2.1.3 Plataforma de Prototipagem ...................................................................................... 10

2.1.3.1 - Arduino .................................................................................................................... 11

2.1.3.1.1 Arduino Uno ........................................................................................................ 11

2.1.4 Raspberry PI 2 ........................................................................................................... 12

2.1.5 Sensores ..................................................................................................................... 13

2.1.5.1 Sensor de Temperatura ........................................................................................... 13

2.1.5.2 Sensor de Luminosidade......................................................................................... 14

2.1.5.3 Sensor de Presena ................................................................................................. 15

2.1.6 - LED ............................................................................................................................ 15

2.1.7 - Buzzer ......................................................................................................................... 16

2.2 -Software.................................................................................................................................. 17
2.2.1 Software Livre ........................................................................................................... 17

2.2.2 - IDE ............................................................................................................................. 17

2.2.2.1 IDE Arduino ........................................................................................................... 18


iii

2.2.3 Sistema Operacional .................................................................................................. 20

2.2.3.1 - Raspbian .................................................................................................................. 21

2.2.4 Sistemas de Superviso ............................................................................................. 21

2.2.4.1 Sistemas SCADA ................................................................................................... 22

2.2.4.1.1 Mango Automation .............................................................................................. 22

2.2.5 Protocolo de Comunicao ........................................................................................ 25

2.2.5.1 Protocolo Modbus ................................................................................................... 26

3- DESENVOLVIMENTO DO PROJETO ........................................................................... 27

3.1 Instalao dos Softwares....................................................................................................... 27


3.1.1 Instalao do Sistema Operacional ............................................................................ 27

3.1.2 Instalao do Mango Automation .............................................................................. 29

3.2 Testes dos Componentes ...................................................................................................... 29


3.2.1 Teste dos LEDs .......................................................................................................... 29

3.2.2 Teste do Sensor de Temperatura ............................................................................... 31

3.2.3 Teste do Sensor de Luminosidade ............................................................................. 33

3.2.4 Teste do Sensor de Presena...................................................................................... 35

3.3 Implementao do Projeto .................................................................................................... 37


3.3.1 Biblioteca Modbus ..................................................................................................... 38

3.3.2 Configurao do Mango Automation ........................................................................ 39

3.3.3 Criao da Interface Grfica ...................................................................................... 40

3.3.4 Montagem dos Componentes .................................................................................... 40

3.3.5 Custos do Projeto ....................................................................................................... 41

4 RESULTADOS E CONCLUSES.......................................................................................43

4.1 Sugestes Para Trabalhos Futuros ........................................................................................ 44

REFERNCIA BIBLIOGRFICA............................................................................................45

ANEXO A......................................................................................................................................48
iv

ANEXO B......................................................................................................................................50

ANEXO C......................................................................................................................................54

ANEXO D......................................................................................................................................60

ANEXO E......................................................................................................................................69
5

1 INTRODUO

1.1 Histrico

O termo automao surgiu na dcada de 1960, na indstria de equipamentos. Atualmente


este termo designa qualquer sistema ou dispositivo, apoiado em computador, que substitua o
trabalho humano com intuito de obter menores custos, maior preciso, produtividade, segurana e
controle (MORAES; CASTRUCCI, 2006).
O sucesso na indstria fez com que outros setores da sociedade se beneficiassem das
vantagens da automao, surgindo assim os primeiros sistemas de automao para o comrcio.
O rpido avano da informtica impulsionou a evoluo deste ramo que vem apresentando cada
vez mais aspectos de grande sofisticao atravs de softwares de superviso e gerenciamento.
Hoje a automao passou a ser utilizada em residncias com o intuito de promover
principalmente o conforto do usurio (TEZA, 2002).
A automao residencial no apenas tecnologia propriamente dita, ela possui relao
direta com a qualidade de vida dos usurios, pois busca promover, atravs da implementao da
tecnologia, maior bem-estar, segurana e economia. Atualmente no mercado, so oferecidos
sistemas com os mais variados tipos de recursos, cabendo ao usurio apenas escolher aquele que
atende melhor s suas necessidades (SENA, 2005).

1.2 Contextualizao

A automao residencial, tambm conhecida como domtica, efetivamente a aplicao


das tcnicas e ferramentas de automao comercial em um cenrio domstico. O aumento da
procura pela domtica impulsionou a sua evoluo. Mquinas mais velozes possibilitam o acesso
a mltiplos dispositivos quase que instantaneamente, novos equipamentos e dispositivos so
desenvolvidos continuamente por empresas nacionais e estrangeiras com vistas a atender este
mercado em expanso. No entanto, apesar de todos esses avanos, a domtica ainda vista por
muitos como um artigo de luxo para as residncias. Neste contexto, o custo, ainda elevado, o
principal fator que dificulta a disseminao destes sistemas (MAINARDI, 2005).
6

Uma matria publicada no site da revista Exame, em abril de 2011, corrobora essa
afirmao. Com o ttulo de: Servio automatiza casa por R$ 8 mil, a matria mostra que, por
esse valor, possvel adquirir um pacote bsico, capaz de automatizar iluminao, ar-
condicionado, cortinas e eletrnicos em geral.
Esse custo no elevado apenas no Brasil, ou em pases menos desenvolvidos, segundo
dados disponibilizados pela FIXR (2013), site norte americano que conecta empresas com
consumidores que procuram os seus servios, o custo para uma automatizao residencial pode
variar, de 5 a 15 mil dlares, em mdia (ALHO; SEPULVEDA, 2013).
Alm disso, a falta de padronizao e uniformizao de protocolos de comunicao para
os sistemas de automao residencial , frequentemente, um problema para os tcnicos
envolvidos na concepo e projeto dessas instalaes, especialmente quando o sistema ser
instalado num edifcio ou residncia cuja a infraestrutura de dutos no adequada para suportar
esse nvel de automao (MAINARDI, 2005).
Neste sentido, diversas empresas buscam minimizar esse impacto sobre seus produtos
atravs do uso de tecnologias de cdigo aberto, cujas licenas so distribudas de forma gratuita.

1.3 Justificativa

A elaborao deste projeto justificada pela percepo de um novo nicho do mercado de


automao residencial. Os sistemas atuais demandam um alto investimento, portanto desejase
desenvolver um sistema de automao residencial atravs da plataforma Arduino, do computador
Raspberry PI 2, e do supervisrio Mango Automation, todos de baixo custo e open source,
reduzindo assim os custos para desenvolvimento e implementao do projeto.
Outro ponto importante a se destacar o conhecimento que se pode agregar sobre a
plataforma de prototipagem eletrnica Arduino, frequentemente utilizada em inmeros projetos,
das mais variadas formas, e j bastante consolidada.

1.4 Objetivo

O objetivo deste trabalho apresentar a implementao do prottipo de um sistema capaz


de automatizar e supervisionar algumas tarefas e aes domsticas bsicas de forma simples,
7

eficiente e com um gasto final significativamente menor do que o atualmente praticado no


mercado. Para que este objetivo possa ser alcanado, o desenvolvimento, da parte fsica e da
parte lgica do sistema, ser realizado atravs de equipamentos de menor custo e linguagens de
open source.

1.5 Objetivo Especfico

Neste projeto ser utilizado o computador de baixo custo Raspberry PI 2, fazendo uso do
sistema operacional de cdigo aberto Raspbian. Neste sistema operacional ser instalado o
supervisrio 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
LEDs simularo lmpadas, um sensor de presena acionar um buzzer ao ser atuado, um sensor
de temperatura ir indicar a temperatura do ambiente atravs do supervisrio e um sensor de
luminosidade externo ir acender um LED ao ser atuado.
8

2 REVISO BIBLIOGRFICA

Neste captulo esto dispostos os principais temas envolvidos no desenvolvimento do


projeto. Sero apresentados os conceitos dos temas relevantes ao desenvolvimento deste trabalho
para que haja um melhor entendimento do projeto desenvolvido. Primeiramente sero
apresentadas as caractersticas e definies dos componentes necessrios elaborao deste
projeto. Posteriormente ser apresentado como estes componentes foram integrados.

2.1 Hardware

O termo hardware, quando relacionado tecnologia, refere-se aos componentes fsicos


que integram um sistema computadorizado, tais como, teclado, monitor, placas e circuitos.
Quatro operaes bsicas so executadas para realizar uma tarefa computacional, so elas: inserir
dados no sistema, processamento dos dados, armazenamento das informaes, e retirada das
informaes processadas, que sero entregues ao usurio (ANDREWS, 2009).

2.1.1 Harware Livre

O termo hardware livre utilizado para descrever placas e circuitos eletrnicos que,
assim como o software livre, podem ser estudados, modificados e redistribudos livremente,
desde que dentro dos parmetros previstos em lei (MAKE, 2007).
Corroborando esta ideia, Pomerantz (2000) afirma que, um hardware pode ser
considerado livre caso possua uma licena que garanta: i) a permisso para a livre redistribuio,
tanto do seu cdigo fonte quanto de outros hardwares baseados neste primeiro, e ii) o direito de
criar obras derivadas baseadas no cdigo fonte deste hardware e distribu-las sob a mesma
licena.
Com intuito de desenvolver um sistema eficiente e de baixo custo, optou se pela
utilizao de hardwares livres que possuem histrico de sucesso em projetos similares.
9

2.1.2 Microcontrolador

De acordo com SCHUNK e LUPPI (2001), o microcontrolador um componente


popularmente conhecido como computador de um s chip.
TOOLEY (2007) confirma esta definio e acrescenta que o microcontrolador
projetado especificamente para as aplicaes de controle, em vez de aplicaes gerais. So
usados, muitas vezes, para satisfazer um determinado requisito de controle.
Os microcontroladores possuem processador, memria e perifricos de entrada e sada
(portas I/O). Podem ser programados para realizar funes especficas de acordo com a aplicao
e utilizao do equipamento onde sero instalados.
Existem muitos modelos e aplicaes para os microcontroladores. Eles podem ser
encontrados em equipamentos eletrnicos do nosso cotidiano como: aparelhos de som,
televisores, geladeiras, automveis, controles de acesso, entre outros.
Diversos fabricantes de microcontroladores podem ser citados, tais como: Microchip,
Atmel, Hitachi, Hewlett Packard (HP), Hyundai, Motorola, National, Philips e Panasonic.
Dentre os fabricantes citados anteriormente, optou-se pelo microcontrolador
ATmega328P, fabricado pela Atmel, para ser utilizado no projeto por atender aos
requisitos desejados para o funcionamento do dispositivo

2.1.2.1 Microcontrolador ATMega 328P

O microcontrolador ATmega328P pertence famlia de microcontroladores AVR de


8 bits, com arquitetura RISC (Computador com um Conjunto Reduzido de Instrues),
fabricados pela Atmel.
10

Figura 1: Microcontrolador ATMega 328P

Fonte: Atmel

Alguns dados tcnicos do microcontrolador ATmega328P obtidos do datasheet do


fabricante so apresentados abaixo (ATMEL, 2013).

Tenso de operao - 1,8 a 5,5 VDC


Portas de entradas e sadas - 23 pinos
Memria Flash - 32 KB
Memria SRAM - 2 KB
Memria EEPROM - 1 KB
Velocidade de Clock - 0 a 20 MHz

2.1.3 Plataforma de Prototipagem

Um prottipo um modelo concretizado a partir de uma ideia ou conceito onde so


estabelecidas as primeiras funcionalidades do projeto. O prottipo modificado de acordo com
os testes realizados e a partir dele vo sendo incorporadas novas funes ou caractersticas
(GOMES, 2012).
No processo de fabricao de um dispositivo eletrnico, esta uma das etapas mais
importantes, pois determinar o sucesso ou fracasso do projeto uma vez que investimentos sero
aplicados na fabricao das placas, gabinetes e montagem. Um erro nesta etapa pode prejudicar
todo o projeto.
11

Os prottipos so validados e testados em plataformas de prototipagem. Para que placas


eletrnicas no necessitem ser alteradas frequentemente, gerando gastos desnecessrios, so
utilizadas matrizes de contatos e kits de desenvolvimento nesta etapa do projeto.

2.1.3.1 Arduino

O Arduino capaz de perceber o ambiente a sua volta e interagir com o mesmo, atravs
do uso de sensores, controle de luzes, motores, e outros mecanismos. Sua programao feita
utilizando-se a linguagem C, e o cdigo embutido no microcontrolador com o auxlio de uma
IDE (ARDUINO, 2013).
Os projetos desenvolvidos com o Arduino podem ser independentes, isto , terem o seu
funcionamento autnomo, ou eles tambm podem se comunicar com um software que esteja em
execuo em um computador, o qual recebe o nome de servidor (ARDUINO, 2013).
Outro fato interessante acerca do Arduino que suas placas podem ser construdas em
casa, j que todos os mapas de seus circuitos encontram-se disponveis gratuitamente para
download. Assim, qualquer um que deseje se aventurar na construo de seu prprio Arduino,
basta ter em mos os componentes necessrios e conhecer um pouco de eletrnica para comear
(ARDUINO, 2013).

2.1.3.1.1 Arduino Uno

A plataforma Arduino possui diferentes verses, sendo que a verso utilizada no prottipo
denominada Arduino UNO.
O Arduino Uno foi desenvolvido e baseado no microcontrolador ATmega328P, ele possui
14 portas de entrada e sada, das quais 6 podem ser utilizadas como sada PWM, 6 entradas
analgicas, um pequeno ressoador cermico de 16 MHz, uma conexo USB, um conector de
alimentao, uma conexo ICSP, e um boto de reset. (ARDUINO, 2013).
O Arduino Uno difere de todas as placas antecessoras por no utilizar o chip FTDI para
converso 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
integrao com os demais perifricos, ao nmero de entradas e sadas correspondentes a
necessidade e a possibilidade de integrao com um sistema de superviso e controle.

Figura 2: Arduino Uno

Fonte: Autores

2.1.4 Raspberry PI 2

O Raspberry PI um computador de pequeno porte, do tamanho de um carto de crdito,


com dimenses de 85.60mm x 21mm que pesa 45g. Ele foi anunciado em 2011, idealizado pelo
ingls Pete Lomas para ser o computador mais barato do mercado, com preo de 25 dlares
(Modelo A) e 35 dlares (Modelo B). O aparelho foi lanado em 29 de fevereiro de 2012 com
finalidades educativas. O computador de cdigo aberto foi criado para estimular o ensino de
programao e tecnologia (RASPBERRY, 2016).
Neste projeto ser utilizado o Raspberry PI 2 que possui 1GB de memria RAM,
processador ARM quad-core de 900 MHz, 4 portas USB, sada para vdeo composto, conector
HDMI, sada de udio e conectores para cmera e display, alm do conector de 40 pinos GPIO
que permite que ligue sensores, displays e outros dispositivos. O Raspberry PI 2 no possui disco
rgido (HD), porm permite a utilizao de um HD externo conectado a uma porta USB, existe
tambm a opo de utilizar um carto Micro SD, cujo slot est localizado na parte de trs da
placa.
13

Figura 3: Raspberry PI 2

Fonte: Autores

2.1.5 Sensores

Sensores so dispositivos sensveis a alguma forma de energia do ambiente, que pode ser
luminosa, trmica, cintica, entre outras, relacionando informaes sobre uma grandeza fsica que
precisa ser medida, como: temperatura, presso, velocidade, corrente, acelerao, posio, entre
outros.
Um sensor nem sempre possui as caractersticas eltricas necessrias para ser utilizado em
um sistema de controle. Normalmente o sinal de sada deve ser manipulado antes da sua leitura
no sistema de controle. Isso geralmente realizado com um circuito de interface para produo
de um sinal que possa ser lido (WENDLING, 2010).

2.1.5.1 Sensor de Temperatura

Os sensores de temperatura e umidade da famlia DHTxx so compostos por um sensor


capacitivo para medir a umidade e por um termistor, que so dispositivos eltricos que tm sua
resistncia eltrica alterada termicamente. Ambos os sensores so calibrados nos laboratrios
durante sua fabricao. O sensor DHT11 foi escolhido por ser aplicado em diversos projetos
similares e por possuir bibliotecas j programadas para o Arduino (OPIRON, 2016).
14

Figura 4: Sensor de Temperatura

Fonte: Autores

2.1.5.2 Sensor de Luminosidade

Foi utilizado um sensor do tipo LDR (Light Dependent Resistor), que em portugus
significa resistncia dependente de luz. Assim como seu prprio nome sugere, uma resistncia
capaz de variar de acordo com a quantidade de luz que lhe incidida, possibilitando, com a
programao adequada, o acendimento de luzes de maneira autnoma, quando o ambiente estiver
mais escuro (MARINHO 2012).

Figura 5: Sensor de Luminosidade

Fonte: Autores
15

2.1.5.3 Sensor de Presena

O sensor PIR um sensor infravermelho passivo, sendo um importante elemento na


deteco de invaso e intruses em um ambiente, pois no se trata de um sensor de movimento,
mas sim, um sensor de variao de temperatura.
Assim como outros sensores infravermelhos, o sensor PIR calibrado para a temperatura
do corpo humano. A denominao de infravermelho passivo deve-se ao fato do sensor apenas
captar variaes de irradiao de luz infravermelha, ou seja, variaes de temperatura. Todos os
objetos emitem certa quantia de luz infravermelha, e uma mudana repentina de quantia de luz
infravermelha num ambiente, como por exemplo, a entrada de uma pessoa no ambiente, causar
deteco por parte do sensor. Devido a estas caractersticas, o sensor do tipo PIR foi o escolhido
para o projeto.

Figura 6: Sensor de Presena

Fonte: Autor

2.1.6 LED

O LED um componente eletrnico semicondutor, ou seja, um diodo emissor de luz (L.E.


D = Light Emitter Diode), sendo a mesma tecnologia utilizada nos chips dos computadores, que
tem a propriedade de transformar energia eltrica em luz. Tal transformao diferente da
encontrada nas lmpadas convencionais que utilizam filamentos metlicos, radiao ultravioleta e
descarga de gases, dentre outras. Nos LEDs, a transformao de energia eltrica em luz feita na
matria, sendo, por isso, chamada de estado slido (Solid State) (IAR, 2016).
16

O LED um componente do tipo bipolar, ou seja, tem um terminal chamado anodo e


outro, chamado catodo. Dependendo de como for polarizado, permite ou no a passagem de
corrente eltrica e, consequentemente, a gerao ou no de luz. O componente mais importante
de um LED o chip semicondutor de dimenses reduzidas responsvel pela gerao de luz.

Figura 7: LED

Fonte: Autores

2.1.7 Buzzer

Buzzer um dispositivo de udio que pode ser mecnico, eletrnico ou piezo eltrico.
Consiste num pequeno alto-falante capaz de emitir sons em diversas frequncias. O buzzer
normalmente utilizado em projetos que necessitam de avisos sonoros, relgios com alarme, e at
para reproduzir msicas.
Ao ser alimentado com uma fonte de sinal, o buzzer vibra da mesma frequncia recebida,
funcionando como uma sirene ou alto-falante.
Existem vrias verses e tamanhos. Todos os dispositivos sonoros de alarmes (como os de
automvel) usam um buzzer para o som. Sua vantagem em relao a alto-falantes comuns que
consome pouca energia em relao potncia sonora, sendo facilmente alimentado com pequenas
baterias.
17

Figura 8: Buzzer

Fonte: Autores

2.2 Software

Softwares, ou programas, so os responsveis por toda e qualquer ao que um


computador venha a executar. Ele constitui-se de uma sequncia de instrues especficas que
dizem ao computador como ele deve manipular redirecionar e alterar dados de maneira lgica. O
termo software pode ser utilizado para referir-se tanto ao cdigo-fonte, escrito em alguma
linguagem de programao especfica, ou para o arquivo j compilado, ou seja, em sua forma
executvel (UFPA, 2010).

2.2.1 Software Livre

Software livre aquele cuja utilizao, reproduo, modificao e distribuio permitida


a qualquer pessoa, desde que dentro dos trmites legais, podendo ocorrer de forma gratuita ou
paga. Sendo esta segunda opo, aplicada, por exemplo, a casos onde exista a necessidade de
alguma modificao feita sobre encomenda por parte de seu utilizador. Assim o pagamento
ocorre, na verdade, pelo servio prestado e no pelo software em si (FSF, 2002).

2.2.2 IDE

Integrated Development Environment (IDE) um ambiente de programao. Em geral,


um IDE uma interface de usurio projetada graficamente para ajudar um desenvolvedor na
18

construo de aplicaes de software, com um ambiente integrado combinado com todas as


ferramentas necessrias mo.
As principais caractersticas de uma IDE so:
Editor de cdigos
Compilador
Linker - liga (linka) os vrios "pedaos" de cdigo-fonte, compilados em linguagem de
mquina, em um programa executvel que pode ser executado em um computador ou outro
dispositivo computacional.
Depurador - um programa de computador usado para testar outros programas e fazer sua
depurao.
Interface grfica de usurio (GUI) - uma interface atravs da qual um usurio interage
com dispositivos eletrnicos, como computadores, dispositivos portteis e outros aparelhos.
Modelagem - criao do modelo de classes, objetos, interfaces, associaes e interaes
dos artefatos envolvidos no software com o objetivo de solucionar as necessidades-alvo do
software final.
Controle de verso e navegao na estrutura de dados, ajudando um desenvolvedor a
executar rapidamente as aes sem mudar para outras aplicaes, assim ajuda a maximizar a
produtividade e reduzir o tempo.
Um IDE suporta linguagens nicas ou mltiplas, os mais modernos so usados
principalmente no contexto da programao visual, onde os aplicativos so criados rapidamente,
movendo blocos de construo de programao ou gerando cdigo de fluxograma e diagramas de
estrutura, que so compilados ou interpretados (ELETRONITE, 2016).

2.2.2.1 IDE Arduino

O Arduino Software Integrated Development Environment (Ambiente de


Desenvolvimento Integrado de Software) uma aplicao open-source, multiplataforma, escrita
em Java e derivada dos projetos Processing e Wiring. O IDE Arduino esquematizado para
introduzir na programao usurios no familiarizados com o desenvolvimento de software.
A ferramenta possui um editor de cdigo com recursos de realce de sintaxe, parnteses
correspondentes e endentao automtica, sendo capaz de compilar e carregar os programas para
19

a placa Arduino Uno em poucos cliques. Com isso no 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 programao seja
feita em linguagem C/C++. Isso permite criar com facilidade muitas operaes de entrada e sada,
definindo apenas duas funes no pedido para o programa funcional.
setup () - Inserido no inicio, sendo usada para a inicializao da configurao.
loop () - Chamada para repetir o bloco de comandos com a instruo principal do
programa ou at que seja desligada.
A principal finalidade do Arduino IDE facilitar a programao voltada para
prototipagem, implementao ou emulao do controle de sistemas interativos, a nvel domstico,
comercial ou mvel, da mesma forma que um Controlador Lgico Programvel (CLP) controla
sistemas de funcionamento industriais. Sendo possvel o envio e recebimento de basicamente
qualquer sistema eletrnico. O software pode ser obtido gratuitamente no portal oficial do
Arduino. Existem verses disponveis para Windows, MAC, e Linux. No portal tambm possvel
ter acesso ao cdigo de programao do IDE do Arduino, se o usurio assim desejar.
No software deve-se definir o modelo de plataforma Arduino a ser utilizado, bem como a
porta de comunicao. Os menus disponveis no software, assim como a descrio dos mesmos,
podem ser vistas em detalhes no manual do fabricante (ARDUINO, 2013).
O fabricante tambm disponibiliza ao usurio a descrio e a explicao de como utilizar
as funes e instrues necessrias para desenvolver o cdigo na linguagem utilizada pelo IDE
do Arduino (ARDUINO, 2013).
20

Figura 9: IDE Arduino

Fonte: Autores

2.2.3 Sistema Operacional

Um sistema operacional um programa ou conjunto de programas que faz o


gerenciamento do computador. Sua principal funo controlar o funcionamento do computador,
gerenciando a utilizao e o compartilhamento de recursos tais como processador, memria e
dispositivos de entrada/sada. So exemplos de sistemas operacionais os antigos D.O.S. (Disk
Operation System) e o Unix, e os atuais Windows XP, Windows Vista, Windows Seven, Windows
8, Windows 10, Solaris, Mac OS X, Linux e todas suas derivaes, FreeBSD, Symbian, Android,
iOS entre outros. Sendo alguns sistemas operacionais livres e distribudos com o cdigo-fonte
aberto, outros so sistemas proprietrios. Tambm temos aqueles que foram desenvolvidos
exclusivamente para celulares e smartphones, como o Android. Se no existisse o sistema
operacional, para trabalhar com o computador, seria necessrio um profundo conhecimento do
hardware. O sistema operacional serve como interface entre o usurio e o hardware, as suas
funes so executadas por demanda, ou seja, sempre que necessrio e no de forma linear, como
um programa desenvolvido em Pascal ou C. As funes so executadas sempre que algum
21

evento ocorrer, como exemplo, a solicitao de desligar o computador por parte do usurio
(FACOL, 2016).

2.2.3.1 Raspbian

Raspbian um sistema operacional livre baseado em Debian otimizado para o hardware


da Raspberry PI, que conta com mais de 35 mil pacotes. A construo inicial destes pacotes
otimizados do Raspbian foi concluda em junho de 2012. No entanto, o Raspbian encontra-se em
desenvolvimento ativo, com, nfase em melhorar a estabilidade e o desempenho de tantos pacotes
quanto possvel.
Raspbian a distribuio recomendada para a maioria dos usurios da Raspberry PI. A
exceo para os usurios que so dependentes de de software que ainda no est presente ou
funcional em Raspbian.
O sistema operacional Raspbian foi o escolhido para este projeto, pois foi o que
apresentou mais robustez e adequao as necessidades de desenvolvimento do sistema proposto,
devido ao fato de ter sido projetado e otimizado para o Raspberry PI.

2.2.4 Sistemas de Superviso

Um sistema supervisrio permite que sejam monitoradas e rastreadas informaes de um


processo produtivo ou instalao fsica. Tais informaes so coletadas atravs de um
equipamento de aquisio de dados e, em seguida, manipuladas, analisadas, armazenadas e,
posteriormente, apresentadas ao usurio. Estes sistemas tambm so conhecidos como SCADA
(Supervisory Control and Data Aquisition) (PINHEIRO, 2006).
Segundo Matt, um sistema supervisrio destina-se a capturar e armazenar em um banco
de dados, informaes sobre um processo de produo (MATT, 2014). Com os dados
capturados pelo sistema supervisrio possvel monitorar alarmes, realizar operaes remotas,
gerar relatrios e grficos e aperfeioar, por exemplo, uma planta industrial, aumentando a sua
eficincia e produo.
22

2.2.4.1 Sistemas Scada

A aquisio de dados em um sistema de automao transforma fenmenos fsicos do


mundo real em sinais eltricos que so medidos e convertidos em sinas digitais para que possam
ser processados, analisados e manipulados por computadores. Nessa fase, so utilizados
computadores com interface grfica apurada.
Os sistemas de aquisio e controle de dados (SCADAs) so de importncia estratgica,
j que so adotados na maioria das indstrias que compem a infraestrutura de um pas. As
aplicaes da tecnologia SCADA alcanam praticamente todo o espectro do setor produtivo. Para
exemplificar, esses sistemas so utilizados na indstria qumica, petroqumica e de cimento,
indstria alimentcia, na produo e na distribuio de energia eltrica, no controle de gua, no
controle de oleodutos, gasodutos, centrais nucleares, edifcios inteligentes e trfego.
Na maioria de suas aplicaes, os sistemas de aquisies de dados so designados no s
para adquirir dados, mas tambm para tambm atuar sobre esses.
Para o desenvolvimento deste prottipo, optou-se pela utilizao de um software de
superviso SCADA, visto que este tipo de sistema atende as necessidades do projeto, possui
softwares livres e conta com vasta referncia bibliografia disponvel para consulta.

2.2.4.1.1 Mango Automation

Este sistema SCADA um dos sistemas open source mais conhecidos do mundo. de
origem canadense, possui vrias caractersticas importantes, um software M2M (Mquina
para Mquina), possui diversos protocolos de comunicao, gerao de grficos de tendncias,
histricos, 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
distncia.
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 utilizao do Mango Automation, pois foi o sistema superviso que
apresentou uma maior facilidade de instalao no Raspbian. O ScadaBR basicamente uma
23

verso do Mango Automation traduzida para o portugus, no entanto, apresentou diversos


problemas durante as tentativas de instalao e configurao no Raspbian.

FUNCIONAMENTO

O Mango Automation ao ser instalado num computador funcionar como um servidor de


aplicao Web em Java, utilizando o Apache TomCat, possibilitando assim o acesso atravs de
qualquer navegador de internet, permitindo que o usurio consiga visualizar e configurar as
funcionalidades do sistema. O acesso ao Mango Automation poder ser feito atravs do mesmo
computador onde se encontra instalado ou atravs do browser de um smartphone ou tablet que
esteja conectado a mesma intranet. Existe tambm a possibilidade de ser acessado pela internet
mediante algumas configuraes adicionais que no sero abordadas neste projeto.

SERVIDOR WEB

O Apache TomCat um servidor Web livre para aplicaes Java desenvolvido pela
Apache Software Foundation, fazendo parte do projeto Apache Jakarta. considerado um
servidor muito robusto, sendo utilizado inclusive em ambientes de produo.
A utilizao da linguagem Java facilitou o desenvolvimento de aplicaes para Web
baseados na internet, onde as comunicaes so baseadas em pacotes e no relacionamento entre
cliente e servidor. Desta forma, o cliente (navegador Web) solicita uma ao que enviada ao
servidor (servidor Web), que executa a ao e responde com uma pgina da Web em HTML
correspondente para o cliente navegador (RAYSARO, 2009).
24

Figura 10: TomCat

Fonte: Autores

DATA SOURCE

So as fontes de dados recebidas pelo sistema, ou seja, a configurao dos componentes


que sero fisicamente controlados, constituindo uma parte imprescindvel para o funcionamento
do sistema. constitudo por um barramento de comunicao com os mais variados tipos de
protocolos como: Modbus, Http, TCP-IP, ASCII, SQL entre outros.

DATA POINT

So os pontos de medio e controle ou tags so todas as variveis numricas e


alfanumricas envolvidas num aplicativo. Funcionam como uma coleo de valores histricos
que contm atributos como: nome, de que forma os dados so registrados, se totalmente ou
quando mudam de valor, por quanto tempo manter esses dados, em que condies os dados
devem ser formatados para exibio e de que maneira traar um determinado grfico para
exibio dos valores medidos. O sistema suporta cinco tipos de dados que so: Binrios 0 e 1,
Estados Mltiplos ligado/desligado/desativado, Numricos ou Analgicos temperatura,
presso, vazo, umidade etc. e Alfanumricos sequncia de caracteres e imagens. Com relao
25

s medies, os pontos podem ser representados, por exemplo, como uma leitura de presso,
temperatura, umidade vazo, etc. Em relao ao controle podem indicar uma condio de ligado e
desligado num determinado equipamento. Sendo assim os data points armazenam todos os
valores de dados que so coletados por um data source (RAYSARO, 2009).

PARTE GRFICA

O Mango Automation possui uma quantidade considervel de recursos disponveis para


elaborao de representaes grficas. Existe a opo de criar painis de controle, onde os data
points podem ser monitorados em tempo real e tambm so disponibilizados elementos grficos,
como botes, cones, grficos, componentes HTML e displays representando o processo real que
est sendo monitorado ou controlado, isto , representa a interface com o usurio para operao
do sistema.

2.2.5 Protocolo de Comunicao

Um protocolo de comunicao um conjunto de regras e convenes precisamente


definidas que permitem a comunicao atravs de uma rede. Esse conjunto de regras estabelece
como um componente conecta-se ao outro, como se identifica, quando pode enviar ou receber
informaes e quanto tempo pode esperar para que cada evento ocorra, bem como a forma de se
desfazer a conexo.
Alm de estabelecer comportamentos para as situaes normais de funcionamento de uma
rede, um protocolo deve tambm possuir regras para as situaes anormais, especificando como
normalizar tais situaes.
Dois ou mais computadores que desejarem trocar informaes entre si, devero seguir os
mesmos protocolos. Os protocolos devem ser compatveis nos meios digitais de forma que as
transferncias de informaes sejam corretas.
Basicamente os protocolos so a parte do sistema operacional da rede encarregada de ditar as
normas e regras para a comunicao entre os dispositivos em questo (MIRANDA, 2008).
26

2.2.5.1 Protocolo Modbus

O protocolo serial Modbus um protocolo mestre e escravo. Um sistema operando como


mestre-escravo possui um n mestre, que emite comandos explcitos para um dos ns escravos e
processa a sua resposta. Tipicamente os escravos no iro transmitir dados sem uma requisio
do n mestre e no se comunicam com outros escravos.
Modbus em linhas seriais podem usar diferentes interfaces fsicas (RS485, RS232, etc.). A
interface de dois fios a mais comum. No entanto, a interface RS485 tambm pode ser
implementada. A interface serial RS232 s poder ser utilizada quando uma comunicao ponto
a ponto de curta distncia for requerida.
Algumas caractersticas do protocolo Modbus so fixas, como o formato da mensagem,
funes disponveis e tratamento de erros de comunicao. Outras caractersticas so
selecionveis, como o meio de transmisso, velocidade, timeout, bits de parada e paridade, e o
modo de transmisso (RTU ou ASCII).
Denardin (2010) descreve que estes modos de transmisso definem o contedo de bits dos
campos das mensagens transmitidas serialmente no barramento. Eles determinam como a
informao empacotada nos campos das mensagens e, posteriormente, como so decodificadas.
Denardin (2010) ainda diz que o modo de transmisso (e o padro da porta serial) deve
ser o mesmo em todos os dispositivos conectados a linha serial.
27

3 DESENVOLVIMENTO DO PROJETO

Neste capitulo sero descritas as etapas do projeto, desde a aquisio dos componentes, a
linguagem de programao utilizada e IDE, at a criao da parte grfica no supervisrio.
Atravs de conhecimentos bsicos em linguagem de programao C, noes de eletrnica bsica,
eltrica e sistemas de superviso, foi possvel a criao de um prottipo de controle de automao
residencial de baixo custo.
Para o desenvolvimento do projeto, foram adquiridos os seguintes equipamentos: Arduino
Uno, Raspberry PI 2, sensor de presena PIR, sensor de luminosidade LDR, buzzer, LEDs, fonte
de alimentao, carto de memria, adaptador USB WI-FI, jumpers e resistores. Uma maquete de
uma casa com quatro cmodos servir de exemplo de implementao do sistema proposto.
Aps a concluso do projeto, o prottipo permitir ao usurio realizar o controle e
superviso de algumas tarefas e estados de uma residncia atravs do supervisrio Mango
Automation, que poder ser acessado atravs de um browser conectado intranet.

3.1 Instalao dos Softwares

Neste tpico sero abordados os procedimentos utilizados para instalao dos softwares
utilizados neste projeto.

3.1.1 Instalao do Sistema Operacional

O sistema operacional utilizado no Raspberry PI 2 foi o Raspbian, sua instalao foi o


primeiro desafio encontrado no desenvolvimento deste projeto. Primeiramente, foram conectados
alguns perifricos para facilitar a instalao e configurao da placa. Foram utilizados os
seguintes componentes:

Raspberry PI 2
Teclado USB
Mouse USB
28

Fonte de alimentao de 5V / 2A com conexo micro USB. Lembrando que entrada USB
do computador suporta no mximo 500 mA, portanto o Raspberry PI 2 no foi conectado
diretamente nesta porta.
Monitor de vdeo com entrada HDMI ou DVI
Carto Micro SD vazio de pelo menos 8 GB
Computador com entrada para carto Micro SD

PREPARANDO O CARTO SD

Foi utilizado um computador para realizar a formatao do carto Micro SD que ser
utilizado como disco rgido 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 instalao do sistema operacional Raspbian no Raspberry PI 2. Aps o download,
descompactou-se o arquivo e copiou-se todos os arquivos para o carto Micro SD.

CONECTANDO O RASPBERRY P12

O Raspberry PI 2 foi conectado na entrada HDMI do monitor, tambm foram conectados


o mouse e o teclado nas portas USB, e o carto Micro SD no seu slot correspondente, por ltimo,
foi conectada a fonte de alimentao. Aps o carregamento dos dados do carto Micro SD foi
apresentada uma lista com vrios sistemas operacionais, onde se optou pelo Raspbian, pelas
razes j apresentadas.
Aps selecionar a verso Raspbian e clicar em install, foi exibida uma mensagem
informando que o sistema operacional selecionado ser instalado no carto Micro SD e todos os
outros arquivos do carto sero excludos, clicou-se em yes logo em seguida e aguardou-se o
trmino da instalao.
Aps a instalao ser concluda, foi exibida uma tela de configurao do Raspberry PI 2,
onde se optou pela interface grfica ao invs de linha de comando. Feito isto, foi finalizada
instalao do sistema operacional Raspbian.
29

3.1.2 Instalao do Mango Automation

Aps a instalao do sistema operacional Raspbian, deuse continuidade ao projeto


atravs da instalao do software de superviso Mango Automation. Como este projeto est se
desenvolvendo em ambiente Linux, foi mais conveniente realizar a instalao via terminal. A
sequncia dos procedimentos e comandos executados est descrita no Anexo A.

3.2 Teste dos Componentes

Aps um estudo de mercado, onde foram avaliados os custos e os benefcios dos modelos
mais comuns de Arduino, concluiu-se que para o desenvolvimento deste trabalho a melhor opo
seria a aquisio de um kit bsico para desenvolvimento, contendo uma grande variedade de
componentes. Dentre eles, foram testados e utilizados os sensores luminosidade, temperatura e
presena, buzzer e os LEDs.
A partir desse kit, teve incio a fase de experimentao e de familiarizao com um novo
tipo de desenvolvimento, voltado para plataformas de hardwares e microcontroladores. Para tal,
foi necessria uma reviso dos conceitos bsicos de eletrnica, eltrica e um aprimoramento dos
conhecimentos de programao em C com nfase em microcontroladores.
Optou-se por realizar testes individuais de acionamento de cada componente eletrnico,
atravs de cdigos e esquemas de ligaes especficos para cada tipo de componente.
Adotouse a estratgia de testar o acionamento somente no Arduino e posteriormente
implementar a superviso e o controle no Mango Automation. Neste tpico sero descritos os
testes realizados com os sensores, os LEDs e o buzzer.

3.2.1 Teste dos LEDs

O teste descrito a seguir tem o objetivo de acender um LED atravs de um boto fsico,
ambos componentes esto conectados a uma protoboard e interligados ao Arduino Uno.
Segue o esquema de ligao utilizado:
30

Figura11: Esquema do LED

Fonte: Autores

Para realizar o acionamento do LED atravs do Arduino, foi necessria a utilizao de um


cdigo a ser compilado e enviado para o hardware atravs da IDE Arduino.
31

Figura 12: Cdigo do LED

Fonte: Autores

3.2.2 Teste do Sensor de Temperatura

O sensor DHT11 possui a capacidade de realizar medies de temperatura e umidade,


para este projeto ser utilizada somente a medio de temperatura. A seguir ser apresentado o
esquema de ligao do sensor bem como o cdigo utilizado para implementao do mesmo.
32

Figura 13: Cdigo do Sensor de Temperatura

Fonte: Autores
33

Figura 14: Esquema de Sensor de Temperatura

Fonte: Autores

3.2.3 Teste do Sensor de Luminosidade

O teste deste sensor ir contemplar tambm o acionamento de um LED, simulando assim


uma situao tpica de uma residncia onde, na ausncia de determinada quantidade de luz, um
sensor aciona uma lmpada.
Segue o esquema de ligao e o cdigo utilizado:
34

Figura 15: Esquema do Sensor de Luminosidade

Fonte: Autores
35

Figura 16: Cdigo do Sensor de Luminosidade

Fonte: Autores

3.2.4 Teste do Sensor de Presena

Assim como o sensor anterior, o sensor de presena PIR tambm ir acionar um


componente eletrnico ao ser atuado, trata-se de um buzzer (buzina). Sendo assim, obtm-se
outra situao comum ao sistema de automao residencial, onde a presena indesejada de uma
pessoa dispara um alarme.
36

Figura 17: Cdigo do Sensor de Presena

Fonte: Autores
37

Figura 18: Esquema do Sensor de Presena

Fonte: Autores

3.3 Implementao do Prottipo

Aps todos os componentes eletrnicos do projeto terem sido testados com sucesso,
objetivou se a comunicao entre o Arduino Uno e o Mango Automation.
38

O primeiro passo foi estabelecer a comunicao Modbus Serial entre o Arduino e o


Mango Automation. Para isso, utilizou se como base uma biblioteca disponvel na internet, onde
foram feitas as modificaes necessrias para a adequao a este projeto, posteriormente, foram
feitas as configuraes no Mango Automation, onde criou-se o data source e os data points
necessrios e foi elaborada a parte grfica.

3.3.1 Biblioteca Modbus

Essa comunicao foi realizada utilizando-se o protocolo Modbus Serial. Isso foi possvel
graas a utilizao da biblioteca open-source Modbus-Arduino obtida no endereo
<https://github.com/andresarmento/Modbus-Arduino>.
Primeiramente, efetuou-se o download dos arquivos e os adicionou na pasta de bibliotecas
da IDE do Arduino. Aps esse processo, as funes da biblioteca ficaram disponveis para
utilizao.
Para a construo do programa foram adicionados os seguintes includes necessrios:

#include <Modbus.h>
#include <ModbusSerial.h>
#include <SoftwareSerial.h>

Nos cdigos utilizados na IDE Arduino existe a funo setup() que chamada no incio da
programao. utilizada para inicializar variveis, definir os modos de entrada ou sada dos
pinos, inicializar bibliotecas etc. Essa funo executada somente uma vez, quando o Arduino
iniciado ou quando ocorre um reset. Para possibilitar a comunicao com o Mango Automation
foi preciso inserir algumas funes na biblioteca Mudbus-Arduino:

mb.config( &Serial, 9600, Serial_8N1)


O cdigo acima tem a funo de informar a porta de comunicao, a velocidade de
comunicao e o formato dos bytes.

mb.setSlaveId(1)
39

O cdigo acima tem a funo de informar para o Mango Automation, o nmero de


identificao do escravo que, neste caso, o Arduino e h apenas um (1).
Dentro da funo setup() foi informado as funes para cada porta utilizada no Arduino,
sendo que para cada tipo de porta h uma funo diferente:

mb.addIsts(Entrada_digital_1)
mb.addCoil(Sada_digital_1)
mb.addHreg(Sada_analgica_1)
mb.addIreg(Entrada_analgica_1)

Aps a funo setup() foi executada a funo 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 necessrio adicionar a funo da biblioteca
Modbus-Arduino que responsvel por responder as requisies e alterar os registradores se
necessrio, funcionando apenas uma vez, no incio de cada loop:

mb.task()

Aps essas definies, para enviar e receber dados entre o Arduino e o Mango
Automation, foi preciso utilizar as seguintes funes:

mb.Ists(Nmero_da_Porta) Entrada Digital


mb.Ireg(Nmero_da_Porta) Entrada Analgica
mb.Coil(Nmero_da_Porta) Sada Digital
mb.Hreg(Nmero da Porta) Sada Analgica

3.3.2 Configurao do Mango Automation

Para um melhor desenvolvimento deste trabalho, optou-se por descrever de forma


genrica a criao de um data source e de um data point, funcionalidades essenciais para o
desenvolvimento do projeto, mas que seguem um mesmo procedimento, alterando apenas os
40

parmetros de acordo com a necessidade. Os procedimentos para criao de data source e data
point esto descritos no Anexo C.

3.3.3 Criao da Interface Grfica

Neste tpico ser descrito o procedimento para criao da interface grfica que ser
exibida atravs do supervisrio Mango Automation. Ser demonstrada a criao de um boto para
acender e apagar um LED, uma indicao do status desse LED e a indicao da temperatura
aferida pelo sensor DHT11. Apesar do projeto possuir mais representaes grficas, a criao e
configurao destes itens citados abrange o procedimento para a criao dos demais, conforme
ser explicado no Anexo D.

3.3.4 Montagem dos Componentes

Para demonstrao do projeto foi utilizada uma maquete de quatro cmodos: quarto,
banheiro, sala e cozinha. Os componentes eletrnicos e suas respectivas funes esto descritas
abaixo:

Os LEDs foram distribudos pela maquete, sendo que cada LED citado possui
acionamento por um boto fsico e por um virtual. Foi implementado um boto virtual que
permite que o usurio escolha se deseja realizar os acionamentos dos LEDs de forma virtual ou
atravs dos botes fsicos. Quando o acionamento fsico estiver atuado, no ser possvel
controlar os LEDs pelo supervisrio, da mesma forma que, quando o acionamento virtual estiver
atuado, no ser possvel controlar os LEDs pelos botes fsicos. Tambm foi implementada a
visualizao dos status dos LEDs, obtendo assim a informao de ligado/desligado.
Sensor de Presena quando atuado, este sensor ir acionar um buzzer, simulando assim
um alarme de presena. O disparo do buzzer pode ser visualizado no supervisrio.
Sensor de Temperatura A indicao de temperatura foi implementada no supervisrio.
Sensor de Luminosidade Quando atuado, aciona um LED na parte externa da maquete,
o status desse LED pode ser observado no supervisrio.
Segue a foto com a montagem do circuito na maquete:
41

Figura 19 Maquete

Fonte: Autores

3.3.5 Custos do Projeto

Para o desenvolvimento do projeto foram adquiridos alguns componentes cujo os custos


esto descritos abaixo:
42

Figura 20: Custos do Projeto

Custos do Projeto
Cotao do Dlar em 03/06/2016: R$ 3,52

Equipamento Quantidade Preo


Raspberry PI 2 1 R$ 170,00
Kit de desenvolvimento com
1 R$ 160,00
Arduino Uno
Sensor de Presena PIR 1 R$ 20,00

Sensor de Luminosidade LDR 1 R$ 10,00

Sensor de Temperatura DHT11 1 R$ 15,00

Buzzer 1 R$ 3,00

Fonte de Alimentao - 5V - 2 1 R$ 40,00

Carto de Memria Classe 10


1 R$ 68,00
de 32 GB
Total R$ 486,00

Fonte: Autores

O custo total de R$ 486,00 bastante baixo em relao aos valores praticados no


mercado. Vale ressaltar que o Arduino Uno e o Raspberry PI 2 possuem capacidade para suportar
um nmero maior de componentes interligados, garantindo assim uma possvel expanso do
sistema proposto sem elevao dos custos em relao a estes componentes que so os que
necessitam de um maior desembolso financeiro.
43

4 RESULTADOS E CONCLUSES

Neste trabalho foi realizada a integrao entre hardwares e softwares livres com o
objetivo de desenvolver um prottipo de um sistema de automao residencial bsico de baixo
custo. Atravs da utilizao da plataforma de prototipagem Arduino Uno, do sistema de
superviso Mango Automation e do computador Raspberry PI 2, foi possvel realizar o controle e
superviso de simples tarefas residenciais.
Uma das principais dificuldades encontradas foi a busca por um software de superviso
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 programao Java. No ScadaBr o TomCat instalado de forma independente e
por isso apresenta mais problemas de compatibilidade com a mquina virtual Java instalada no
sistema operacional. A verso mais nova do ScadaBr foi instalada com a verso mais nova do
Java e no funcionou. Mesmo instalando verses mais antigas do TomCat e do Java o problema
persistiu. Aps algumas pesquisas, foi levantado que o Mango Automation no traria esse tipo de
problemas, visto que j possui o TomCat integrado, eliminando assim o problema de
compatibilidade.
Ocorreram problemas tambm na comunicao entre o Arduino e o Mango Automation
para definir a velocidade correta de comunicao da porta serial. Como os exemplos da biblioteca
sempre utilizavam a velocidade de 38400, demorou-se um pouco at perceber que o problema
no estava no cdigo e sim na incompatibilidade de comunicar o Arduino e o Mango Automation
com essa velocidade. Aps algumas pesquisas, testou-se a velocidade de 9600, onde obteve-se
sucesso.
Outra dificuldade foi entender como o Mango Automation diferencia os dados das
variveis (Coil, Ists, Ireg e Hreg) quando estes so do mesmo tipo. Aps pesquisas, constatou-se
que preciso configurar no cdigo e no campo Offset dos data points um valor para cada varivel
do mesmo tipo, iniciando pelo nmero zero e crescendo sucessivamente.
Superadas essas dificuldades, os testes realizados na maquete ocorreram sem problemas,
todos as implementaes previstas funcionaram como o planejado, no ocorrendo problemas na
comunicao entre os softwares e hardwares utilizados, com todos os comandos e status
funcionando conforme o esperado.
44

Os conhecimentos adquiridos ao longo e todo o curso foram determinantes tanto na


elaborao das ideias que nortearam o projeto, como tambm na elaborao dele. Os objetivos
traados no incio do projeto foram alcanados, a implementao do prottipo de automao
residencial foi realizada com sucesso, obtendo assim um sistema de automao residencial de
baixo custo, utilizando softwares e hardwares livres.

4.1 Sugestes para Trabalhos Futuros

Projetos futuros podem ser implementados permitindo que o usurio tenha acesso a
interface grfica do sistema atravs da internet e no somente pela intranet. Alm disso, outras
funes 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, irrigao de jardim, nvel de caixa dgua, dentre outros. Dependendo
da quantidade de funes adicionais, pode ser necessrio substituir o Arduino Uno pelo Arduino
Mega, que possui uma maior capacidade de memria e pinos.
45

REFERNCIAS BIBLIOGRFICAS

FAUSTO, Emerson. CRUZ, Ariadne. WebHome Automao Residencial Utilizando


Raspberry PI 2. So Paulo: Revista Cincia e Tecnologia, v. 17, n. 31, Jul/Dez. 2014.

GOMES, Jos. Automao Industrial com Recurso a Ferramentas Open Source. 2014.
135 f. Dissertao (Mestre em Cincias) - Faculdade de Engenharia Universidade do Porto.
Portugal.

TEZA, Vanderlei. Alguns Aspectos sobre a Automao Residencial Domtica. 2002. 108 f.
Dissertao (Mestre em Cincias) Universidade Federal de Santa Catarina. Santa Catarina.

SANDOVAL, Paulo. Monitoramento Remoto Aplicado ao Controle da Umidade Ambiental.


2014. 89 f. Dissertao - Faculdade de Tecnologia e Cincias Sociais Aplicadas. Braslia.

FERREIRA, Victor. A Domtica como Instrumento para a Melhoria da Qualidade de Vida


dos Portadores de Deficincia. 2010. 41 f. Dissertao - Instituto Federal de Educao, Cincia
e Tecnologia da Paraba. Joo Pessoa.

HENRIQUES, Moises. Alimentador Automtico com Supervisrio para Animais de


Pequeno Porte. 2015. 56 f. Dissertao Universidade Federal de Ouro Preto. Ouro Preto.

ALMEIDA, Alexandre. Implementao de um Sistema de Automao Residencial Modular


sem Fio: Mdulo Perifrico. 2009. 72 f. Dissertao Universidade de So Paulo. So Carlos.

SILVA, Armando. Alarme com Ativao por Sensor Presencial e Alerta via SMS. 2013. 67 f.
Dissertao Faculdade de Tecnologia e Cincias Sociais Aplicadas. Braslia.

ALHO, Gabriel. GOMES, Jeferson. SEPULVIDA, Lucas. Automao Residencial de Baixo


Custo com Software e Hardware Livres. 2013. 69 f. Dissertao Instituto Federal de
Educao, Cincia e Tecnologia Fluminense. Campos dos Goytacazes.

BARROS, Andr. Implementao de um Servidor Utilizando Linux Embarcado com Acesso


e Gerenciamento atravs de Smartphones. 2013. 127 f. Dissertao Universidade de So
Paulo. So Carlos.

LANG, Arthur. DUTRA, Augusto. WAROMBY, Paulo. Desenvolvimento de um Irrigador


Microcontrolador Integrado a um Sistema de Superviso e Controle. 2013. 78 f. Dissertao
Universidade Tecnolgica Federal do Paran. Curitiba.

LEMES, Joo. Monitoramento em redes IPv6 com Zabbix e Rasperry PI. 2013. 64 f.
Dissertao Universidade Tecnolgica Federal do Paran. Curitiba.
46

HULLER, Israel. Sistema de Atuao e Superviso para Segurana de Ambientes Remotos.


2014. 109 f. Dissertao Universidade Federal de Educao, Cincias e Tecnologia de Santa
Catarina. Florianpolis.

ArduinoBR Explorando o mundo com Arduino. Disponvel em:


<http://www.Arduinobr.com/2014/12/>. Acesso em: 27 de mar. 2016.

ARAJO, Joo. Sistema de Aquisio e Monitorizao de Dados para Indstria Alimentar e


Laboratorial. 2012. 104 f. Dissertao Instituto Politcnico de Viseu. Viseu.

MENDES, Flvio. Automao Residencial Baseada em Software Supervisrio. 2007. 57 f.


Dissertao Universidade Federal de Ouro Preto. Ouro Preto.

SANTOS, Alexandro. Os IDEs (Ambientes de Desenvolvimento Integrado) como


Ferramentas de Trabalho em Informtica. Universidade Federal de Santa Maria.

OLIVEIRA, Jefferson. Linux como Alternativa de Sistema Operacional para Desktops. 2008.
109 f. Dissertao Universidade do Estado de Minas Gerais. Frutal.

MARCHESAN, Marcelo. Sistema de Monitoramento Residencial Utilizando a Plataforma


Arduino. 2012. 62 f. Dissertao Universidade Federal de Santa Maria. Santa Maria.

SCHOLL, Marcos. Sistema SCADA Open Source. 2015. 75 f. Dissertao Universidade


Federal do Rio Grande. Rio Grande.

RAYSARO, Mrcio. Sistema Open-Source de Superviso Controle e Aquisio de Dados.


2019. 99 f. Dissertao - Universidade de Cuiab. Cuiab.

QUINDER, Patrick. Casa Inteligente Um Protpito de Sistema de Automao Residencial


de Baixo Custo. 2009. 69 f. Dissertao Faculdade Farias Brito. Fortaleza.

MORAES, Ccero. CASTRUCCI, Plnio Residncias 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, Itlia.

MONTEIRO, Aline. Servio Automatiza Casa por R$ 8 mil, 2011. Revista Exame.
Disponvel em: <http://exame.abril.com.br/tecnologia/noticias/servico-automatizacasa-por-r-8-
mil>. Acesso em: 16 abr. 2016.

ANDREWS, Jean. A+ Guide to Hardware: Managing, Maintaining and


Troubleshooting, 2009.

MAKE, Open source Hardware, what is it? Here's a start, 2007. Disponvel em
<http://blog.makezine.com/2007/04/23/open-source-Hardware-what/>. Acesso em:
21 mar. 2016.
47

POMERANTZ, Gregory M. Business Models for Open Source Hardware Design,


2000. Disponvel em: <https://files.nyu.edu/gmp216/public/papers/bmfosh-1.0.html>.
Acesso em: 22 mar. 2016.

SCHUNK, L. M.; LUPPI, A. Microcontroladores AVR: Teoria e Aplicaes Prticas. So


Paulo: rica. 2001.

TOOLEY, M. Circuitos Eletrnicos: Fundamentos e Aplicaes. 3. Ed. Rio de Janeiro:


Elsevier, 2007.

GOMES, I. Prototipagem em Papel: Desenvolver e Testar Interfaces Antes de Iniciar a


Programao. 2012. Disponvel em: <http://www.ivogomes.com/apresentacoes/prototipagem-
empapel.pdf>. Acesso em: 20 set. 2016.

WENDLING, Marcelo, 2010. Sensores. Universidade Estadual Paulista. Disponvel


em: <http://www2.feg.unesp.br/Home/PaginasPessoais/ProfMarceloWendling/4---sensores-
v2.0.pdf>. Acesso em: 25 abr. 2016.

ELETRONICS, O. Opiron. Opiron, 03 mar. 2013. Disponvel em:


<www.opiron.com/portfolio/todossobre-los-sensores-dht11-dht22-by-opiron-2>. Acessoem: 18
mai. 2016.

MARINHO, Rui, 2012. Electronic Piece, Arduino + LDR. Disponvel em:


<http://electronicpiece.blogspot.com.br/2012/01/boas-hoje-venho-aqui-publicar-maisum.html>.
Acesso em: 04 abr. 2016.

PINHEIRO, J. M. S. Introduo s Redes de Superviso e Controle. 2006. Disponvel em:


<http://www.projetoderedes.com.br/artigos/artigo_redes_de_supe
rvisao_e_controle php>. Acesso em: 18 maio 2016.

PARK, J. & MACKAY, S. Practical Data Aquisiion for Instrumentation and Control
Systems, Newnes Publications, United Kingdom, 2003.

MIRANDA, A. Introduo s redes de computadores. 2008

DENARDIN, Gustavo Weber. Modbus. Disponvel em:


<http://pessoal.utfpr.edu.br/gustavo/Modbus_apostila.pdf>. Acesso em: 26 abr
2016.
48

ANEXO A - INSTALAO DO MANGO AUTOMATION NO RASPBIAN

A instalao do Mango Automation foi realizada atravs dos passos descritos a seguir:
1- Foi acessado o terminal como usurio administrador, para isso digitou-se:

sudo su

2- Foram atualizados todos os repositrios disponveis e baixadas as listas com os pacotes


disponveis em cada um. Para isso digitou-se:

apt-get update

3- Foi verificado se a verso instalada do Java era a JDK 1.8 (verso utilizada pelo Mango
Automation). Para isso, digitou-se:

java version

4- Foi observado que a verso do Java instalada no era a 1.8. Desta forma, procedeu se
com a atualizao digitando:

apt-get install oracle-java8-jdk

5- Aps a instalao 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 possvel acessar o
endereo <http://infiniteautomation.com/index.php/download-mango> e efetuar o download do
Mango Automation. Aps 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 inicializao do Mango Automation. Para isso digitou-se:

./bin/ma/sh start

8- Foi realizado o teste de funcionalidade do Mango Automation abrindo o navegador e


digitando:

<http://localhost:8080>

Aps a digitao do endereo a seguinte tela foi exibida:

Figura 21: Tela de Login do Mango Automation

Fonte: Autores
50

ANEXO B CONFIGURAO E COMUNICAO COM O ARDUINO

1- Conectou-se o Arduino ao Raspberry PI 2 atravs da porta USB.

2- Foi efetuado o login no terminal como usurio administrativo.

3- Foi verificado se o Raspberry PI 2 reconheceu a conexo do Arduino na porta USB. Para


isso, digitou-se no terminal:

Lsusb

Visualizando a seguinte tela:

Figura 22: Verificando Conexo

Fonte: Autores

4- Foi pesquisado e exibido o nome que o Raspberry PI 2 atribuiu a conexo do Arduino na


porta USB. Para isso, digitou se:

dmesg | grep USB*


51

Figura 23: Nome da Conexo

Fonte: Autores

5- Buscou se a localizao do diretrio onde esto localizados os arquivos de configurao


da porta USB onde o Arduino foi conectado. Para isso, digitou-se:

ls la/dev/ttyUSB*

Foi visualizada a seguinte tela:


Figura 24: Localizao do Diretrio

Fonte: Autores
52

6- No Raspbian apenas o usurio root e o grupo dialout tem a permisso para controlar a
porta onde o Arduino est conectado. Sendo assim, foi necessrio acrescentar o usurio pi,
que o usurio padro do Raspbian e o www-data, que o usurio do servidor TomCat.
Para isso, digitou se:

chown root /dev/ttyUSB (permite a alterao do proprietrio e grupo no diretrio)


chgrp dialout /dev/ttyUSB ( configura o diretrio para pertencer ao grupo dialout )
chmod 660 /dev/ttyUSB (configura o diretrio para permitir leitura e gravao)

7- Foram adicionados os usurios pi e www-data ao grupo dialout. Para isso, digitou-se.

adduser pi dialout
adduser www-data dialout

Foi visualizada a seguinte tela:

Figura 25: Adicionando Usurios

Fonte: Autores

8- Foi verificado se todo o procedimento ocorreu de maneira correta digitando:

cat /etc/group | grep dialout

Foi visualizada a tela a seguir, indicando que o procedimento obteve o resultado esperado.
53

Figura 26: Verificando Procedimento

Fonte: Autores

9- Foi instalada a IDE Arduino. Para isso, digitou-se:

apt-get install Arduino

Figura 27: IDE Instalada

Fonte: Autores
54

ANEXO C CONFIGURAO DO MANGO AUTOMATION

Primeiramente criou-se um data source. Para isso foi preciso acessar o menu Data
Sources na barra de menus. Conforme figura abaixo:

Figura 28: Acessando o Menu

Fonte: Autores

Em seguida, foi selecionado o tipo de comunicao que ser utilizada pelo data source.
Foi selecionada a Modbus Serial, conforme figura abaixo:
55

Figura 29: Protocolo de Comunicao

Fonte: Autores

O novo data source foi configurado da seguinte forma:

1- Foi informado um nome para o data source;


2- Foi informado o perodo que deve ocorrer o ciclo de varredura do software. Vale ressaltar
que, quanto menor for este perodo, mais poder de processamento o Mango Automation exigir
do Raspberry PI 2. Nos testes realizados o sistema se comportou muito bem com um perodo de
cinco (5) segundos.
3- Foi necessrio informar a porta que o Arduino est conectado.
56

4- A velocidade foi configurada com o mesmo valor utilizado no cdigo do Arduino. Nos
testes realizados funcionou apenas na velocidade de 9600 baud.
5- Conforme o cdigo utilizado no Arduino, o padro de transmisso utilizado o 8N1, ou
seja, 8 bits de dados, com 1 bit de parada e sem paridade.
6- Foi selecionado o tipo de codificao RTU.
7- Em relao aos outros parmetros, foi utilizado o valor padro j disponibilizado pelo
Mango Automation.

Figura 30: Finalizao do Data Source

Fonte: Autores

Aps inserir os dados de configurao do data source deve-se salva-lo, para que o mesmo
seja criado.
Aps a criao do data source, foi realizado o procedimento para criao dos data points,
responsveis 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 sada ele se refere.
Segue um exemplo de configurao para cada tipo de data point que foi utilizado no projeto,
ressaltando que no foi utilizado sada analgica.
57

Sada Digital

1. Foi informado um nome para o dispositivo.


2. Foi informado ID do escravo que est conectado, neste caso, o Arduino.
3. Especificou-se o tipo de registrador, que para sada digital deve ser o COIL STATUS.
4. O campo Offset deve ser zero (0) para o primeiro data point. Mas preciso ir aumentando
conforme sejam adicionados outros data points do mesmo tipo de registrador.
5. No campo Write type foi selecionada a opo Settable que permite que seja possvel
definir os sets de valores a partir do Mango Automation.
6. Realizada essas configuraes, o data point foi salvo para que fosse criado.

Figura 31: Criao do Data Point de Sada Digital

Fonte: Autores

Entrada Analgica

1. Foi informado um nome para o dispositivo.


2. Foi especificado o tipo de registrador utilizado, que para entrada analgica o
INPUT REGISTER.
3. No campo Modbus data type selecionou-se a opo 2 byte unsigned integer.
4. No campo Write type foi selecionada a opo Not settable, pois este data point
apenas recebe dados da porta analgica.
58

5. Realizada essas configuraes, o data point foi salvo para que fosse criado.

Figura 32: Criao do Data Point de Entrada Analgica

Fonte: Autores

Entrada Digital

1- Foi informado um nome para o dispositivo.


2- Foi especificado o tipo de registrador utilizado, que para entrada digital o INPUT
STATUS.
3- No campo Write type foi selecionada a opo Not settable pois este data point apenas
recebe dados da porta analgica.
4- Aps essa configurao preciso clicar em Salvar para que o data point seja criado.
59

Figura 33: Criao do Data Point de Entrada Digital

Fonte: Autores

Aps a criao dos datas points foi necessrio conect-los. Para isso, clicou-se nos cones
destacados na figura abaixo.

Figura 34: Conectando os Data Points

Fonte: Autores

Em seguida foi conectado o data source, clicando no cone destacado na figura abaixo.

Figura 35: Conectando o Data Source

Fonte: Autores
60

ANEXO D CRIAO DA INTERFACE GRFICA

Para criao da interface grfica, utilizou-se o seguinte mtodo:

1- Clicou-se no cone Representao grfica na barra de menus e na tela seguinte clicou-se


no boto ( ).

Figura 36 Criao da Representao Grfica.

Fonte: Autores

2- Informou-se um nome para a representao grfica, e foi anexada uma imagem de uma
planta 3D similar a maquete do projeto. Esta imagem foi utilizada como plano de fundo para as
animaes que sero implementadas. Aps todas as configuraes, clicou-se em Save.
61

Figura 37 Anexando Imagem

Fonte: Autores

Para a configurao da representao grfica foi necessrio inserir os datas points, atravs
dos quais ser possvel controlar um LED e visualizar informaes como status do LED e
temperatura aferida. Segue o procedimento de criao do boto Liga/Desliga do LED.

1- No menu Componentes selecionou-se a opo Data Point Simples. Conforme


imagem:
62

Figura 38 Configurao do Tipo de Data Point do Boto do LED

Fonte: Autores

2- Em seguida, foi selecionado o data point referente ao boto que est sendo configurado,
que no caso Lampada_Quarto Liga_Desliga.
Conforme imagem:

Figura 39 Selecionando Data Point do Boto do LED

Fonte: Autores

3- Foi selecionado as opes Configurvel e Exibir Controles.


63

Conforme imagem abaixo:

Figura 40 Configuraes do Boto do LED

Fonte: Autores

4- Realizada as configuraes, o boto ser exibido desta forma:

Figura 41: Boto de Controle do LED

Fonte: Autores

5- Ao passar o mouse sobre, o boto ele ser exibido num formato que permita o controle do
LED, conforme imagem abaixo:

Figura 42: Operao do Boto de Controle do LED

Fonte: Autores

Inserindo e configurando o data point do sensor de temperatura


64

1- No campo Componentes foi selecionada a opo Gif analgico.

Figura 43 Configurao do Tipo de Data Point do Sensor de Temperatura

Fonte: Autores

2- Selecionou-se o data point correspondente. Que neste caso foi Sensor-Temperatura.

Figura 44 Selecionando o Data Point do Sensor de Temperatura

Fonte: Autores
65

3- Foi definido o range de indicao de temperatura e depois selecionou-se a imagem do


termmetro.

Figura 45 Configurao do Termmetro

Fonte: Autores

4- Imagem do sensor aps configurao.

Figura 46 Termmetro Configurado

Fonte: Autores
66

Mostrar status do LED

1- Em Componentes foi selecionada a opo GIF Binrio.

Figura 47 - Configurao do Tipo de Data Point do Status do LED

Fonte: Autores

2- Em seguida informou - se o data point correspondente, neste caso foi Lampada


Status. Tambm foi informado um nome para que seja mostrado este item na tela de
representao grfica. Porm esse nome s ser exibido ao passar mouse sobre o cone.
67

Figura 48 - Selecionando o Data Point do Status do LED

Fonte: Autores

3- Clicou- se na opo Exibir texto, para que seja mostrado o status Ligado/Desligado
do LED e escolheu como ele ser exibido com status de ligado e desligado.

Figura 49 Configurao do Status do LED

Fonte: Autores
68

Figura 50 Status do LED Configurado

Fonte: Autores

Os passos para configurar a indicao de ativao do buzzer so similares a esse, alterando


apenas o estilo das lmpadas.
69

ANEXO E CDIGO COMPLETO

//Inclusao das Bibliotecas


#include <Modbus.h>
#include <ModbusSerial.h>
#include <DHT.h>
#include <SPI.h>

//Configuraao Inicial do Sensor de Temperatura


#define DHTPIN A0
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

//Configurando Registradores Sensor de Temperatura


const int SENSOR_TEMP = 0;
const int sensorPin_Temp = A0;

//Configurando Registradores dos Botoes e LEDs Quarto


const int LAMP_Quarto_COIL = 0;
const int HAB_Quarto_COIL = 1;
const int SWITCH_Quarto_ISTS = 0;

const int Botao_Quarto = 12;


const int LED_Quarto = 13;

int Status_Quarto = 0;
int Status_LED_Quarto = 0;

//Configurando Registradores dos Botoes e LEDs Sala Cozinha


const int LAMP_sala_COIL = 2;
const int HAB_sala_COIL = 3;
const int SWITCH_sala_ISTS = 1;

const int Botao_sala = 10;


const int LED_sala = 11;

int Status_sala = 0;
int Status_LED_sala = 0;

//Configurando Registradores dos Botoes e LEDs Banheiro


const int LAMP_ban_COIL = 4;
const int HAB_ban_COIL = 5;
const int SWITCH_ban_ISTS = 2;
70

const int Botao_ban = 8;


const int LED_ban = 9;

int Status_ban = 0;
int Status_LED_ban = 0;

//LDR - Sensor de Luminosidade


int LED_LDR = 5; //Porta a ser utilizada para ligar o LED
int portaLDR = A1; //Porta analgica utilizada pelo LDR

const int LED_Status_LDR_ISTS = 3;

//Configuracao PIR

int pinBuzzer = 6;
int pinSensorPIR = 7;
int valorSensorPIR = 0;

const int Status_PIR_ISTS = 4;

ModbusSerial mb;

long ts;

void setup () {

// Inicializa a porta Serial


Serial.begin(9600);
//Inicializa a Biblioteca DHT
dht.begin();

// Config Modbus Serial (port, speed, byte format)


mb.config(&Serial, 9600, SERIAL_8N1);
// Set the Slave ID (1-247)
mb.setSlaveId(1);

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();

//Logica do Botao Quarto

// Se o habilita do mango estive acionado


if (mb.Coil(HAB_Quarto_COIL) == true)
{
// Recebe o comando virtual do mango e aciona o LED
digitalWrite(LED_Quarto, mb.Coil(LAMP_Quarto_COIL));
// Envia para o mango a situaao que esta o porta do LED
mb.Ists(SWITCH_Quarto_ISTS, digitalRead(LED_Quarto));
}

else // Senao faz a rotina de acionamento dos botoes fisicos


{
// Se o botao estiver nao pressionado e o
// o Status_LED for 0
if (digitalRead(Botao_Quarto) == LOW && Status_LED_Quarto == 0)
{
72

// Passa o status para 1


Status_Quarto = 1;
// espera 100 mili segundos
delayMicroseconds(100);
}

// Status for para 1 e o botao for pressionado


if (Status_Quarto == 1 && digitalRead(Botao_Quarto) == HIGH)
{
//Ligo o LED
digitalWrite(LED_Quarto, HIGH);
// Modo e Status_LED para 1
Status_LED_Quarto = 1;
// Envia para o mango a situaao que esta o porta do LED
mb.Ists(SWITCH_Quarto_ISTS, digitalRead(LED_Quarto));
}

// Se o botao for solto e o Status_LED for 1


if (digitalRead(Botao_Quarto) == LOW && Status_LED_Quarto == 1)
{
// Mudo o Status para 0
Status_Quarto = 0;
// espera 100 mili segundos
delayMicroseconds(100);
}

// Se o Status for 0 e o botao for novamente pressionado


if (Status_Quarto == 0 && digitalRead(Botao_Quarto) == HIGH)
{
// Apago o LED
digitalWrite(LED_Quarto, LOW);
// Mudo o Status para condiao inicial 0
Status_LED_Quarto = 0;
// Envia para o mango a situaao que esta o porta do LED
mb.Ists(SWITCH_Quarto_ISTS, digitalRead(LED_Quarto));
}
}

//Logica do Botao Sala e Cozinha

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 situaao que esta o porta do LED
mb.Ists(SWITCH_sala_ISTS, digitalRead(LED_sala));
}
73

else // Senao faz a rotina de acionamento dos botoes fisicos


{
// Se o botao estiver nao pressionado e o
// o Status_LED for 0
if (digitalRead(Botao_sala) == LOW && Status_LED_sala == 0)
{
// Passa o status para 1
Status_sala = 1;
// espera 100 mili segundos
delayMicroseconds(100);
}

// Status for para 1 e o botao for pressionado


if (Status_sala == 1 && digitalRead(Botao_sala) == HIGH)
{
//Ligo o LED
digitalWrite(LED_sala, HIGH);
// Modo e Status_LED para 1
Status_LED_sala = 1;
// Envia para o mango a situaao que esta o porta do LED
mb.Ists(SWITCH_sala_ISTS, digitalRead(LED_sala));
}

// Se o botao for solto e o Status_LED for 1


if (digitalRead(Botao_sala) == LOW && Status_LED_sala == 1)
{
// Mudo o Status para 0
Status_sala = 0;
// espera 100 mili segundos
delayMicroseconds(100);
}

// Se o Status for 0 e o botao for novamente pressionado


if (Status_sala == 0 && digitalRead(Botao_sala) == HIGH)
{
// Apago o LED
digitalWrite(LED_sala, LOW);
// Mudo o Status para condiao inicial 0
Status_LED_sala = 0;
// Envia para o mango a situaao que esta o porta do LED
mb.Ists(SWITCH_sala_ISTS, digitalRead(LED_sala));
}
}

//Logica Botao Banheiro

// Se o habilita do mango estive acionado


74

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 situaao que esta o porta do LED
mb.Ists(SWITCH_ban_ISTS, digitalRead(LED_ban));
}

else // Senao faz a rotina de acionamento dos botoes fisicos


{
// Se o botao estiver nao pressionado e o
// o Status_LED for 0
if (digitalRead(Botao_ban) == LOW && Status_LED_ban == 0)
{
// Passa o status para 1
Status_ban = 1;
// espera 100 mili segundos
delayMicroseconds(100);
}

// Status for para 1 e o botao for pressionado


if (Status_ban == 1 && digitalRead(Botao_ban) == HIGH)
{
//Ligo o LED
digitalWrite(LED_ban, HIGH);
// Modo e Status_LED para 1
Status_LED_ban = 1;
// Envia para o mango a situaao que esta o porta do LED
mb.Ists(SWITCH_ban_ISTS, digitalRead(LED_ban));
}

// Se o botao for solto e o Status_LED for 1


if (digitalRead(Botao_ban) == LOW && Status_LED_ban == 1)
{
// Mudo o Status para 0
Status_ban = 0;
// espera 100 mili segundos
delayMicroseconds(100);
}

// Se o Status for 0 e o botao for novamente pressionado


if (Status_ban == 0 && digitalRead(Botao_ban) == HIGH)
{
// Apago o LED
digitalWrite(LED_ban, LOW);
// Mudo o Status para condiao inicial 0
Status_LED_ban = 0;
75

// Envia para o mango a situaao que esta o porta do LED


mb.Ists(SWITCH_ban_ISTS, digitalRead(LED_ban));
}
}

// Logica do Sensro de Temperatura


analogRead(sensorPin_Temp);
float t = dht.readTemperature();
if (millis() > ts +2000)
{
ts = millis();
Serial.println(t);
Serial.println(" C");
mb.Ireg(SENSOR_TEMP, t);
}

//Logica do Sensor LDR

int estado = analogRead(portaLDR); //L o valor fornecido pelo LDR

// Caso o valor lido na porta analgica seja maior do que


// 800, acende o LED
if (estado > 900)
{
digitalWrite(LED_LDR, HIGH);
mb.Ists(LED_Status_LDR_ISTS, digitalRead(LED_LDR));
}
else //Caso contrrio, apaga o LED
{
digitalWrite(LED_LDR, LOW);
mb.Ists(LED_Status_LDR_ISTS, digitalRead(LED_LDR));
}

//Logica Sensor PIR

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);
}

Você também pode gostar