Upload
paulo-victor-felicio-lage
View
171
Download
8
Embed Size (px)
DESCRIPTION
Automação Residencial Utilizando Raspberry Pi e Android
Citation preview
UNIVERSIDADE DO OESTE DE SANTA CATARINA UNOESC UNIDADE CHAPEC
RODRIGO BATISTELLO
AUTOMAO RESIDENCIAL UTILIZANDO RASPBERRY PI E ANDROID
CHAPEC, SC 2014
RODRIGO BATISTELLO
AUTOMAO RESIDENCIAL UTILIZANDO RASPBERRY PI E ANDROID
Trabalho de Concluso de Curso apresentado ao Curso de Sistemas de Informao, rea das Cincias Exatas e da Terra, da Universidade do Oeste de Santa Catarina UNOESC Unidade de Chapec como requisito parcial obteno do grau de bacharel de Sistemas de Informao.
Orientador: Prof. Jose Luiz Cunha Quevedo
Chapec, SC 2014
RODRIGO BATISTELLO
AUTOMAO RESIDENCIAL UTILIZANDO RASPBERRY PI E ANDROID
Trabalho de Concluso de Curso apresentado ao Curso de Sistemas de Informao, rea das Cincias Exatas e da Terra, da Universidade do Oeste de Santa Catarina UNOESC Unidade de Chapec como requisito parcial obteno do grau de bacharel de Sistemas de Informao.
Aprovado em: ____/____/_____
BANCA EXAMINADORA
________________________________________________ Prof. Jose Luiz Cunha Quevedo Universidade do Oeste de Santa Catarina Nota atribuda:
________________________________________________ Prof. Cristiano Agosti Universidade do Oeste de Santa Catarina Nota atribuda:
________________________________________________ Prof. Moacir Alves Universidade do Oeste de Santa Catarina Nota atribuda:
A minha famlia pelo apoio irrestrito em todos os momentos de minha vida.
AGRADECIMENTOS
Agradeo a Deus por tudo, principalmente pela sade e a fora para concluir
este trabalho.
A minha famlia, meu pai Ary, minha me Lorena e minhas irms Francieli e
Eveline pelo apoio e o incentivo em todos os momentos difceis.
Ao meu orientador Jose Luiz por ter aceitado fazer parte deste desafio e por ter
me ajudado a conclu-lo.
Aos meus amigos e colegas de curso, Bruna, Franciele e Rafael por terem me
ajudado na resoluo de problemas e no esclarecimento de dvidas.
E por fim, a todos os professores e outras pessoas que de alguma forma
contriburam para a realizao deste trabalho.
A persistncia o menor caminho do xito. Charles Chaplin
RESUMO
A automao residencial surgiu entre as dcadas de 1970 e 1980 nos Estados Unidos,
com o intudo de facilitar a vida das pessoas, permitindo um controle centralizado e
integrado de diferentes tipos de equipamentos de uma residncia. O custo de
instalao desse tipo de tecnologia geralmente elevado e feito apenas por
profissionais capacitados, isso motivou o desenvolvimento de um prottipo de
automao residencial utilizando tecnologias mais populares, no caso o Raspberry Pi,
uma placa de expanso e um dispositivo mvel com plataforma Android. Por meio de
uma pesquisa exploratria, cujas tcnicas utilizadas foram pesquisas documentais e
bibliogrficas a fim de compreender e explicar do que se trata a automao residencial
e as tecnologias utilizadas, desenvolveu-se um prottipo que possibilita aos
moradores de uma residncia controlarem remotamente a iluminao, enviar
comandos para acionamento de equipamentos eletrnicos, controlar alarme e som
ambiente, permitir a visualizao da temperatura e humidade bem como o
monitoramento de uma cmera de segurana. Tambm foi desenvolvido um controle
de agendamento para acionar os equipamentos em determinados dias e horrios. Isso
tudo resultou em um sistema de automao perfeitamente utilizvel. As tecnologias
abordadas adaptaram-se com mrito ao projeto, apontando assim que o uso do
Raspberry Pi em sistemas de automao perfeitamente vivel bem como a
integrao com dispositivos mveis que utilizam a plataforma Android.
Palavras-chave: Automao residencial, Raspberry Pi, Android.
ABSTRACT
Residential automation arose between the decades of 1970 and 1980 in the United
States, with the aim of facilitating people's lives, allowing a centralized and
integrated control of different types of equipment of a residence. The cost of
installation of this type of technology is usually high and done only by trained
professionals, that motivated the development of a prototype of residential automation
using most popular technologies, in case the Raspberry Pi, an expansion card and a
mobile device with Android platform. Through an exploratory research, whose
techniques used were documentary and bibliographical researches in order to
understand and explain what home automation is all about and the technologies used,
it was developed a prototype that allows residents of a residence to
control remotely the lighting, to send commands to start electronic equipment, to
control the alarm and the sound of the environment, to allow the display
of the temperature and humidity as well as the monitoring of a security camera. It was
also developed a scheduling control to trigger the equipment on certain days and
times. This all resulted in a perfectly usable automation system. The
technologies addressed have adapted with merit to the project, pointing
out that the use of Raspberry Pi in automation systems is perfectly feasible as
well as the integration with mobile devices using the Android platform.
Keywords: Home automation, Raspberry Pi, Android.
LISTA DE FIGURAS
Figura 1 - Raspberry Pi modelo B ............................................................................. 24
Figura 2 - Organizao dos pinos GPIO do Raspberry Pi (26 pinos) ........................ 26
Figura 3 - Organizao dos pinos GPIO do Raspberry Pi (8 pinos) .......................... 26
Figura 4 Placa para automao residencial desenvolvida pelo Projeto Arduino .... 28
Figura 5 - Sistema Computacional ............................................................................ 30
Figura 6 - Caso de uso .............................................................................................. 42
Figura 7 - MER .......................................................................................................... 45
Figura 8 - Envio do sistema operacional para o carto de memria ......................... 47
Figura 9 - Interface da ferramenta Putty .................................................................... 48
Figura 10 - Conexo como Raspbery Pi atravs da ferramenta Putty ...................... 48
Figura 11 - Interface da IDE para desenvolvimento em Python ................................ 49
Figura 12 - Montagem da Maquete ........................................................................... 53
Figura 13 - Prottipo para demonstrao do sistema de automao ........................ 54
Figura 14 Componentes utilizados para montagem do sistema de automao ..... 55
Figura 15 - Esquema eltrico do sensor de temperatura e humidade ....................... 56
Figura 16 - Esquema de conexo dos sensores de alarme ...................................... 57
Figura 17 - Esquema eltrico dos rels ..................................................................... 57
Figura 18 - Esquema de conexo da sirene .............................................................. 58
Figura 19 - Processo de montagem da parte eltrica e do painel de controle........... 59
Figura 20 - Painel de controle do sistema de automao ......................................... 59
Figura 21 - Comunicao entre os dispositivos mveis e o sistema de automao .. 60
Figura 22 Interface inicial do sistema ao lado da configurao de acesso ............. 63
Figura 23 - Interface de controle dos rels (Aplicativo Cliente) ................................. 65
Figura 24 - Controle dos rels x Efeito no prottipo .................................................. 66
Figura 25 Prottipo desenvolvido com todos os rels ligados ................................ 67
Figura 26 - Menu de navegao do aplicativo para Android ..................................... 67
Figura 27 - Interface de controle do alarme ao lado dos ltimos disparos ................ 68
Figura 28 - Interfaces de controle de agendamento .................................................. 69
Figura 29 - Interface para visualizao de temperatura e humidade ......................... 70
Figura 30 - Interface para visualizao da imagem da cmera ................................. 71
Figura 31 - Interface de controle do som ambiente ................................................... 72
Figura 32 - Interfaces de configurao do sistema .................................................... 74
LISTA DE QUADROS
Quadro 1 - Requisitos funcionais e no funcionais ................................................... 39
Quadro 2 - Expanso do caso de uso ....................................................................... 43
Quadro 3 Trecho da rotina de interpretao do comando recebido (Servidor) ....... 63
Quadro 4 - Trecho de cdigo Java que estabelece a conexo com o servidor ......... 64
Quadro 5 - Trecho de cdigo responsvel por ligar ou desligar o rel (Servidor) ..... 65
Quadro 6 - Trecho de cdigo que faz a leitura do sensor de alarme (Servidor) ........ 68
Quadro 7 - Trecho do mtodo que obtm a temperatura e a humidade (Servidor) ... 70
Quadro 8 - Trechos de cdigo correspondentes ao controle da cmera ................... 71
Quadro 9 - Trecho de cdigo Python que inicia a execuo das msicas ................ 73
LISTA DE TABELAS
Tabela 1 Utilizao de tecnologias relacionadas a automao residencial ............ 21
LISTA DE ABREVIAES E SIGLAS
ADT Android Developer Tools
ARM Advanced RISC Machine
FTP File Transfer Protocol
GB Gigabyte
Gbps Gigabit por segundo
GPIO General Purpose Input/Output
GPL General Public License
HDMI High-Definition Multimedia Interface
IDE Integrated Development Environment
IEEE Institute of Electrical and Electronics Engineers
LAN Local Area Networks
MB Megabyte
Mbps Megabit por segundo
MDF Medium Density Fiberboard
MER Modelo Entidade-Relacionamento
MHz Mega Hertz
OHA Open Handset Alliance
PDA Personal Digital Assistant
RAM Random Access Memory
SD Secure Digital
SSH Secure Shell
USB Universal Serial Bus
UTF-8 8-bit Unicode Transformation Format
VDI Voz, Dados e Imagem
WLAN Wireless Local Area Netwok
XML Extensible Markup Language
SUMRIO
1 INTRODUO ............................................................................................................... 15
1.1 OBJETIVOS ................................................................................................................ 15
1.1.1 Objetivo geral ......................................................................................................... 16
1.1.2 Objetivos especficos ........................................................................................... 16
1.2 ESTRUTURA DO TRABALHO .................................................................................. 16
2 REVISO DA LITERATURA........................................................................................ 18
2.1 AUTOMAO RESIDENCIAL .................................................................................. 18
2.2 RASPBERRY PI ......................................................................................................... 22
2.2.1 Aplicao................................................................................................................. 24
2.2.2 Raspbian ................................................................................................................. 25
2.2.3 General Purpose Input/Output (GPIO)............................................................... 25
2.3 PLACAS DE EXPANSO .......................................................................................... 26
2.4 MOBILIDADE .............................................................................................................. 28
2.5 SISTEMAS OPERACIONAIS .................................................................................... 29
2.5.1 Linux ........................................................................................................................ 30
2.6 ANDROID .................................................................................................................... 31
2.7 LINGUAGENS DE PROGRAMAO ...................................................................... 32
2.7.1 Java .......................................................................................................................... 32
2.7.2 Python ...................................................................................................................... 33
2.8 REDES DE COMPUTADORES ................................................................................ 34
2.9 UNIFIED MODELING LANGUAGE (UML) ............................................................... 35
3 CAMPO OU REA DE ESTUDO ................................................................................ 36
4 MTODOS ...................................................................................................................... 37
4.1 DELIMITAO DO ESTUDO, MTODOS E TCNICAS DE COLETA DE DADOS ............................................................................................................................................ 37
4.2 CARACTERIZAO DO ESTUDO .......................................................................... 38
4.3 TCNICA DE ANLISE E INTERPRETAO DE DADOS ................................... 38
4.4 QUESTES DE PESQUISA ..................................................................................... 38
5 APRESENTAO E ANLISE DOS RESULTADOS .............................................. 39
5.1 MODELAGEM DO SISTEMA .................................................................................... 39
5.1.1 Requisitos funcionais e no funcionais ........................................................... 39
5.1.2 Caso de uso ............................................................................................................ 42
5.1.2.1 Expanso do caso de uso ................................................................................... 43
5.1.3 Modelo Entidade-Relacionamento ..................................................................... 45
5.2 INSTALAO DO SISTEMA OPERACIONAL E APLICATIVOS .......................... 46
5.2.1 Instalao do sistema operacional no Raspberry Pi...................................... 47
5.2.2 Instalao da IDE de desenvolvimento no Raspberry Pi .............................. 49
5.2.3 Configurao dos pinos GPIO ............................................................................ 50
5.2.4 Instalao do banco de dados ............................................................................ 50
5.2.5 Instalao do gerenciador do banco de dados ............................................... 51
5.2.6 Instalao do servidor FTP.................................................................................. 51
5.2.7 Instalao do servidor de cmera ...................................................................... 52
5.2.8 Instalao do MPlayer .......................................................................................... 52
5.3 CONSTRUO DO PROTTIPO ............................................................................ 53
5.4 DESENVOLVIMENTO DO SISTEMA ....................................................................... 60
5.4.1 O aplicativo servidor ............................................................................................. 60
5.4.2 O Aplicativo cliente ............................................................................................... 61
5.4.3 Funcionamento do sistema ................................................................................. 62
6 CONSIDERAES FINAIS ......................................................................................... 75
6.1 TRABALHOS FUTUROS ........................................................................................... 76
REFERNCIAS ................................................................................................................. 78
GLOSSRIO ..................................................................................................................... 81
15
1 INTRODUO
A automao residencial ou domtica como tambm conhecida, da unio do
latim Domus que significa casa e robtica controle automatizado de algo, veio para
permitir aos usurios um controle automatizado e centralizado das residncias,
agregando mais facilidade e qualidade de vida as pessoas.
Com a popularizao dos smartphones e tablets surgiu a possibilidade de
integrar as tecnologias mveis com a automao, a fim de proporcionar aos usurios
controle sobre suas residncias mesmo distncia proporcionando uma nova
experincia de vida aos moradores dessas casas inteligentes.
Geralmente o custo para implantao desse tipo de sistema bastante elevado
e feito apenas por profissionais capacitados, o que torna a mesma inacessvel para
grande parte da populao. No entanto o surgimento de novas tecnologias
proporcionou a construo de sistemas de automao bastante similares aos j
comercializados e com um custo relativamente menor.
por esses fatores que este trabalho justifica-se na construo de um sistema
de automao residencial composto por um dos menores computadores do mundo,
denominado Raspberry Pi, juntamente com uma placa de expanso prpria para esta
finalidade e um smartphone com sistema Android. Neste sistema ser possvel
controlar iluminao, alarme, som ambiente, visualizar cmera de segurana,
temperatura e humidade, criar agendamentos, entre outros.
Tudo isso no intuito de facilitar ainda mais a vida das pessoas, permitir um
controle centralizado e sem a necessidade de estar presente no local, aumentar a
segurana da residncia, a qualidade de vida dos moradores, alm de comprovar que
essas novas tecnologias se adaptam perfeitamente a esta finalidade.
1.1 OBJETIVOS
A seguir apresenta-se o objetivo geral deste trabalho, bem como os objetivos
especficos.
16
1.1.1 Objetivo geral
Desenvolver um prottipo de automao residencial onde o usurio poder
controlar remotamente sua residncia atravs de um dispositivo mvel com plataforma
Android, enviando comandos para controlar iluminao, equipamentos eletrnicos,
sistema de alarme, entre outros.
1.1.2 Objetivos especficos
Para atingir o objetivo geral, consideram-se os seguintes objetivos especficos:
Estudar e compreender o funcionamento de uma residncia automatizada,
levantando as principais aplicaes e vantagens.
Demonstrar a aplicao de novas tecnologias em solues de automao
residencial.
Construir um prottipo para representar a aplicao da automao residencial.
Construir as ligaes eltricas entre o Raspberry Pi, placa de automao e o
prottipo, possibilitando o acionamento dos equipamentos e sensores.
Desenvolver um aplicativo para Android que possibilite o controle da
automao residencial a distncia, enviando comandos para ligar e desligar a
iluminao, eletroeletrnicos, alarme, entre outros.
Desenvolver um aplicativo servidor que ficar rodando no Raspberry Pi,
recebendo e executando os comandos encaminhados pelo dispositivo mvel.
1.2 ESTRUTURA DO TRABALHO
Este trabalho est organizado da seguinte maneira: o captulo 2 ou reviso da
literatura, o local onde ser apresentado todo referencial terico necessrio para
elaborao do trabalho, tratando as principais caractersticas e vantagens da
17
automao residencial e abordando as tecnologias utilizas, como: Raspberry Pi e
Android, alm das linguagens de programao Java e Python.
Na sequncia sero apresentados os captulos 3 e 4 que contm informaes
sobre o campo e a rea do estudo alm das metodologias utilizadas e questes de
pesquisa que instigaram a elaborao do trabalho.
O captulo 5 apresenta os resultados deste trabalho e tudo o que foi feito para
atingir os objetivos e responder as questes de pesquisa. Ele descreve todos os
passos executados, como a instalao do sistema operacional no Raspberry Pi,
instalao de pacotes de aplicativos no sistema, criao do prottipo,
desenvolvimento e funcionamento do sistema proposto junto ao prottipo criado.
Por ltimo temos o captulo 6, onde est a concluso deste trabalho, ou seja,
tudo que foi possvel aprender e concluir com a realizao do mesmo, bem como
ideias para trabalhos futuros.
18
2 REVISO DA LITERATURA
A reviso da literatura desse trabalho aborda uma viso geral e atualizada dos
assuntos tratados, com enfoque principal na automao residencial ou domtica.
Tambm sero apresentadas as tecnologias utilizadas no seu desenvolvimento como
Raspberry Pi, Android, Java e Python.
2.1 AUTOMAO RESIDENCIAL
Segundo Muratori e Dal B (2011, p. 1) automao residencial o conjunto de
servios proporcionados por sistemas tecnolgicos integrados como o melhor meio
de satisfazer as necessidades bsicas de segurana, comunicao, gesto energtica
e conforto de uma habitao.
A automao residencial tambm conhecida como domtica (do latim
Domus que significa casa e robtica controle automatizado de algo), casa
inteligente, casa automtica ou retrofitting (ato de introduzir uma modificao em algo
j construdo). Alguns autores costumam achar mais adequado o termo domtica, por
ser mais abrangente e largamente utilizado na Europa, porm no Brasil mais comum
o uso da traduo literal do termo home automation, denominao americana mais
restrita, ou automao residencial. (MURATORI; DAL B, 2011; BOLZANI, 2004).
Sendo assim a automao residencial pretende identificar todas as tecnologias
que permitem tornar automtica uma srie de operaes e tarefas dentro de uma
residncia (PRUDENTE, 2011).
Para Prudente (2011) a domtica pode ser aplicada em todas as atividades
dentro de uma habitao, integrando e conectando diferentes tipos de equipamento e
instalaes, alguns dos exemplos que ele cita so: controle de iluminao e
dimerizao (luminosidade), sistema de ar condicionado, ligar e desligar televises,
comandos de veneziana, porta, porto eletrnico, controle de parmetros ambientais
e atmosfricos, comando e controle para cada tipo de eletrodomstico, sistema de
alarme antifurto, controle de acesso, deteco de incndio, vazamento de gs, perda
19
de gua, cmeras de vigilncia, entretenimento, home theater, internet, tele socorro e
outros auxlios para idosos e deficientes fsicos.
A automao residencial baseada na automao industrial, muito mais
conhecida e difundida. Devido a diferena entre os dois tipos de ambientes, projetos
especficos para cada rea tm sido desenvolvidos. A automao em projetos de
pequeno e mdio porte com caractersticas comerciais e residenciais alm dos
primeiros mdulos inteligentes comearam a surgir entre as dcadas de 1970 e 1980.
Nos Estados Unidos, no fim dos anos 70 surgia os primeiros mdulos inteligentes,
com comandos enviados pela prpria rede eltrica, tratavam-se de solues simples
e no integradas como ligar remotamente algum equipamento ou luzes. J nos anos
80 algumas companhias comearam a desenvolver sistemas de automao, e em
1996 havia mais de 4 milhes de edifcios e residncias automatizadas (BOLZANI,
2004; MURATORI; DAL B, 2011).
Hoje existem no mercado empresas que oferecem um conjunto completo de
recursos, onde o usurio pode escolher entre as opes disponveis, alm do mais os
dispositivos podem ser acionados e controlados pela mesma interface, seja remoto,
por voz ou telefone. Esses sistemas podem tambm ser programados para simular
presena e assim expulsar possveis intrusos, ou at mesmo chamar a polcia.
(BOLZANI, 2004).
Segundo Bolzani (2004, p. 60) as caractersticas de um bom sistema inteligente
so:
Capacidade de integrar todos os sistemas;
Atuao em condies variadas;
Memria;
Noo temporal;
Fcil relao com o usurio;
Facilidade de programao;
Autocorreo.
Para Muratori e Dal B (2011) a automao residencial pode ser dividida em 4
classes, cada uma delas compreende as seguintes opes:
Automao da instalao eltrica: compreende o fornecimento de
controladores e atuadores: softwares de controle e superviso, rels, interface,
temporizadores e sensores;
20
Controles remoto universais: fornecimento de controles fixos em paredes,
painis mveis, licenas de software de integrao para Iphone, celulares,
entre outros;
Gesto de energia: sistema de gerenciamento do consumo energtico,
medio do consumo de gua, equipamentos para proteo eltrica e de
gerao de fontes de energia alternativas;
Acessrios e complementos: compreende motorizao de persianas, toldos e
cortinas, pisos aquecidos, aspirao central a vcuo, desembaadores de
espelhos, irrigao automtica, fechaduras eltricas, equipamentos de controle
de acesso, media centers, ativos de rede e telefonia.
A aplicao de sistemas inteligentes e automatizados trazem inmeros
benefcios aos seus utilizadores.
Automatizando os sistemas, consegue-se um aproveitamento melhor da luminosidade ambiente, controlando luzes e persianas e mantendo sempre a temperatura ideal, mas sem desperdcio, obtendo-se uma reduo no consumo de energia. Um ambiente inteligente aquele que otimiza certas funes inerentes operao e administrao de uma residncia. como se ela tivesse vida prpria, com crebro e sentidos (BOLZANI, 2004, p. 60).
Entre as vantagens obtidas com a aplicao de uma automao residencial
Prudente (2011, p. 3) destaca:
Maior conforto: deixam o ambiente mais acolhedor e agradvel, permitem gerir
e controlar parmetros que incidem diretamente sobre a qualidade de vida das
pessoas;
Maior segurana: tanto no que diz respeito as pessoas, quanto eventos
perigosos. possvel se precaver contra furtos, ou no caso de um sinistro como
incndio, vazamentos de gs, entre outros;
Maior versatilidade: possibilita variar a instalao e as funes dos
componentes com o uso de softwares dedicados;
Maior economia na gesto da instalao: possvel obter-se um controle total
sobre a energia, iluminao, aquecimento, sistema de ar condicionado, entre
outros.
Alm das vantagens citadas acima a aplicao de um sistema de automao
residencial pode trazer benefcios tambm s pessoas com dificuldades de locomoo
ou com algum tipo de deficincia fsica. Existem aparelhos especficos que do uma
certa liberdade elas, porm costumam ser caros e delicados. Com os sistemas
21
residenciais inteligentes, muitas alternativas mais baratas e flexveis tm surgido. Para
essas pessoas faz muita diferena poder ligar e desligar luzes e equipamentos de uma
cadeira de rodas ou da cama (BOLZANI, 2004).
Em economias mais desenvolvidas o cenrio bastante propcio para as
chamadas casas inteligentes, algumas contribuies importantes para isso foram a
popularizao de diversas tecnologias e queda nos preos. As ofertas abundantes
de servios de comunicao como a internet tambm ajudaram. (MURATORI; DAL
B, 2011).
Pesquisas realizadas nos Estados Unidos revelaram que 84% dos construtores
de residncias entendem que incorporar tecnologia aos empreendimentos um
importante diferencial de mercado, consumidores mais novos adquirindo seu primeiro
imvel, so mais exigentes nesse quesito e o uso de sistemas automatizados com
apelo a sustentabilidade so cada vez mais requisitados. Entre as tecnologias
emergentes que tem possibilidade de crescimento nos prximos anos destacam-se
media centers, monitoramento a distncia, controle de iluminao e o home care
(modalidade de prestao de servios na rea da sade visando continuidade do
tratamento hospitalar em domiclio) (MURATORI; DAL B, 2011).
O crescimento da utilizao dessas tecnologias e a previso para os prximos
anos pode ser observado na tabela 1.
Tabela 1 Utilizao de tecnologias relacionadas a automao residencial
Tecnologia 2003 2004 2005 2006 2015 (Previso)
Cabeamento estruturado 42% 61% 49% 53% 80%
Monitoramento de segurana 18% 28% 29% 32% 81%
Multiroom udio 9% 12% 15% 16% 86%
Home Theater 9% 8% 11% 12% 86%
Controle de iluminao 1% 2% 6% 8% 75%
Automao integrada 0% 2% 6% 6% 70%
Gerenciamento de energia 1% 5% 11% 11% 62%
Fonte: Adaptado de MURATORI; DAL B (2011, p.3).
Apesar de muitas pessoas ainda pensarem nessas casas com certa viso
futurista, o potencial de crescimento desse mercado enorme, tanto que fez surgir
novas profisses, como a de integrador de sistemas, pessoa responsvel pela
especificao, fornecimento, instalao, programao e ps-venda de sistemas de
automao residencial (PRUDENTE, 2011; MURATORI; DAL B, 2011).
22
Aqui no Brasil o panorama tende mudar em um pequeno espao de tempo,
competio do mercado imobilirio cada vez mais acirrada e a utilizao de
diferenciais tecnolgicos podem fazer da automao um fator decisivo para atingir
consumidores com necessidades especificas, como segurana, entretenimento,
acessibilidade, trabalho em casa, conforto, convenincia e economia de energia,
aproximando cada vez mais o mercado domstico brasileiro dos padres
internacionais. (MURATORI; DAL B, 2011).
Existem diversas tecnologias que podem ser utilizadas no desenvolvimento de
sistemas de automao. Neste trabalho foi optado pelo uso do Raspberry Pi como
controlador principal do sistema, entenderemos um pouco mais sobre esta tecnologia
na sequncia.
2.2 RASPBERRY PI
Os computadores j fazem parte de nossas vidas e so indispensveis, tanto
no uso pessoal quanto profissional. Eles nos auxiliam nas tarefas cotidianas, na
comunicao e na automatizao de processos.
O Raspberry Pi nada mais que um dos menores computadores do mundo,
suas dimenses so prximas a de um carto de crdito e seu sistema operacional
padro o Linux. Ele pode ser usado para realizar boa parte das tarefas de um
computador comum e tambm nos mais diferentes tipos de projetos (NETTO, 2013).
A notcia do desenvolvimento do Raspberry Pi veio tona em maio de 2011 e
foi muito bem recebida. Os prprios idealizadores ficaram surpresos, isso porque ele
despertou o interesse de programadores, profissionais da rea de automao e
entusiastas em geral, mesmo antes do incio de sua produo (NETTO, 2013, p. 13).
De acordo com Netto (2013) e a Raspberry Pi Foundation ([2013?]) o projeto
de desenvolvimento teve incio em 2006, quando um professor da universidade de
Cambridge, chamado Eben Upton, notou que o conhecimento sobre computadores
dos novos alunos de cincias da computao tinha diminudo em relao aos alunos
da dcada de 1990, isso porque antigamente para se usar um computador tinha que
saber um pouco de programao, ele imaginou ento que se existisse um computador
flexvel o bastante para ser uma ferramenta de aprendizado, com baixa potncia e
23
custo de fabricao que pudesse ser dado aos ingressantes poderia ajudar muito.
Porm depois de um tempo eles perceberam o verdadeiro potencial do projeto,
criaram uma instituio de caridade chamada Raspberry Pi Foundation e o Raspberry
Pi deixou de ser destinado apenas aos acadmicos e passou a ser uma verdadeira
ferramenta educacional, que poderia ser utilizada por crianas de todo o mundo.
No entanto, quanto mais a data de lanamento se aproximava mais era o
interesse das pessoas pelo pequeno computador, ento percebeu-se que ele no
serviria mais apenas para ensinar crianas, mas tambm como uma plataforma
alternativa para profissionais experientes de todo o mundo (NETTO, 2013).
Inicialmente o computador no se chamaria Raspberry Pi, Eben Upton pensou
em batiza-lo de ABC Micro, em homenagem aos computadores dos anos 90 que
eram utilizados para ensinar programao s crianas na escola, esses computadores
eram chamados de BBC Micros. Porm ele foi recebendo ideias de outros
colaboradores at que o nome foi mudado. O termo Raspberry que em portugus
significa framboesa uma aluso tradio de batizar computadores com o nome de
fruta, enquanto Pi uma referncia ao Python, que a linguagem de programao
nativa do Raspberry Pi (NETTO, 2013; RASPBERRY PI FOUNDATION, [2013?]).
Existem atualmente dois modelos do Raspberry Pi no mercado, eles so
denominados A e B. Ambos os modelos contam com um processador Advanced Risc
Machine (ARM) de 700 Mega Hertz (MHz), uma unidade de processamento grfico
Videocore IV, sada de vdeo High-Definition Multimedia Interface (HDMI) e vdeo
composto, sada de udio, conector de alimentao Universal Serial Bus (USB), uma
entrada para carto de memria que armazena o sistema operacional e programas,
conector para flat-cables de 15 vias para cmeras de vdeo e conexes General
Purpose Input/Output (GPIO), que so pinos de conexo programveis, cujo
comportamento pode ser controlado e definido via software. Tudo isso em dimenses
mnimas 85,60 mm x 56 mm e pesando apenas 45 gramas (NETTO, 2013).
A diferena bsica entre os modelos que o A mais simples, no possui
conexo de rede, conta com apenas uma conexo USB e possui 256 Megabyte (MB)
de memria Random Access Memory (RAM), esse modelo vendido por US$ 25,00.
J o modelo B (figura 1) um pouco mais completo, ele possui duas conexes USB,
conta com uma entrada de rede do tipo Ethernet e 512 MB de memria RAM e pode
ser comprado por US$ 35,00 (NETTO, 2013).
24
Figura 1 - Raspberry Pi modelo B
Fonte: O autor.
2.2.1 Aplicao
Este pequeno computador pode ser utilizado nos mais diferentes tipos de
projetos. A ideia inicial previa sua utilizao apenas para fins educacionais, porm
como o interesse pela placa foi tanta acabou se abrindo um infinito mundo de
possibilidades, com uma gama imensa de projetos e aplicaes.
Ele pode ser utilizado como um computador normal ou um computador para
programao, seja em Python, C/C++, Java ou at mesmo Assembly. As
possibilidades que os pinos GPIO oferecem tambm so enormes e fazem com que
o Raspberry Pi tambm possa ser usado como controlador de um rob ou em solues
que envolvem automao (NETTO, 2013).
Neste trabalho o Raspberry Pi o controlador do sistema de automao
residencial, ele juntamente com uma placa de expanso, que por sua vez comunicar
diretamente com os equipamentos da residncia. Foi optado pelo seu uso devido a
ele ter as caractersticas necessrias para utilizao em um sistema de automao
residencial e tambm por ele ser pouco explorado neste ramo.
25
2.2.2 Raspbian
O Raspberry Pi assim como qualquer outro computador precisa de um sistema
operacional para funcionar. O Raspbian um dos sistemas operacionais disponveis
para ele, sendo tambm o sistema operacional mais indicado para o uso. Ele
completo, possui uma interface grfica, navegador de internet, entre outras
funcionalidades. (NETTO, 2013). Como os demais sistemas que podem rodar no
Raspberry Pi baseado em Linux, para ser mais especfico essa verso em Debian.
um sistema operacional com o kernel otimizado e reduzido, de modo a obter uma
melhor performance e utilizao do hardware.
2.2.3 General Purpose Input/Output (GPIO)
O Raspberry Pi pode ser integrado com outros hardwares graas as suas
conexes GPIO, essas conexes so utilizadas diretamente neste trabalho, para
controlar os diferentes tipos de equipamentos conectados ao sistema de automao.
Em portugus pode-se dizer que General Purpose Input/Output (GPIO) so
pinos de propsito geral, isso porque fica a cargo do programador decidir se
determinado pino ser uma entrada ou uma sada de dados e qual ser sua funo
(NETTO, 2013).
O Raspberry Pi conta com 26 pinos GPIO, sendo que 17 deles podem ser
programados, os demais so pinos de energia, aterramento ou reservados para uso
futuro, conforme pode ser observado na figura 2. So esses pinos que permitem que
o Raspberry Pi seja utilizado no desenvolvimento de sistemas de automao, lendo
estados e realizando acionamentos (NETTO, 2013).
Alm desses 26 pinos GPIO o Raspberry Pi modelo B conta com mais 8 pinos
extras, destes 4 podem ser programados, eles no vm prontos para uso, mas basta
soldar os conectores para utiliz-los. O posicionamento desses pinos pode ser
observado na figura 3 (SILVEIRA, [2013?]).
26
Fonte: Adaptado de MONK (2013, p. 4)
Fonte: Adaptado de Monk (2013, p. 4) e Silveira ([2013?]).
2.3 PLACAS DE EXPANSO
Os pinos GPIO permitiram que o Raspberry Pi comunica-se com outros
hardwares. Para facilitar as integraes comearam as surgir as placas de expanso
ou em ingls Expansion Boards. Essas placas adicionam ainda mais possibilidades
de uso ao Raspberry Pi. Atualmente existem inmeros modelos e variedades,
desenvolvidas por diferentes profissionais espalhados pelo mundo.
Essas placas de expanso permitem o desenvolvimento de projetos mais
rpidos, e at mesmo por pessoas com pouco conhecimento em eletrnica, uma vez
Rede
Mini USB
5 V
GN
D
GP
IO 1
4
GP
IO 1
5
GP
IO 1
8
GP
IO 2
3
GP
IO 2
4
GP
IO 2
5
GP
IO 8
GP
IO 7
3.3
V
GP
IO 0
GP
IO 1
GP
IO 4
GP
IO 1
7
GP
IO 2
1
GP
IO 2
2
GP
IO 1
0
GP
IO 9
GP
IO 1
1
Figura 2 - Organizao dos pinos GPIO do Raspberry Pi (26 pinos)
Rede
Mini USB
5 V
GP
IO 2
8
GP
IO 3
0
GN
D
3.3
V
GP
IO 2
9
GP
IO 3
1
GN
D
Figura 3 - Organizao dos pinos GPIO do Raspberry Pi (8 pinos)
27
que, se existir uma placa de expanso com as funcionalidades necessrias, no ser
preciso investir em tempo e conhecimento para o desenvolvimento de um circuito mais
complexo.
Entre as mais diversas variedades destacam-se as placas para
desenvolvimento de automaes, como exemplo podemos citar a placa da figura 4,
que utilizada neste trabalho e foi desenvolvida pelo Projeto Arduino, ela permite
tanto o desenvolvimento de automao residencial quanto industrial.
Entre as caractersticas dessa placa, podemos dizer que ela consegue
alimentar o Raspberry Pi eliminando assim uma fonte de energia, possui 10 atuadores
(rels), 8 entradas para chaves ou sensores que permitem conectar sensores
magnticos, de movimento ou incndio, 8 entradas analgicas que por padro o
Raspberry Pi no tem e 3 transistores para controle de motores ou outros dispositivos
que precisam de uma resposta mais rpida. (PROJETO ARDUINO, [2013?]).
Como essa placa conectada ao Raspberry Pi que por sua vez roda Linux, o
projeto de automao pode ser baseado em diferentes linguagens como: C, Java,
Python, Pearl, entre outras. Alm do mais, essa placa compatvel com a biblioteca
desenvolvida pela Adafruit (Empresa que tambm fabrica placas de expanso para o
Raspberry Pi), essa biblioteca escrita em Python e tem seu cdigo aberto, podendo
ser utilizada para controlar todas as funes da placa de expanso do Projeto Arduino.
(PROJETO ARDUINO, [2013?]; RASPBERRY..., [2013?]).
A utilizao dessa placa no trabalho foi necessria para evitar a construo de
um circuito eltrico prprio, isso acontece devido a necessidade da utilizao de
alguns componentes eletrnicos para acionar os equipamentos que o Raspberry Pi
no tem, como rels, e tambm por permitir a conexo de uma quantidade maior de
equipamentos, gerenciados por micro controladores especficos que tambm no
esto presentes no Raspberry Pi. A opo por utilizar esse modelo de placa de
expanso tambm foi devido a facilidade de uso e de integrao com a linguagem de
programao Python.
28
Figura 4 Placa para automao residencial desenvolvida pelo Projeto Arduino
Fonte: O autor.
2.4 MOBILIDADE
Como este trabalho utiliza diretamente dispositivos mveis importante
definirmos do que eles se tratam. A mobilidade tem ganhado um enfoque cada vez
maior, principalmente pela popularizao dos celulares, notebooks e smartphones.
[...] mobilidade pode ser definida como a capacidade de acessar informaes a partir de qualquer lugar, a qualquer hora. Para isso, preciso contar com dispositivos mveis como notebooks, laptops, handhelds, entre outros, e uma conexo wireless eficiente, para o acesso aos sistemas remotos e internet (INTEL, [200-?], p. 1).
Engana-se quem pensa que mobilidade um termo moderno. O desejo da
humanidade comunicar-se a distncia e sem a necessidade de fios bem antigo. Um
grande passo foi dado em 1794 com a criao do primeiro telegrafo tico e bem mais
tarde, mais precisamente em 1947 com a criao do conceito de comunicao mvel,
ou seja, o celular que comeou a operar apenas 20 anos depois (INTEL, [200-?]).
Outro lanamento marcante ocorreu em 1993, quando a Apple lanou o Apple
Newton Message Pad, o primeiro Personal Digital Assistant (PDA) do mercado
mundial. No mesmo ano tambm foi lanado o Zoomer PDA desenvolvido pela Palm
Computing. Inicialmente nenhum dos modelos fez o sucesso esperado, talvez o preo
tenha contribudo, mas apesar disso, eles certamente marcaram o incio de uma
cadeia evolutiva (INTEL, [200-?]).
Com o passar dos anos, novos modelos de celulares e smartphones foram
lanados, cada vez com mais recursos e funcionalidades, como cmera digital, acesso
29
internet e tela sensvel ao toque. Novas empresas tambm entraram no ramo, e foi
em 2007 que o mercado reviveu grandes lanamentos com o Iphone da Apple que fez
um grande sucesso e tambm com o lanamento da plataforma Android do Google,
que por sua vez no chamou tanta ateno quanto o lanamento do Iphone. Mas,
alguns anos depois podemos dizer que o Android se tornou um sucesso, sendo uma
plataforma mundialmente conhecida e famosa, com milhares de aplicativos
disposio dos usurios (KAWAMOTO, 2011).
Atualmente a popularizao dos dispositivos mveis tem proporcionado o
acesso a essas tecnologias por milhares de pessoas, essa popularizao acaba
proporcionando a explorao de uma rea em constante evoluo e contribui para o
surgimento de novos aplicativos, ferramentas e tecnologias que tendem a facilitar
nosso dia-a-dia.
2.5 SISTEMAS OPERACIONAIS
Tanto dispositivos mveis quanto computadores precisam de um sistema
operacional para funcionarem, por isso que eles so to importantes no mundo da
tecnologia da informao, de nada adianta voc ter uma tima mquina sem um bom
sistema operacional, e de nada adianta voc ter um sistema operacional sem ter onde
execut-lo.
Sistema operacional nada mais que a camada de software colocada entre o
hardware e os programas que o usurio executa (figura 5) (OLIVEIRA; CARISSIMI;
TOSCANI, 2010). Ele o responsvel pela comunicao com o hardware, isto , faz
a ligao dos softwares do usurio com os perifricos, alm da distribuio e controle
dos recursos computacionais. Segundo Oliveira, Carissimi e Toscani (2010):
O sistema operacional responsvel pelo acesso aos perifricos; sempre que algum programa necessita de algum tipo de operao de entrada e sada, ele solicita ao sistema operacional. Dessa forma o programador no precisa conhecer os detalhes do hardware. Informaes do tipo como enviar um caractere para impressora ficam escondidas dentro do sistema operacional. Ao mesmo tempo, como todos os acessos aos perifricos so feitos atravs do sistema operacional, ele pode controlar qual programa est acessando qual recurso. possvel, ento, obter uma distribuio justa e eficiente dos recursos. (OLIVEIRA; CARISSIMI; TOSCANI, 2010, p. 22-23).
30
Figura 5 - Sistema Computacional
Fonte: OLIVEIRA, CARISSIMI, TOSCANI (2010, p. 22)
O sistema operacional procura tornar a utilizao do computador, mais eficiente
e conveniente (OLIVEIRA; CARISSIMI; TOSCANI, 2010). Eles existem a mais de 50
anos, e durante todo esse tempo uma grande variedade foi desenvolvida, mas nem
todos so muito conhecidos (TANENBAUM, 2009).
Entre os principais sistemas operacionais destacam-se o Windows, o Linux e o
Mac OS. Como apenas o Linux foi utilizado diretamente neste trabalho, conheceremos
um pouco mais sobre ele na sequncia.
2.5.1 Linux
O Linux um sistema operacional completo, desenvolvido pelo finlands Linus
Torvalds. Um clone do sistema Unix, sua primeira verso a 0.01 foi liberada em 1991,
essa verso continha 9.300 linhas de cdigos escritos em C e mais 950 linhas em
linguagem Assembly (TANENBAUM, 2009).
Segundo Campos (2006, p.1) Linux ao mesmo tempo um kernel (ou ncleo)
e o sistema operacional que roda sobre ele, dependendo do contexto em que voc
encontra a referncia. Atualmente o sistema mantido por uma comunidade de
desenvolvedores composta por pessoas e entidades coordenada por Linus.
Um sistema operacional de cdigo aberto, livre que adota uma licena do tipo
General Public License (GPL), o que significa que todos os interessados podem utiliz-
31
lo e redistribu-lo nos devidos termos de licena. Aliado com outros softwares livres o
Linux pode formar um ambiente moderno, seguro, eficiente e estvel para
computadores em geral, servidores e sistemas embarcados (CAMPOS, 2006).
O uso do Linux neste trabalho acontece diretamente no Raspberry Pi, porm
outro sistema operacional derivado do mesmo utilizado e tratado a seguir, o Android.
2.6 ANDROID
A plataforma Android vem crescendo muito nos ltimos, tanto em nmero de
usurios quanto em funcionalidades. Esse foi o principal fator que levou essa
plataforma a ser escolhida para o desenvolvimento mvel deste trabalho.
A plataforma Android foi desenvolvida com base no sistema operacional Linux,
com objetivo de permitir que os desenvolvedores criem aplicaes mveis que tirem
o mximo de proveito de seus aparelhos. um projeto de cdigo aberto, em constante
evoluo, que oferece um conjunto completo de softwares para dispositivos mveis
(OHA, [200-?]).
O Android uma plataforma para tecnologia mvel completa, envolvendo um
pacote com programas para celulares, j com um sistema operacional middleware,
aplicativos e interface do usurio. (PEREIRA; SILVA, 2009, p. 3).
Por ele ser open source, isto , ter seu cdigo aberto, o mesmo tem atrado a
ateno de muitos fabricantes de aparelhos telefnicos, uma vez que o mesmo pode
ser modificado e adaptado conforme as suas necessidades (PEREIRA; SILVA, 2009).
Por trs de seu desenvolvimento temos o Google e tambm um grupo formado
por empresas de telefnica mvel, fabricantes de aparelhos e desenvolvedores de
software. Criado para padronizar uma plataforma mvel de cdigo aberto, a fim de
atender as necessidades do mercado, esse grupo conhecido como Open Handset
Alliance (OHA). (LECHETA, 2013).
Lecheta (2013) comenta que toda a segurana do Android baseada na
segurana do Linux, cada aplicao executada em um processo separado, que
possu uma thread dedicada e tem seu prprio usurio no sistema operacional,
portanto nenhuma aplicao pode ter acesso aos diretrios e arquivos de outra. Est
32
uma caracterstica bastante interessante que refora a segurana do sistema
operacional.
2.7 LINGUAGENS DE PROGRAMAO
Linguagens de programao podem ser definidas como um conjunto de
instrues (vocabulrio) associado a um conjunto de regras (sintaxe). Elas so usadas
no desenvolvimento de programas para resoluo de um determinado problema
(WILLRICH, [200-?]). Esses programas podem rodar em diferentes plataformas e
hardwares, sejam eles computadores ou dispositivos mveis.
A fim de construir o sistema de automao residencial, foram utilizadas duas
linguagens de programao distintas neste trabalho. A seguir, ser apresentada as
principais caractersticas de cada uma delas.
2.7.1 Java
Java uma linguagem de programao orientada a objetos, que roda
independente de plataformas. Teve o incio de seu desenvolvimento em 1991, quando
um grupo de desenvolvedores da Sun Microsystems liderado por James Gosling
estava trabalhando no desenvolvimento de um projeto de TV interativa, James no
satisfeito com os resultados da linguagem utilizada, trancou-se em um escritrio e
criou a nova linguagem baseada em C e C++. O Java propriamente dito foi lanado
pela Sun Microsystems no segundo semestre de 1995, em um kit de desenvolvimento
gratuito. (CADENHEAD; LEMAY, 2005).
O Java uma linguagem compilada que tornou-se popular justamente por rodar
em mltiplas plataformas, por ser totalmente orientada a objetos, eficiente, possuir
suporte a concorrncia com o uso de threads e tambm por ser uma linguagem
segura, devido a sua coleta automtica de lixo que evita erros comuns dos
programadores e por seus tratamentos de exceo, que permitem aplicao
continuar rodando mesmo em condies anormais. (CESTA, 2009).
33
O Java foi utilizado no desenvolvimento do aplicativo para Android,
possibilitando o controle da automao pelo usurio, de maneira fcil e intuitiva, de
onde quer que ele esteja. Esta linguagem foi escolhida por ser a nativa da plataforma
Android, facilitando assim o acesso aos recursos do sistema.
2.7.2 Python
Python uma linguagem de programao de auto nvel, orientada a objetos,
de tipagem dinmica e forte, interpretada e interativa. Possui uma sintaxe clara e
concisa que favorece a legibilidade do cdigo e torna a linguagem mais produtiva
(BORGES, 2010).
A linguagem foi criada em 1990 por Guido Van Rossum na Holanda. A mesma
tinha foco em usurios como fsicos e matemticos e foi concebida a partir de uma
outra linguagem existente na poca conhecida como ABC. Atualmente a linguagem
bem aceita na indstria e por empresas de alta tecnologia. (BORGES, 2010).
O Python possui diversas estruturas de alto nvel, uma vasta coleo de
mdulos prontos para uso, alm de diversos frameworks de terceiros. Esta linguagem
tambm possui recursos encontrados em linguagens mais modernas tais como:
geradores, introspeco, persistncia, metaclasses e unidades de teste. O Python
interpretado atravs de bytecode pela mquina virtual Python, tornando o cdigo
portvel, ou seja, possvel de compilar aplicaes em uma plataforma e rodar em
outra, ou executar direto do cdigo fonte. (BORGES, 2010).
Python uma linguagem de cdigo aberto, com uma licena compatvel com a
GPL, porm menos restritiva, pois permite que o mesmo seja incorporado inclusive
em produtos proprietrios. Atualmente a linguagem mantida pela Python Software
Foundation. Alm da aplicao como linguagem principal tambm possvel utiliz-lo
como linguagem script em vrios softwares, ou integr-lo com outras linguagens como
C e Fortran. (BORGES, 2010).
Neste trabalho, o Python foi utilizado para o desenvolvimento do aplicativo
servidor, que executado no Raspberry Pi. Esse aplicativo fundamental, ele recebe
os comandos enviados pelo aplicativo mvel e executa os mesmos na residncia, ou
seja, ele o responsvel pela comunicao com o Android e tambm pela
34
comunicao com o hardware envolvido. Essa linguagem foi escolhida, pelo fato de
ser a mais indicada para o uso com o Raspberry Pi e tambm por facilitar a
comunicao com os pinos GPIO do mesmo.
2.8 REDES DE COMPUTADORES
A fim de estabelecer a comunicao entre o dispositivo mvel e o Raspberry Pi
necessrio a utilizao de uma rede de computadores.
Segundo Nascimento (2011, p.4) Uma rede de computadores formada por
um conjunto de mdulos processadores capazes de trocar informaes e compartilhar
recursos, interligados por um sistema de comunicao (meios de transmisso e
protocolos).
As redes so de extrema importncia, tanto em ambientes residenciais como
empresariais, pois propiciam inmeros benefcios como compartilhamento de
recursos, impressoras, arquivos, entre outros. Alm de ser um timo meio de
comunicao atravs da internet (NASCIMENTO, 2011).
Entre as diversas classificaes das redes de computadores encontra-se as
redes locais. Essas redes geralmente so privadas e permitem a interconexo de
dispositivos em uma pequena regio. As redes locais ou Local Area Networks (LANs)
como so conhecidas, podem ser cabeadas, sem fios ou mistas (NASCIMENTO,
2011).
As LANs cabeadas mais comuns utilizam o padro imposto pelo Institute of
Electrical and Electronics Engineers (IEEE), conhecido como IEEE 802.3 podendo
atingir velocidades de 100 megabit por segundo (Mbps) 10 gigabit por segundo
(Gbps). Outro padro bastante popular e geralmente encontrado em notebooks e
smartphones o IEEE 802.11 conhecido como Wi-Fi ou Wireless Local Area Netwok
(WLAN), esse padro pode alcanar uma velocidade de at 300 Mbps
(NASCIMENTO, 2011).
As redes Wi-Fi esto se tornando cada vez mais populares e utilizadas, pois
permitem conexes de qualidade sem o uso de fios. Tanto o padro IEEE 802.3
quanto o IEEE 802.11 podem ser utilizadas no sistema proposto por este trabalho.
35
2.9 UNIFIED MODELING LANGUAGE (UML)
Antes de iniciar o desenvolvimento de qualquer software extremamente
importante analisar cada processo e modelar como o sistema deve se comportar.
Unifield Modeling Language (UML) ou Linguagem de Modelagem Unificada,
uma linguagem visual utilizada para modelar sistemas por meio do paradigma da
orientao a objetos. Essa linguagem tornou-se padro na modelagem de sistemas e
internacionalmente usada pela engenharia de software (GUEDES, 2007).
Segundo Guedes (2007) cada diagrama da UML analisa o sistema ou parte
dele, entre os principais tipos de diagramas podemos citar:
Diagramas de casos de uso: o diagrama mais geral e informal da UML,
utilizado principalmente para auxiliar no levantamento e anlise dos requisitos.
Diagrama de classes: o diagrama mais utilizado e importante da UML, este
diagrama define a estrutura das classes utilizadas pelo sistema, alm dos
atributos, mtodos e relacionamentos.
Diagrama de objetos: um complemento ao diagrama de classes, fornece uma
viso dos valores armazenados pelos objetos de um diagrama de classes em
um determinado momento.
Diagrama de sequncia: preocupa-se com a ordem temporal em que as
mensagens so trocadas entre os objetos envolvidos em um determinado
processo.
Alm dos diagramas descritos acima podemos citar outros como: diagramas de
comunicao, estrutura composta, mquina de estados, atividade, interao geral,
componentes, implantao, pacotes e diagramas de tempo (GUEDES, 2007).
36
3 CAMPO OU REA DE ESTUDO
Nos ltimos anos a automao residencial ganhou novos adeptos e
tecnologias, isso ocasionou um crescimento significativo nas residncias
automatizadas. por esses fatores que a rea de estudo deste trabalho concentrou-
se no desenvolvimento de uma soluo para controle de automao residencial
baseada em novas plataformas, mais baratas, populares e pouco exploradas. Essa
soluo englobou desenvolvimento mvel e desktop, alm de integraes com
hardwares e circuitos eltricos.
O campo de estudo concentrou-se em pessoas comuns que procuram um
controle mais moderno, centralizado, eficiente e automatizado de suas residncias
com menor custo de implantao, alm de entusiastas, estudantes e pessoas j
ligadas ao ramo da automao.
A homologao ou teste deste trabalho foi possvel atravs do desenvolvimento
de um prottipo, onde foram aplicadas as solues propostas e desenvolvidas no
decorrer do mesmo.
37
4 MTODOS
Este captulo apresenta a classificao quanto aos mtodos, tcnicas e
perguntas de pesquisa do trabalho.
4.1 DELIMITAO DO ESTUDO, MTODOS E TCNICAS DE COLETA DE DADOS
Este trabalho caracteriza-se por ser uma pesquisa exploratria, a mesma
objetivou-se no desenvolvimento de uma soluo para controle de automao
residencial a fim de possibilitar aos seus utilizadores um controle distncia ou
centralizado de suas residncias. As pesquisas realizadas a fim de esclarecer os
diversos pontos expostos nesse trabalho foram realizadas em livros, sites, artigos e
outras fontes confiveis.
O desenvolvimento do trabalho foi realizado entre os anos de 2013 e 2014 pelo
acadmico Rodrigo Batistello orientado pelo professor Jose Luiz Cunha Quevedo
como requisito parcial para obteno de grau no curso de Sistemas de Informao na
Universidade do Oeste de Santa Catarina Unoesc, unidade Chapec que fica
localizada na Av. Nereu Ramos 3777-D, bairro Seminrio, CEP 89813-000.
Quanto aos mtodos utilizados este trabalho caracteriza-se por possuir uma
abordagem dialtica, pois busca argumentar e contra argumentar sobre o assunto e
tem um procedimento monogrfico, pois foi realizada uma pesquisa aprofundada
sobre o assunto.
Quantos as tcnicas foram utilizadas documentao indireta, tanto pesquisa
documental, como sites da web, quanto pesquisas bibliografias, livros, revistas,
monografias, entre outros.
38
4.2 CARACTERIZAO DO ESTUDO
Quanto aos fins, o estudo caracteriza-se por exploratrio, aplicado e descritivo
devido ao levantamento bibliogrfico e a possibilidade de experincias diretas na
soluo proposta, tanto na parte de software com o aplicativo, quanto na parte de
hardware com a criao do prottipo para exemplificao.
Quanto aos meios, caracteriza-se em bibliogrfica devido a fundamentao
terica ser extrada de fontes confiveis como livros, revistas artigos e monografias. E
tambm como experimental, devido ao desenvolvimento do prottipo, que possibilita
o controle de iluminao, eletroeletrnicos, alarme, entre outros.
4.3 TCNICA DE ANLISE E INTERPRETAO DE DADOS
A tcnica de anlise do trabalho qualitativa, os resultados do mesmo foram
apresentados atravs de documentos, figuras e de um prottipo de automao
completo, composto pelos aplicativos necessrios e de toda parte de hardware
fundamental.
4.4 QUESTES DE PESQUISA
Quais so os equipamentos, componentes eletrnicos e ferramentas que
melhor se adaptam ao trabalho?
O hardware utilizado suficiente e adequado para execuo das tarefas
propostas?
39
5 APRESENTAO E ANLISE DOS RESULTADOS
Este captulo tem como objetivo apresentar o desenvolvimento do trabalho afim
de atingir os objetivos propostos. Ser apresentado o prottipo construdo por meio
de explicaes, imagens, quadros, capturas de telas do sistema desenvolvido e toda
a parte de modelagem criada.
5.1 MODELAGEM DO SISTEMA
O sistema composto por dois aplicativos desenvolvidos em diferentes
linguagens de programao. O aplicativo servidor foi desenvolvido em Python e o
aplicativo cliente foi desenvolvido em Java.
Antes de iniciar o desenvolvimento foi feita toda a anlise necessria, nesta
anlise foi levantado todos os requisitos funcionais e no funcionais, foi criado e
expandido o caso de uso alm do modelo entidade-relacionamento (MER) para
representar o banco de dados sob o qual o sistema executado. Na sequncia ser
detalhado cada um desses itens.
5.1.1 Requisitos funcionais e no funcionais
Todo desenvolvimento de software exige o levantamento de requisitos, sejam
eles funcionais ou no funcionais. Para o desenvolvimento deste trabalho foram
levantados os requisitos presentes no quadro 1.
Quadro 1 - Requisitos funcionais e no funcionais
1. Controlar luzes e outros equipamentos
Descrio: Dever ser possvel o controle de luzes e outros equipamentos eletrnicos conectados a rels no sistema de automao, permitindo ligar e desligar estes remotamente.
Requisitos funcionais
Nome Restries Categoria
40
RF 1.1 Identificar os equipamentos
Dever ser possvel a identificao do equipamento no sistema de automao atravs de um nome definido pelo usurio.
Interface
RF 1. 2 Ligar e desligar equipamentos
Deve ser possvel ligar e/ou desligar determinado equipamento remotamente.
Usabilidade
RF 1.3 Identificar equipamentos ligados/desligados
Devem ser identificados os equipamentos ou luzes ligados e desligados no momento.
Interface
2. Controlar sistema de alarme Descrio: O software deve permitir o controle e o monitoramento do sistema de alarme residencial remotamente.
Requisitos funcionais
Nome Restries Categoria
RF 2.1 Ligar e desligar alarme Deve ser possvel ligar e desligar o alarme remotamente pelo usurio a qualquer momento.
Usabilidade
RF 2.2 Ligar e desligar pnico Permitir o disparo imediato da sirene pelo usurio, bem como o desligamento da mesma quando desejado.
Usabilidade
RF 2.3 Monitorar status Permitir controlar o status do alarme bem como visualizar os ltimos disparos ocorridos.
Interface
RF 2.4 Gerenciar sensores Deve ser possvel renomear os sensores e configurar quais sensores esto ativos no momento.
Usabilidade Interface
RF 2.5 Configurar opes de disparo
Permitir selecionar se a sirene deve ser disparada ao detectar algum movimento nos sensores e por quanto tempo a mesma deve permanecer ativa.
Usabilidade
RF 2.6 Configurar envio de e-mail
Deve ser possvel configurar um endereo de e-mail para receber a notificao de alarme disparado.
Usabilidade
3. Temperatura e humidade
Descrio: Permitir atravs de uma interface a visualizao da temperatura e da humidade da residncia.
Requisitos funcionais
Nome Restries Categoria
RF 3.1 Visualizar temperatura e humidade
Permitir a visualizao da temperatura e humidade da residncia, podendo atualizar os dados a qualquer momento.
Interface
4. Cmera de segurana
Descrio: Utilizada para monitoramento da residncia remotamente.
Requisitos funcionais
Nome Restries Categoria
RF 4.1 Permitir a visualizao da cmera
Criar uma interface onde o usurio possa visualizar uma cmera instalada na residncia e conectada no sistema de automao a qualquer momento.
Interface
5. Manter agendamentos
Descrio: Utilizado para cadastrar agendamentos no sistema, bem como a visualizao dos agendamentos cadastrados ou a remoo dos mesmos.
Requisitos funcionais
Nome Restries Categoria
RF 5.1 Cadastrar agendamentos
O sistema deve permitir o cadastro de agendamentos, informando um nome, os equipamentos que deve ser acionados, a data e hora para ligar e desligar e os dias da semana que deve ser repetido.
Usabilidade Interface
RF 5.2 Remover agendamento O sistema deve permitir a excluso de um agendamento para que o mesmo no seja mais executado.
Usabilidade
41
RF 5.3 Consulta de agendamento
Permitir a consulta de agendamentos no sistema. Interface
Requisitos no funcionais
Nome Restrio Categoria
RNF 5.4 Desativar automaticamente
O agendamento deve ser desativado automaticamente aps sua execuo, sendo assim o mesmo no deve mais aparecer consulta de agendamento.
Interface Segurana
6. Controlar som ambiente
Descrio: Permitir o controle remotamente de um sistema de som na residncia.
Requisitos funcionais
Nome Restries Categoria
RF 6.1 Executar Permitir a execuo de uma msica selecionada pelo usurio.
Usabilidade
RF 6.2 Pausar Permitir que o usurio pause e retorne a execuo da msica a qualquer momento.
Usabilidade
RF 6.3 Avanar e retroceder Permitir avanar para a prxima faixa musical ou retroceder para a faixa anterior.
Usabilidade
RF 6.4 Listar msicas Exibir a lista de msicas armazenadas no sistema, bem como uma busca por nome da faixa.
Usabilidade Interface
Requisitos no funcionais
Nome Restrio Categoria
RNF 6.5 Armazenamento As msicas devem ser armazenadas pelo usurio em uma pasta disponvel atravs de acesso ao File Transfer Protocol (FTP) do sistema, esse acesso deve ser feito atravs de um computador.
Segurana
7. Instalao e utilizao
Descrio: Requisitos necessrios para utilizao do sistema bem como sua instalao.
Requisitos no funcionais
Nome Restries Categoria RNF 7.1 Raspberry Pi O servidor deve rodar exclusivamente no
Raspberry Pi conectado a uma placa de automao especifica.
Sistema Operacional Hardware
RNF 7.2 Android O aplicativo cliente roda em plataforma Android 2.3.6 ou superior.
Sistema Operacional
RNF 7.3 Banco de dados O banco de dados do servidor deve ser MySQL. Segurana
RNF 7.4 Login O sistema deve contar com um login e senha de proteo.
Segurana
RNF 7.5 Conexo Para utilizao necessria conexo de rede entre o servidor e o cliente, alm de conexo com a internet para envio do e-mail no disparo do alarme.
Rede
RNF 7.6 Mltiplas conexes O sistema deve permitir mltiplas conexes Paralelismo
RNF 7.7 Auto recuperao O sistema deve restaurar o estado anterior no caso de um desligamento inesperado.
Confiabilidade
RNF 7.8 Velocidade O sistema deve responder a qualquer comando em menos de 15 segundos.
Velocidade
Fonte: O autor.
42
5.1.2 Caso de uso
Para proporcionar um melhor entendimento do sistema tambm foi elaborado
um diagrama de caso de uso. O mesmo pode ser visualizado na figura 6.
Figura 6 - Caso de uso
Fonte: O Autor
43
5.1.2.1 Expanso do caso de uso
A fim de explicar cada caso de uso foi realizada a expanso do mesmo, assim
possvel entende-lo ainda melhor. Esta expanso est descrita no quadro 2.
Quadro 2 - Expanso do caso de uso
Controlar iluminao e outros equipamentos
Ator: Morador da residncia 1. Descrio: Ligar ou desligar um equipamento ou iluminao. 2. Fluxo: 2.1 [IN] O morador da residncia informa a opo. 2.2 [OUT] O sistema exibe os botes para controle dos equipamentos. 2.3 [IN] O morador escolhe um equipamento para ligar ou desligar. 2.4 [OUT] O sistema executa o comando e apresenta o resultado alterando a cor do boto. 3. Excees 3.1 Exceo 2.4a: Erro na execuo do comando 2.4a.1 Retornar ao passo 2.3
Controlar sistema de alarme Ator: Morador da residncia 1. Descrio: Ligar, desligar e monitorar o sistema de alarme. 2. Fluxo: 2.1 [IN] O morador escolhe a opo para controle do alarme. 2.2 [OUT] O sistema exibe as opes disponveis (Ligar, desligar alarme e pnico ou ltimos disparos). 2.3 [IN] O morador escolhe a opo desejada. 2.4 [OUT] O sistema executa a opo selecionada e exibe o retorno. 3. Excees 3.1 Exceo 2.4a: Erro na execuo do comando 2.4a.1 Retornar ao passo 2.3
Manter agendamentos Ator: Morador da residncia 1. Descrio: Inserir, remover e filtrar agendamentos. 2. Fluxo 2.1 [IN] O morador escolhe a opo para manter agendamento. 2.2 [OUT] O sistema exibe uma interface com os agendamentos cadastrados. 3. Variantes 3.1 Inserir agendamento 3.2 Filtrar agendamento 3.3 Remover agendamento Variante 3.1 Inserir agendamento 3.1.1 [IN] O morador escolhe a opo de novo agendamento. 3.1.2 [OUT] O sistema exibe a interface para inserir um novo agendamento. 3.1.3 [IN] O morador preenche as informaes conforme desejado (nome, equipamentos, datas e dias da semana). 3.1.4 [IN] O morador salva ou cancela a insero do agendamento. 3.1.5 [OUT] O sistema exibe o resultado da solicitao. Variante 3.2 Filtrar agendamento 3.2.1 [IN] O morador preenche o campo de filtro 3.2.2 [OUT] O sistema exibe os agendamentos que atendem a condio do filtro. Variante 3.3 Remover agendamento 3.3.1 [IN] O morador escolhe um agendamento e clica em remover. 3.3.2 [OUT] O sistema exibe o resultado da solicitao de remoo.
Visualizar temperatura e humidade Ator: Morador da residncia 1. Descrio: Exibe a temperatura e a humidade ambiente.
44
2. Fluxo 2.1 [IN] O morador escolhe a opo para visualizar a temperatura e a humidade. 2.2 [OUT] O sistema retorna os dados para o usurio.
Visualizar cmera de segurana Ator: Morador da residncia 1. Descrio: Exibe a imagem da cmera de segurana. 2. Fluxo 2.1 [IN] O morador escolhe a opo de visualizao de cmera. 2.2 [OUT] O sistema exibe a imagem da cmera de segurana conectada ao sistema.
Controlar som ambiente
Ator: Morador da residncia 1. Descrio: Controla o som ambiente da residncia. 2. Fluxo 2.1 [IN] O morador da residncia escolhe a opo de controle do som ambiente. 2.2 [OUT] O sistema apresenta uma interface com a lista de msicas onde possvel, filtrar, executar, pausar, parar, avanar ou retroceder. 3. Variantes 3.1 Executar 3.2 Pausar 3.3 Avanar 3.4 Retroceder 3.5 Parar 3.6 Filtrar Variante 3.1 Executar 3.1.1 [IN] O morador escolhe uma faixa para reproduo ou clica no boto Play. 3.1.2 [OUT] O sistema executa a msica desejada. Variante 3.2 Pausar 3.2.1 [IN] O morador clica no boto correspondente ao pausar. 3.2.2 [OUT] O sistema pausa a msica em execuo. Variante 3.3 Avanar 3.3.1 [IN] O morador clica no boto correspondente ao avano de faixa. 3.3.2 [OUT] O sistema avana para a prxima faixa. Variante 3.4 Retroceder 3.4.1 [IN] O morador clica no boto correspondente ao retroceder. 3.4.2 [OUT] O sistema volta para a faixa anterior. Variante 3.5 Parar 3.5.1 [IN] O morador clica no boto correspondente para parar a execuo da msica. 3.5.2 [OUT] O sistema para a execuo da msica. Variante 3.6 Filtrar 3.6.1 [IN] O morador preenche o campo de filtro. 3.6.2 [OUT] O sistema filtra as faixas musicais que atendem ao filtro aplicado.
Configurar opes de funcionamento
Ator: Morador da residncia 1. Descrio: Exibe as configuraes disponveis, alm de permitir a modificao das mesmas. 2. Fluxo 2.1 [IN] O morador escolhe a opo de configurao do sistema; 2.2 [OUT] O sistema exibe as configuraes disponveis por aba (geral, rels, alarme, e-mail). 2.3 [IN] O morador escolhe a aba desejada. 2.4 [OUT] O sistema exibe as configuraes da aba. 2.5 [IN] O morador faz as alteraes conforme desejado, salvar ou cancela as alteraes. 3. Variantes 3.1 Salvar alteraes 3.2 Cancelar alteraes Variante 3.1 Salvar alteraes 3.1.1 [IN] O morador salva a nova configurao. 3.1.2 [OUT] O sistema exibe uma mensagem com o resultado da solicitao. Variante 3.2 Cancelar alteraes 3.2.1 [IN] O morador retorna sem salvar as alteraes. 3.2.2 [OUT] O sistema retorna ao estado anterior.
Fonte: O autor.
45
5.1.3 Modelo Entidade-Relacionamento
O modelo entidade-relacionamento (MER) utilizado para representao do
banco de dados utilizado pelo sistema. Este simples, composto por apenas 9 tabelas
e 4 relacionamentos. Ele foi desenvolvido para utilizao no banco de dados MySQL.
Foi pensado em um modelo simples para um melhor funcionamento no hardware
disponvel. O mesmo pode ser visualizado na figura 7.
Figura 7 - MER
Fonte: O autor.
A explicao para cada tabela do MER criado a seguinte:
Rele: Tabela que armazena as configuraes dos rels da placa de automao
utilizada, essa tabela preenchida de forma fixa com 13 registros que
correspondem a 10 rels e outros 3 transistores. Nessa tabela possvel
atravs do sistema apenas alterar o nome e o status dos rels.
SensorAlarme: Tabela que armazena as informaes dos sensores de alarme
da placa de automao. Preenchida de forma fixa com 8 registros que
46
correspondem ao nmero de sensores da placa. Atravs do sistema possvel
alterar o nome do sensor e o campo Ativo que diz se o mesmo est ou no
sendo utilizado.
DisparoAlarme: Tabela que armazena os disparos do alarme, ela est
relacionada com a tabela de SensorAlarme, a fim de saber qual sensor originou
o disparo. Atravs da mesma tambm possvel saber a data e a hora que o
mesmo ocorreu.
ConfiguracaoAlarme: Tabela que armazena as configuraes definidas pelo
usurio, que dizem como o alarme deve se comportar, no tem relacionamento
com outras tabelas pois utilizada em uma funo especfica no sistema,
fazendo-se desnecessria essa relao.
ConfiguracaoEmail: Tabela que armazena a configurao do e-mail feita pelo
usurio. Armazena o destinatrio do e-mail e os dados do servidor que ser
utilizado para envio. No tem relao com outras tabelas pois armazena uma
nica configurao.
Usurio: Tabela que armazena o usurio e a senha para login no sistema, no
permitido o cadastro de mais de um usurio, possvel apenas alterar o
existente.
Agendamento: Tabela que armazena os agendamentos definidos pelo
usurio, datas, status, nome.
DiaAgendamento: Tabela que armazena os dias que o agendamento deve ser
executado, est relacionada com a tabela de Agendamento atravs de uma
chave estrangeira. Os dias ficam armazenados em um campo inteiro onde
domingo corresponde a 0 e sbado a 6.
ReleAgendamento: Tabela que armazena os rels que devem ser acionados
para aquele agendamento. Est relacionada atravs de uma chave primaria e
estrangeira com a tabela de Rele e tambm com a tabela Agendamento.
5.2 INSTALAO DO SISTEMA OPERACIONAL E APLICATIVOS
Para o desenvolvimento deste trabalho foi necessrio realizar a instalao e
configurao de diversas bibliotecas, aplicativos e o prprio sistema operacional do
47
Raspberry Pi. Como o mesmo utiliza Linux, que um sistema operacional menos
conhecido pelas pessoas as mesmas sero detalhadas na sequncia.
5.2.1 Instalao do sistema operacional no Raspberry Pi
Como mencionado na fundamentao terica foi optado pelo uso do sistema
operacional Raspbian, o mesmo encontra-se disponvel para download no site oficial
do Raspberry Pi (http://www.raspberrypi.org/downloads/). Efetuado o download foi
necessrio extrair o arquivo que encontra-se compactado e utilizar a ferramenta
Win32 Disk Imager (http://sourceforge.net/projects/win32diskimager) para copiar o
sistema operacional para o carto de memria, esse precisa ter pelo menos 4GB livre
e uma velocidade igual ou superior a classe 4, esse processo pode ser observado na
figura 8.
Figura 8 - Envio do sistema operacional para o carto de memria
Fonte: O autor.
Depois de carregar o sistema operacional no carto de memria, foi inserido o
mesmo no Raspberry Pi, conectado o mesmo na rede cabeada e ligado na energia.
Verificando as conexes ativas na tabela do roteador foi obtido o endereo IP do
mesmo, e assim foi utilizada a ferramenta Putty (http://www.putty.org/) para
estabelecer uma conexo Secure Shell (SSH), que nada mais que uma conexo
remota, assim ficou dispensado o uso de um monitor, teclado e mouse. A interface da
ferramenta pode ser observada na figura 9.
48
Figura 9 - Interface da ferramenta Putty
Fonte: O autor.
Ao estabelecer a conexo pela primeira vez (figura 10) foi utilizado o usurio
pi e a senha raspberry para login no sistema. A partir da foi alterado algumas
configuraes e atualizado o sistema com os respectivos comandos:
sudo raspi-config
sudo apt-get update
sudo apt-get upgrade
Figura 10 - Conexo como Raspbery Pi atravs da ferramenta Putty
Fonte: O autor
49
5.2.2 Instalao da IDE de desenvolvimento no Raspberry Pi
Para desenvolver o trabalho na linguagem Python no Raspberry Pi optou-se
pela utilizao da Integrated Development Environment (IDE) desenvolvida pela
Adafruit, denominada WebIDE, a empresa desenvolvedora a mesma que
desenvolveu algumas das bibliotecas utilizadas neste trabalho. Esta IDE facilita muito
o desenvolvimento, uma vez que possu uma interface web, simples e muito eficiente.
Segundo Cooper (2012) a instalao da mesma possvel atravs da execuo do
seguinte comando: curl https://raw.githubusercontent.com/adafruit/Adafruit-
WebIDE/alpha/scripts/install.sh | sudo sh.
Realizado o procedimento de instalao foi alterado a porta de acesso por meio
de um navegador, acessando um endereo no seguinte padro: http://IP do Raspberry
Pi/config (COOPER, 2012).
Depois de alterar a porta foi necessrio reiniciar o Raspberry Pi. Feito isso
bastou apenas acessar novamente o endereo removendo o config do final (http://IP
do Raspberry Pi). Nesta etapa foi necessrio configurar uma conta no Bitbucket que
nada mais que um repositrio de fontes online, privado e gratuito. Nesta etapa foi
exibido na tela todos os passos que devem ser seguidos para obter acesso a IDE que
pode ser observada na figura 11. (COOPER, 2012).
Figura 11 - Interface da IDE para desenvolvimento em Python
Fonte: O autor.
50
5.2.3 Configurao dos pinos GPIO
Para utilizao dos pinos GPIO que permitem o controle do sistema de
automao, foi necessrio seguir alguns passos para configurar os mesmos, esses
passos so disponibilizados pela empresa que desenvolve a biblioteca e podem ser
facilmente executados no sistema.
Seguindo as orientaes de Monk (2012) foi necessria instalao de dois
pacotes obtidos pelos comandos:
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
Depois foi editado um arquivo com o seguinte comando:
sudo nano /etc/modules
E adicionado as seguintes linhas:
i2c-bcm2708
i2c-dev
Instalado mais dois pacotes:
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
Editado o arquivo e removida as entradas da blacklist comentando as linhas (#):
sudo nano /etc/modprobe.d/raspi-blacklist.conf
# blacklist spi-bcm2708
# blacklist i2c-bcm2708
5.2.4 Instalao do banco de dados
Para armazenar as informaes necessrias no sistema de automao foi
optado pelo uso do banco de dados MySQL junto ao aplicativo servidor. Essa opo
foi devido a facilidade de instalao, utilizao, integrao com a linguagem Python e
tambm pelo mesmo ser relativamente leve, funcionando sem problemas no
Raspberry Pi.
51
A instalao foi simples obtida atravs da execuo de um nico comando no
terminal do Linux, foi necessrio tambm configurar a senha de acesso para o usurio
root do banco de dados quando solicitado (RASPBERRY WEB SERVER, [2013?]).
sudo apt-get install mysql-server python-mysqldb
5.2.5 Instalao do gerenciador do banco de dados
Para gerenciar o banco de dados foi utilizado o aplicativo phpMyAdmin. Essa
ferramenta bastante til pois facilita a criao e manipulao dos objetos do banco
de dados. Ela roda em um servidor web, portanto pode ser acessada facilmente
atravs de um navegador.
Seguindo a orientao de Fulton (2013) a instalao foi bem simples bastando
a execuo do comando abaixo e informando os dados de usurio e senha do banco
quando solicitado.
sudo apt-get install phpmyadmin
5.2.6 Instalao do servidor FTP
Tambm foi instalado no Raspberry Pi um servidor File Transfer Protocol (FTP)
para possibilitar a transferncia de arquivos para o mesmo. Esses arquivos consistem
principalmente nas msicas que so executadas a partir do aplicativo.
Para efetuar a instalao foi seguido as orientaes de Pinto (2013) e
executado os seguintes comandos:
sudo apt-get install vsftpd
sudo nano /etc/vsftpd.conf
E editar as seguintes opes:
Desativar o acesso annimo
anonymouse_enable=NO
Permitir o acesso dos utilizadores locais (criados no Linux)
local_enable=YES
52
write_enable=YES
Alterar Banner do servio
ftpd_banner=Bem-Vindo ao FTP House Pi
Por fim, salvar o arquivo e reiniciar o servio.
sudo /etc/init.d/vsftpd restart
5.2.7 Instalao do servidor de cmera
Para streaming de vdeo da cmera conectada ao Raspberry Pi foi utilizada a
biblioteca mjpg-streamer. Segundo IQ JAR (2013) a instalao da mesma consiste na
execuo das seguintes etapas:
sudo apt-get install libv41-0
wget http://iqjar.com/download/jar/soft/mjpg-streamer.tar.gz
tar -zxvf mjpg-streamer-rpi.tar.gz
cd mjpg-streamer
./mjpg-streamer.sh start
Onde: mjpg-streamer.sh [start|stop|restart|status] [porta] [resoluo] [frames].
Exemplo para visualizao da imagem: http://raspberrypi:8083/?action=stream
5.2.8 Instalao do MPlayer
Para execuo das msicas atravs do aplicativo foi utilizado um player muito
conhecido no Linux o MPlayer. A instalao do mesmo realizada com a execuo
do seguinte comando:
sudo apt-get install mplayer
53
5.3 CONSTRUO DO PROTTIPO
A construo do prottipo foi de extrema importncia neste trabalho, atravs
dele foi possvel ver de fato como se comporta uma residncia automatizada. Os
componentes utilizados foram adquiridos em lojas de componentes eletrnicos, no
optou-se por uma marca especfica foi apenas utilizado o que estava disponvel. A
ideia foi montar uma casa onde fosse possvel controlar a iluminao (representada
atravs de leds), um sistema de alarme, uma cmera, um sensor de temperatura e
humidade, alm de uma tomada para ligar algum outro tipo de equipamento.
Esse prottipo foi construdo com uma maquete de Medium Density Fiberboard
(MDF) adquirida atravs do site Mercado Livre, a mesma vem desmontada sendo
necessrio colar suas partes. O processo de montagem pode ser observado na figura
12.
Figura 12 - Montagem da Maquete
Fonte: O autor.
Finalizada esta etapa foi envernizada a madeira para maior durabilidade, e
fixada a mesma sobre uma base para representar o jardim da residncia. O prottipo
pronto pode ser visualizado na figura 13.
54
Figura 13 - Prottipo para demonstrao do sistema de automao
Fonte: O autor.
Depois disso foi construdo a estrutura eltrica do sistema, iniciando pelo painel
de controle que foi montado sobre uma base de Voz, Dados e Imagem (VDI), esta
base permite a fixao dos componentes e a organizao dos cabos, esse painel fica
localizado no interior da maquete, mais precisamente no sobrado da casa. Na
estrutura eltrica foi utilizado:
1 Quadro VDI;
1 Raspberry Pi modelo B;
1 Placa de automao criada pelo Projeto Arduino;
1 Sensor DHT22 (Sensor de temperatura e humidade);
1 Sirene de alarme comum 12 volts;
1 Adaptador Wi-Fi;
1 Carto de memria SD de 16GB;
1 Sensor de alarme infravermelho;
1 Sensor de alarme magntico;
1 Webcam USB;
8 Leds verde straw hat (3.6 volts);
9 Leds branco frio straw hat (3.6 volts);
18 Resistores 10k (Para ligar os leds em 6 volts e o sensor DHT em 5 volts);
1 Fonte 12 volts e 2 amperes (alimentao das placas);
1 Fonte 6 volts e 2 amperes (alimentao dos leds);
1 Caixa de som;
55
Fios, conectores, parafusos, presilhas, fita isolante e dupla face;
Os componentes utilizados podem ser observados na figura 14, alguns deles
foram comparados a outros objetos para melhor noo de tamanho. Nem todos os
componentes esto na mesma escala da maquete, por isso necessrio adapt-los,
como no caso da sirene que foi desmontada posteriormente para caber no prottipo.
Figura 14 Componentes utilizados para montagem do sistema de automao
Fonte: O autor.
56
A conexo entre a placa de automao e o Raspberry Pi feita atravs de um
cabo flat, basta apenas prestar ateno no lado correto de conexo, identificado pela
tarja branca/vermelha do cabo.
J a conexo com os demais sensores e equipamentos um pouco mais
complexa. No caso do sensor de temperatura e humidade a conexo foi feita com o
pino GPIO 28 do Raspberry Pi. Para que essa conexo funcione necessrio ligar o
sensor em uma fonte de energia de 5 volts e tambm a um resistor de 10k, essa
ligao representada pela figura 15.
Figura 15 - Esquema eltrico do sensor de temperatura e humidade
Fonte: O autor.
Para ligar os sensores de alarme bastou conecta-los na placa de automao,
no caso de sensores infravermelhos (destinados a deteco de movimento no
ambiente) necessrio conectar tambm a uma fonte de alimentao, no caso do
sensor utilizado 12 volts, para o sensor magntico (destinado a portas e janelas, que
violado sempre que uma das partes afasta-se da outra) no necessria uma fonte
de alimentao. O esquema de ligao pode ser observado na figura 16 onde
utilizado um sensor infravermelho comum, facilmente encontrado em lojas de
componentes eletrnicos.
57
Figura 16 - Esquema de conexo dos sensores de alarme
Fonte: O autor.
O esquema de conexo dos rels pode ser observado na figura 17. Para
funci