Taguatinga, DF 2012
FACULDADE PROJEÇÃO
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
ALUNO
WEBERT OLIVEIRA
TEMA
Automação Residencial em sistema embarcado
com Arduino
Taguatinga, DF 2012
FACULDADE PROJEÇÃO
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
TEMA
Trabalho de Conclusão de Curso apresentado à Faculdade
Projeção, como requisito complementar e obrigatório à
obtenção do título de Bacharel em Sistemas de Informação.
Esse trabalho foi fruto de uma serie de atividades
extracurriculares de pesquisa de novas tecnologias e alguns
conceitos tanto de hardware quanto de software livre em
sistemas embarcados, assim como também, os conceitos de
reciclagem de lixo eletrônico “Metareciclagem”, Internet das
Coisas e Economia Criativa.
Orientadora:
Rosa Maria Diekm de Queiroz Damasceno
TEMA
Trabalho de Conclusão de Curso apresentado à Faculdade
Projeção, como requisito complementar e obrigatório à
obtenção do título de Bacharel em Sistemas de Informação.
Esse trabalho foi fruto de uma serie de atividades
extracurriculares de pesquisa de novas tecnologias e alguns
conceitos tanto de hardware quanto de software livre em
sistemas embarcados, assim como também, os conceitos de
reciclagem de lixo eletrônico “Metareciclagem” Internet das
Coisas e Economia Criativa.
Taguatinga, DF, ___ de _______ de 2012.
Banca Examinadora:
Professor(a) ......
Orientadora
Professor(a) ......
Professor(a) ......
Professor Elvis Roberto Barreto, Especialista
Coordenador do curso de Sistemas de Informação
DEDICATÓRIA
"Na Natureza nada se cria, nada se perde, tudo
se transforma"
Antoine-Laurent de Lavoisier
“Para se criar algo novo, sempre terão que
existir modelos que nos basearemos ou
expiraremos. Como tal, o novo estará ligado à
existência de algo antigo, sendo o novo fruto da
existência dos antigos”
Herbert Alexandre Galdino Pereira
Dedico esse trabalho, em primeiro lugar a Deus
e a minha família pelo apoio que me foi dado
durante esses anos, a educação, o incentivo e
principalmente a minha mãe, que batalhou
muito para que tudo isso fosse realizado, em
segundo lugar, aos professores, aos amigos e
aos lugares por onde passei, aos parceiros de
trabalho que tive, as listas de discussão entre
elas, a open-hardware-Brasília, arduino-brasília
e calango-hacker-clube em especial aos meus
amigos Jeronimo Avelar, Luiz Fellipe, Carlos
Botelho, Isaias Coelho, Lucas Fragomeni e
tantos outros que me incentivaram e tornaram
possível uma série de atividades e eventos
relacionados ao tema no ano de 2011, práticas
que fizeram com que parte desse projeto fosse
incluso em um projeto muito maior.
AGRADECIMENTOS
Agradeço a minha mãe por tudo que é, foi, e sempre será... Às pessoas que
participaram da minha vida e com o tempo, me fizeram ser o que eu sou ou entender
o que eu sou, evoluíram minhas ideias, as minhas aspirações, os meus objetivos e o
meu futuro. Aos professores em especial Henrique Vinicius, Elvis Roberto, Alysson
Vicuna, Rosa Diekm e aos amigos e parceiros nessa caminhada da vida que
diretamente ou indiretamente me fizeram chegar a essa conquista, onde hoje finco
mais uma estaca, graças aos diversos conhecimentos que vieram dos vários
relacionamentos construídos nessa grande rede que é a vida.
6
RESUMO
Esse trabalho foi fruto de uma serie de atividades extracurriculares de
pesquisa de novas tecnologias iniciado antes da faculdade, em 2008, inicialmente,
para aprendizado de novas ferramentas para o uso em técnicas e metodologias de
ensino, durante esse período, foram estudados conceitos tanto de hardware quanto
de software livre, reciclagem de lixo eletrônico, microprocessamento, computação
visual, modelagem 3D e muitos outros conhecimentos não enquadrados na grade
curricular do curso, porém que foram agregados ao conhecimento profissional.
Foi aplicado parte desse conhecimento, para a criação de um sistema de
automação residencial embarcado, com o microcontrolador Arduino, utilizando os
conceitos de reciclagem de lixo eletrônico “Metareciclagem”, programação micro
controlada, dentro de uma visão de Economia Criativa e Internet das Coisas
“Internet of the Things”.
Inicialmente, o projeto foi pensado para resolver um problema real de
automação de ambientes para pessoas com necessidades especiais, e para ser
aplicado em uma residência real, o projeto foi apresentado à disciplina de
programação de sistema, adquirindo um grande êxito em sua realização. O projeto
continua em desenvolvimento e parte incorporada a outro projeto maior, chamado
Monitora Cerrado, o qual é um projeto colaborativo, aberto e que hoje existe uma
grande quantidade de profissionais e voluntários envolvidos para desenvolver uma
grande rede de dados climáticos aberta.
Para o escopo desse projeto, será documentada toda a parte de automação
residencial, que é a Central de Controle e a central de ativação de equipamentos,
as suas codificações embarcadas no microcontrolador Atmega328 com a
programação Wiring que é baseada na linguagem C/C++. Serão explicados os
conceitos dos microcontroladores AVR, os fluxos de decisões, modelos de casos de
uso e a sua aplicação na automação de ambientes.
Palavras-chave: Arduino, AVR, Metareciclagem, Automação Residencial, Internet of
the things, economia criativa.
7
SUMÁRIO GERAL
1 INTRODUÇÃO .................................................................................................... 16
2 PROBLEMA ........................................................................................................ 17
2.1 Descrição do problema .................................................................................. 17
3 JUSTIFICATIVA E VIABILIDADE ........................................................................ 19
3.1 Necessidades e Soluções propostas............................................................. 19
3.2 Escolha de um sistema de baixo custo ......................................................... 19
3.2.1 Solução Atual: ......................................................................................... 19
3.2.2 Solução Proposta: ................................................................................... 19
3.3 Recursos Necessários e disponíveis ............................................................. 20
3.3.1 Aproveitamento do lixo eletrônico e materiais sólidos ............................. 20
3.3.2 Circuito micro controlado para programação embarcada ........................ 20
3.3.3 Ambiente de desenvolvimento em Linguagem Wiring ............................ 20
3.3.4 Necessidade de componentes de hardware ........................................... 21
3.4 Viabilidade ..................................................................................................... 21
3.5 Considerações finais ..................................................................................... 21
4 OBJETIVOS ........................................................................................................ 22
4.1 Objetivo Geral ............................................................................................... 22
4.2 Objetivos Específicos .................................................................................... 22
5 MÉTODOS E TÉCNICAS .................................................................................... 23
5.1 Técnicas de Levantamento de Requisitos ..................................................... 23
5.1.1 Pesquisa Cientifica .................................................................................. 23
5.1.2 Estudos dos componentes de hardware ................................................. 23
8
5.1.3 Estudos das bibliotecas para programação ............................................. 23
5.2 Modelo de Desenvolvimento ......................................................................... 24
5.2.1 Metareciclagem ....................................................................................... 24
5.2.2 Programação em Wiring no Arduino IDE ................................................ 24
5.2.3 Sistemas Embarcados ............................................................................. 25
5.2.4 Internet das Coisas .................................................................................. 25
5.2.5 Economia criativa .................................................................................... 26
5.3 Tecnologias em Geral ................................................................................... 26
5.3.1 Arduino IDE ............................................................................................. 26
5.3.2 LCD Nokia 3310 ...................................................................................... 26
5.3.3 Sensor de temperatura e umidade .......................................................... 27
5.3.4 Sensor de luminosidade .......................................................................... 27
5.3.5 Sensor de som ........................................................................................ 27
5.3.6 Sensor de presença ................................................................................ 28
5.3.7 Sensor de IR – Controle remoto .............................................................. 28
5.3.8 Controle remoto ....................................................................................... 28
5.3.9 Bluetooth ................................................................................................. 29
5.3.10 Placa de rede ....................................................................................... 29
5.3.11 Placa de relês ....................................................................................... 29
5.4 Linguagem de Programação ......................................................................... 30
5.4.1 Linguagem Wiring .................................................................................... 30
5.5 Padrões ......................................................................................................... 30
5.5.1 Padrão ANBT .......................................................................................... 30
9
6 DOCUMENTAÇÃO TÉCNICA ............................................................................. 31
6.1 Descrição ...................................................................................................... 31
6.1.1 Objetivo do Projeto .................................................................................. 31
6.1.2 Produto do Projeto ................................................................................... 31
6.1.3 Premissas ................................................................................................ 31
6.1.4 Restrições ............................................................................................... 31
6.2 Cronograma básico do projeto ...................................................................... 32
6.3 Estimativa de custo ....................................................................................... 32
6.4 Necessidade inicial de recurso ...................................................................... 33
6.5 Escopo .......................................................................................................... 33
6.5.1 Definição ................................................................................................. 33
6.5.2 Finalidade ................................................................................................ 34
6.5.3 Cliente ..................................................................................................... 34
6.5.4 Desenvolvedores ..................................................................................... 34
6.5.5 Objetivo ................................................................................................... 34
6.5.6 Stakeholders ........................................................................................... 34
6.5.7 Funcionalidades e serviços solicitados .................................................... 35
6.5.8 Características técnicas da interface do sistema .................................... 35
6.5.9 Recomendações para Layout solicitado .................................................. 35
6.5.10 Premissas e recomendações ............................................................... 35
6.5.11 Verificação de resultados ..................................................................... 36
6.6 Documento de Visão ..................................................................................... 37
6.6.1 Seção 1 – Introdução .............................................................................. 37
10
6.6.2 Seção 2 – Contextualização .................................................................... 39
6.6.3 Seção 3 -Descrição Stakeholders (envolvidos) ....................................... 42
6.6.4 Seção 4 - Necessidades e soluções ........................................................ 43
6.6.5 Seção 5 – Visão Geral do Produto .......................................................... 45
6.6.6 Seção 6 Características do produto ........................................................ 45
6.6.7 Seção 7 Ambiente do usuário ................................................................. 46
6.6.8 Seção 10 – Restrições Técnicas ............................................................. 47
6.7 Documento de Requisitos ............................................................................. 48
6.7.1 Definição ................................................................................................. 48
6.7.2 Descrição geral do sistema ..................................................................... 50
6.7.3 Requisitos Funcionais (casos de uso) ..................................................... 50
[RF001] Ativar e desativar equipamento................................................................... 50
[RF002] Reconhecer e Interpretar variações de temperatura e umidade ........................ 50
[RF003] Reconhecer e Interpretar variações de luminosidade ..................................... 51
[RF004] Reconhecer e Interpretar variações de som .................................................. 51
[RF005] Reconhecer e Interpretar variações de presença ............................................ 51
[RF006] Reconhecer e Interpretar sinais do controle remoto ....................................... 52
[RF007] Reconhecer e Interpretar sinais de dispositivo Bluetooth ............................... 52
[RF008] Reconhecer e Interpretar sinais emitidos pela rede ........................................ 52
6.7.4 Requisitos não-funcionais ....................................................................... 53
[NF001] Desempenho ............................................................................................ 53
[NF002] Hardware e Software ................................................................................. 53
6.8 Diagramas UML............................................................................................. 53
11
6.8.1 Definição ................................................................................................. 53
6.8.2 Diagrama Visão Geral ............................................................................. 55
6.8.3 Diagrama de Componentes ..................................................................... 56
6.8.4 Diagrama de Funções ............................................................................. 57
6.8.5 Diagramas de Execução ......................................................................... 58
6.9 Especificações de Caso de Uso .................................................................... 59
6.9.1 Controle temperatura e umidade ............................................................. 59
6.9.2 Controle de luminosidade ........................................................................ 59
6.9.3 Controle de som ...................................................................................... 60
6.9.4 Controle de presença .............................................................................. 60
6.9.5 Controle remoto ....................................................................................... 61
6.9.6 Controle via bluetooth .............................................................................. 61
6.9.7 Controle via rede ..................................................................................... 62
6.9.8 Definição ................................................................................................. 62
6.9.9 Função Alterar Estado ............................................................................. 63
8 CONCLUSÃO ...................................................................................................... 70
ANEXO I.................................................................................................................... 71
1. Componentes da Central de Controle ........................................................... 71
1.1. LCD Nokia ..................................................................................................... 73
1.2. Sensor de temperatura e umidade ................................................................ 73
1.3. Sensor de luminosidade ................................................................................ 74
1.4. Sensor de som .............................................................................................. 74
1.5. Sensor de presença ...................................................................................... 75
12
1.6. Receptor de IR controle remoto .................................................................... 75
1.7. Controle remoto ............................................................................................. 76
1.8. Bluetooth ....................................................................................................... 76
1.9. Placa de rede ................................................................................................ 77
2. Componentes da Central de Ativação ........................................................... 78
2.1. Placa de reles ................................................................................................ 79
ANEXO II................................................................................................................... 80
1. Programação do Sistema .............................................................................. 80
REFERENCIAS BIBLIOGRÁFICAS .......................................................................... 90
13
LISTA DE FIGURAS
Figura 1 - Pesquisa Google Trends - Automação Residencial .................................. 39
Figura 2 - Pesquisa Google Trens - Arduino ............................................................. 40
Figura 3 – Esquema de Pinos do Atmega168/328 .................................................... 54
Figura 4 - Diagrama visão geral ................................................................................ 55
Figura 5 - Diagrama de componentes ....................................................................... 56
Figura 6 - Diagrama de funções ................................................................................ 57
Figura 7 - Diagrama de execução ............................................................................. 58
Figura 8 - Interface da Central de Controle ............................................................... 71
Figura 9 - Tela LCD Nokia 3310 ................................................................................ 73
Figura 10 - Sensor de temperatura e umidade .......................................................... 73
Figura 11 - Sensor de luminosidade .......................................................................... 74
Figura 12 - Sensor de som ........................................................................................ 74
Figura 13 - Sensor de presença ................................................................................ 75
Figura 14 - Receptor de controle remoto ................................................................... 75
Figura 15 - Controle remoto ...................................................................................... 76
Figura 16 - Transceiver bluetooth .............................................................................. 76
Figura 17 - Placa de rede .......................................................................................... 77
Figura 18 - Placa de reles ......................................................................................... 79
14
LISTA DE QUADROS
Quadro 1 - Estimativa de custo ................................................................................. 32
Quadro 2 - Histórico e Revisões ................................................................................ 33
Quadro 3 - Versionamentos e revisões ..................................................................... 37
Quadro 4 - Referências ............................................................................................. 38
Quadro 5 - Descrição do problema ........................................................................... 41
Quadro 6 - Resumo dos Stakeholders (Não Usuários) ............................................. 42
Quadro 7 - Resumo dos Stakeholders (Usuários) ..................................................... 42
Quadro 8 - Equipe de Desenvolvimento do Projeto .................................................. 43
Quadro 9 - Perspectiva do produto ........................................................................... 45
Quadro 10 - Documento de requisitos - Histórico e revisões .................................... 48
Quadro 11 - Diagrama UML - Histórico e revisões .................................................... 53
Quadro 12 - Casos de uso - Histórico e revisões ...................................................... 62
Quadro 14 - Glossário - Termos de Descrições ........................................................ 66
Quadro 13 - Componentes da central de controle ..................................................... 72
Quadro 13 - Componentes da Central de Ativação ................................................... 78
15
LISTA DE TABELAS
Tabela 1 – Dispositivo utilizados para alteração do estado ....................................... 46
Tabela 2 - Fluxo de eventos de casos de uso ........................................................... 63
Tabela 3- Comandos LCD Nokia ............................................................................... 73
Tabela 4 - Comandos sensor de temperatura e umidade ......................................... 73
Tabela 5 - Comandos sensor de luminosidade ......................................................... 74
Tabela 6 - Comandos sensor de som ....................................................................... 74
Tabela 7 - Comandos sensor de presença................................................................ 75
Tabela 8 - Comandos receptor de controle remoto ................................................... 75
Tabela 9 - Comandos controle remoto ...................................................................... 76
Tabela 10 - Comandos transceiver bluetooth ............................................................ 76
Tabela 11 - Comandos placa de rede ....................................................................... 77
Tabela 12 - Comandos placa de reles ....................................................................... 79
16
1 INTRODUÇÃO
A tecnologia tem evoluído de tal forma, que tem afetado todas as áreas do
conhecimento e do convívio humano, segundo o dicionário Michaelis (Weiszflog) “a
tecnologia é o estudo sistemático dos procedimentos e equipamentos técnicos
necessários para a transformação de matérias-primas em produtos”. E a tecnologia
da Informação - TI1 é a área do conhecimento responsável por criar, administrar e
manter a gestão da informação através de dispositivos e equipamentos para acesso,
operação e armazenamento dos dados, que cria formas a gerir informação para
tomada de decisão. Verificando as possibilidades de uso da tecnologia da
informação levamos o foco desse trabalho para a gestão, controle e automação de
ambientes residenciais.
O avanço tecnológico trouxe a popularização e o barateamento das
tecnologias, palavras antes desconhecidas e equipamentos restritos, começaram a
ser encontrados com mais facilidade por pessoas de pouco conhecimento, coisa que
antes era restrito exatamente pela falta de comercialização. Todos os dispositivos,
eletro eletrônicos, têm dentro de si um controlador que definem as suas tecnologias
e seu poder de processamento, dispositivos mais antigos eram fabricados com
acordos entre as grandes empresas, onde as fabricantes de microcontroladores2
faziam especificações por demanda para outras fabricantes de equipamentos.
Os dispositivos comercializados não podiam ser atualizados, a tecnologia
utilizada hoje nos microcontroladores, possibilita a atualização das informações
gravadas, podendo assim ser atualizadas ou customizadas, mesmo depois que o
produto já esteja no mercado. Essa utilização de microcontroladores com memória
tirou a necessidade de criações exclusivas para determinados fabricantes, com isso
alguns controladores começaram a ser comercializados mais facilmente.
1 Tecnologia da Informação é a área de conhecimento responsável por criar, administrar e
manter a gestão da informação através de dispositivos e equipamentos para acesso,
operação e armazenamento dos dados, de forma a gerar informações para tomada de
decisão. (Ivan Luizio Magalhães) (Weiszflog).
2 Microcontrolador é um sistema micro processado com várias funcionalidades disponíveis
em um único chip, basicamente é processador com memória embutida (Lima).
17
2 PROBLEMA
O problema levantado foi à criação de um sistema para automatizar uma
residência, no caso a minha, com uso de uma tecnologia que fosse de baixo custo, e
que pudesse ser atualizada de novas funções de acordo com o tempo, fosse portátil,
sendo de fácil instalação e desinstalação e pudesse ser depois aplicada em outros
ambientes independente de ser de grande ou de baixo porte. A solução encontrada
foi o uso de um microcontrolador do tipo AVR3, baseado na arquitetura RISC, e que
contém uma memoria interna para gravação da programação.
A forma de controle de dispositivos nas residências, ainda, continua a ser
feita manual, e para automatizar esse controle, os dispositivos de mercado que
desenvolvem esse papel, são extremamente caros e inacessíveis para o uso
residencial e também não possuem os recursos de as atualizações necessários.
2.1 Descrição do problema
Dentro do tema proposto, o problema era a automação residencial utilizando
um sistema de baixo custo com possibilidades de atualização e aberto, tendo total
conhecimento das partes integrantes desse projeto, tanto no hardware quanto no
software. Existem diversos dispositivos que exercem esse papel para a automação
predial e de locais que necessitam de monitoramento e de controle de vigilância
precisos: é o caso de CPDs, locais de estocagem de alimentos, controle de ar
condicionado e controle de acesso. Esses dispositivos são extremamente caros,
inacessíveis a pessoas comuns e exigem alto conhecimento técnico para a sua
implantação.
Como a proposta do projeto era um dispositivo de baixo custo, foi necessária
a substituição desse modelo, por outro mais acessível e que atendesse as
necessidades básicas de uma residência. Para isso, foram necessários cerca de
3 ARV são microcontroladores de arquitetura RISC com memória interna, de baixo custo e
consumo energético, fruto da tese de mestrado de ALF Egil Boden e Vegard Wollan, que logo
após foi comprada e passou a ser comercializada pela Atmel a partir de 1997 com
lançamento do AT90S1200 (Lima).
18
dois anos de estudo das mais diversas tecnologias existentes no mercado,
chegando a até a plataforma Arduino4.
Arduino é um microcontrolador de baixo custo, baseado tanto em hardware,
quanto em software livres para prototipação de projetos. A plataforma Arduino vem
sendo constantemente usada, por ser de fácil acesso, ter um baixo custo e muita
documentação disponível na Internet, incluindo um portal que leva o mesmo nome
Arduino.cc5, com pessoas de todas as partes do mundo contribuindo para o
aperfeiçoamento da plataforma e dos projetos.
A programação do microcontrolador do Arduino é feita de forma embarcada,
que nada mais é que do que a gravação da programação de forma permanente no
chip AVR, utilizando a IDE do Arduino, formato esse que pode ser chamado de
Firmware6. Resolvida às questões técnicas, faltava resolução das questões teóricas
que é diminuir os custos utilizando reaproveitamento de materiais eletrônicos,
técnica chamada de Metareciclagem7, montando dispositivos criativos, baratos e
prontos para interagir com a Internet das Coisas8. Essa metodologia de enxergar a
junção das coisas para uma melhoria da sociedade é um padrão da chamada
Economia Criativa9.
4 Arduino é uma plataforma de prototipagem eletrônica baseada em hardware e softwares
livres, projetada com um microcontrolador AVR, com suporte para entradas/saídas digitais e
analógicas utilizando de uma linguagem de programação padrão, na qual tem origem na
Wiring, uma customização do C/C++ (Mazimo Banzi).
5 A popularidade da plataforma Arduino se deu pela facilidade de localização de dispositivos,
documentação e a centralidade em uma plataforma, que também que abarca o fórum, blog
e a vendo dos dispositivos (Mazimo Banzi).
6 Firmware é o software básico responsável pela inicialização do processador e pela
programação dos circuitos de interface, após ser desenvolvido é armazenado em uma
memória não volátil (Alexandre Mendonça).
7 Metareciclagem é principalmente uma ideia, um conceito de reapropriação de tecnologia
para transformação social (Fonseca).
8 Internet of the Things ou Internet das Coisas são objetos ligados à Internet mantendo uma
interação com uso de sensores mecanismos que mantenham essa interação (Kranenburg).
9 Economia Criativa é uma produção que valoriza a singularidade, o simbólico, aquilo que é
intangível como a criatividade, o folclore e à cultura de uma sociedade (A. C. Fonseca).
19
3 JUSTIFICATIVA E VIABILIDADE
3.1 Necessidades e Soluções propostas
Para a realização desse projeto, foram necessários estudos
interdisciplinares para chegar até a proposta de um dispositivo de automação de
baixo custo, boa parte dos recursos de hardware, tiveram de serem importados os
produtos nacionais inviabilizavam a execução do projeto por conta de seu preço e de
sua qualidade. Então, foi necessário à substituição dos componentes nacionais por
novas possibilidades, chegando à conclusão da obrigatoriedade de importação de
componentes tecnológicos para realização do projeto, como os sensores para as
medições, os controles para a automação e o próprio microcontrolador AVR.
3.2 Escolha de um sistema de baixo custo
3.2.1 Solução Atual:
Foi escolhida a placa Arduino Severino10 por ser fácil de achar
componentes e barata de construída, podendo ser montada partindo de um kit
básico de componentes, no Severino, as informações são recebidas e processadas
pelo microcontrolador que gera os resultados esperados de acordo com a
programação.
3.2.2 Solução Proposta:
Criação de uma Central de Controle11 para gerenciar as mais diversas
funções da casa, tendo um controle presencial e remoto dessas funções. Criando
conforto e qualidade para o usuário, criando também rotinas para segurança e
automação de atividades rotineiras com a iluminação noturna de espaços como a
10 Severino é um modelo de Arduino serial de face simples e de fácil manutenção, podendo
ser montado com peças velhas de outras placas.
11 Central de Controle é o dispositivo onde se encontra o Arduino Severino, os sensores e
que recebe os dados e faz o processamento.
20
garagem e o quintal. A ativação dos aparelhos ligados ao sistema é feito por meio da
Central de Ativação12 que recebe os comandos da Central de Controle.
3.3 Recursos Necessários e disponíveis
3.3.1 Aproveitamento do lixo eletrônico e materiais sólidos
O principal foco desse projeto foi o baixo custo e a possibilidade de viabilizar
a diminuição dos gastos e o aumento do tempo de vida de materiais sólidos que não
tinham mais utilidade seja pela depreciação ou defeito, ou pela substituição por
novas versões e na consequente falta de utilidade. Esse pensamento foi baseado
em “Metareciclagem”, que é um movimento de uma rede auto organizada que
propõe a desconstrução da tecnologia para a transformação social utilizando o
aproveitamento de materiais.
3.3.2 Circuito micro controlado para programação embarcada
A tecnologia escolhida foi a do microcontrolador Arduino, que usa um
controlador AVR, essa solução foi escolhida por atender as necessidades básicas
do projeto, também por ser de baixo custo e de fácil aplicação e replicação do
projeto para outros ambientes e situações.
3.3.3 Ambiente de desenvolvimento em Linguagem Wiring
Utilização do Arduino IDE13, que é o software livre para desenvolvimento
disponibilizado gratuitamente pela equipe Arduino, que permite que você edite e
escreva o código e converta esse código em instrução de maquina. A IDE do
Arduino também transferem estas instruções para a placa do Arduino, para cada
novo elemento de componente físico incorporado ao projeto é necessário à
biblioteca especifica para controle e programação do hardware.
12 Central de Ativação é o dispositivo responsável por controlar os equipamentos.
13Arduino IDE é a plataforma de programação para o Arduino, que faz interface entre o
usuário, o computador e o hardware.
21
3.3.4 Necessidade de componentes de hardware
Nesse caso a placa escolhida foi uma placa Severino serial com um cabo
conversor de RS23214 para USB, para fazer a comunicação da IDE pela porta COM
e a placa micro controlada. Boa parte dos componentes foram importados por conta
da falta de comercialização de componentes no mercado nacional, dentre eles: O
microcontrolador atmega32815, placa controladora de relês, sensores de movimento,
sensores de som, sensores de luminosidade e o LCD Nokia modelo PCD854416.
3.4 Viabilidade
O Brasil não é um país produtor de tecnologias, por mais que detenha todo o
necessário para que isso fosse possível como: mão de obra qualificada, recursos
naturais e grandes centros de pesquisa que poderiam gerir o desenvolvimento de
novas tecnologias.
3.5 Considerações finais
Durante a realização do projeto foram encontradas outras interessantes
possibilidades de uso de novas tecnologias que não entraram no escopo desse
projeto, como o controle da intensidade de luminosidade, o travamento e a liberação
de portas com o uso de cartões de RFID, a automação de irrigação de plantas e
outros módulos que estão sendo estudados para versões futuras do projeto.
14 RS232 é o tipo de comunicação serial presente nos computadores pessoais.
15 Microcontrolador AVR fabricado e vendi pela Atmel e utilizado nas versões do Arduino.
16 LCD usado em algumas versões de celulares da Nokia, em especial o 3310, 6120 e 6125.
22
4 OBJETIVOS
4.1 Objetivo Geral
Criar um sistema de automação residencial usando tecnologia embarcada
com um microcontrolador AVR Atmega328, com a finalidade de atender as
necessidades de automação de uma residência, fazendo com que ações simples e
rotineiras do dia a dia, como o ato de ativar o interruptor de uma lâmpada que é feito
fisicamente, possa ser feito tanto de forma manual como de forma automática
utilizando uma Central de Controle com sensores de presença, som, temperatura e
receptor de controle remoto proporcionando maior conforto para o usuário.
4.2 Objetivos Específicos
Trazer para o usuário um maior conforto e segurança, automatizando ações
rotineiras e também fazendo alterações através de medições de variações
analógicas de temperatura, umidade, luz e som, adaptando uma casa normal para
um ambiente autômato, tendo o controle do acionamento de aparelhos feito por uma
Central de Controle sem inviabilizar os comandos locais.
Medir as variações através de sensores, para adaptar o ambiente a
alterações, sem a intervenção humana, fazendo com que esse se torne o mais
agradável possível para o usuário, gerando também uma economia de energia.
Monitorar ambientes, fora dos limites residenciais, suas variações e
alterações por meio da medição de sensores que enviam os dados para a Central de
Controle, colocando assim essa residência e os dispositivos dela no mundo da
Internet das Coisas.
Para essa primeira fase foi necessário o investimento de R$ 500,00 em
equipamentos, mais a mão de obra. O sistema é feito em partes modularizadas,
podendo em versões futuras agregar novas funcionalidades e a reconfiguração das
já existentes.
23
5 MÉTODOS E TÉCNICAS
5.1 Técnicas de Levantamento de Requisitos
5.1.1 Pesquisa Cientifica
Justificativa
Foram realizadas constantes pesquisas na área de tecnologia da
informação, para saber qual seria a melhor tecnologia e a que mais se enquadraria
no padrão proposto, respeitando o baixo custo e dando preferencia a tecnologias
novas no mercado. Através desta técnica foi possível definir o escopo do projeto, e
chegar até a melhor solução para montagem do sistema.
Artefato(s) Gerado(s)
Componentes de hardware livre
Componentes de software livre
5.1.2 Estudos dos componentes de hardware
Justificativa
Através dessa técnica foi possível pesquisar cada componente e sua
documentação disponibilizada pelo fabricante para saber quais as formas de
resposta do hardware mediante programação.
Artefato(s) Gerado(s)
Programação e sinais de controle do hardware
5.1.3 Estudos das bibliotecas para programação
Justificativa
Com o uso dessa técnica, foi possível saber quais os níveis de resposta do
hardware, usando as bibliotecas de controle. Cada hardware, em especifico tem a
24
sua própria biblioteca e responde de forma especifica, cabendo à parte de
programação, definir as funções que serão executadas.
Artefato(s) Gerado(s)
Mensagens de controle
5.2 Modelo de Desenvolvimento
5.2.1 Metareciclagem
Surgida na rede, à ideia de Metareciclagem é apropriar-se das
coisas (sejam "novas" ou "velhas"), reestruturando o significado de tudo (de
computadores a sentimentos), compartilhando de maneira de fazê-lo e assim
permitindo que qualquer pessoa possa replicar ações, produções e experiências,
para preservá-las ou transformá-las (F. Fonseca).
Artefato(s) Gerado(s)
Designer da embalagem final do produto e partes dos módulos de hardware.
5.2.2 Programação em Wiring17 no Arduino IDE
Justificativa
É a linguagem onde é feita a parte de programação do sistema, sendo uma
das principais fases do projeto, senão a mais importante, onde toda a lógica da
programação é feita com abstração para depois ser convertida para linguagem de
maquina através da IDE do Arduino e logo depois de transferida para o
microcontrolador Atmega328.
Artefato(s) Gerado(s)
Firmware com a logica de funcionamento do sistema
17 Wiring é um framework open-source para programação de microcontroladores (Reas).
25
5.2.3 Sistemas Embarcados18
Justificativa.
Esse modelo de desenvolvimento é feito em conjunto com bibliotecas
escritas na variação da linguagem C/C++, a denominada Wiring, que para cada
dispositivo adicionado ao projeto, deve ser feita a programação de seu modulo
gerando possibilidades de evoluções de funções para versões futuras, podendo
adaptar o código para cada necessidade em especifico de usuário. Depois de
concluída a parte de programação da linguagem, essa é enviada permanentemente
para o microcontrolador que fica responsável por realizar todas as funções ali
especificadas.
Artefato(s) Gerado(s)
Codificação final do programa de forma embarcada
5.2.4 Internet das Coisas
Justificativa.
Essa é uma área que tem sido a responsável por colocar dispositivos na
Internet. Basicamente, são objetos interagindo com outros objetos, ou com seres
humanos, via Internet. Para isso é necessário que eles tenham alguma capacidade
de interação, seja ativa por meio de sensores e controladores, ou passiva como
cartões de reconhecimento e interação. Um dos principais exemplos é o uso do
microcontrolador Arduino, por profissionais sem profundos conhecimentos de
eletrônica, para construir os mais diversos objetos inteligentes.
Artefato(s) Gerado(s)
Informações e controle de dispositivos pela Internet
18 Sistemas embarcados são dispositivos que tem a sua programação salva em uma
memória FLASH ou em uma memória especifica dentro do microcontrolador.
26
5.2.5 Economia criativa
Justificativa.
Esse é um setor que procura repensar as cidades e a economia, fazendo
com que as áreas de consumo da sociedade gerem o menor numero de impacto,
para o meio, menor consumo de energia e uma melhor qualidade de vida para os
cidadãos.
Artefato(s) Gerado(s)
Um produto final altamente criativo
5.3 Tecnologias em Geral
5.3.1 Arduino IDE
Justificativa
O modelo foi escolhido por facilitar a comunicação da programação com o
hardware, essa tecnologia é usada para desenvolver a parte final de programação e
compilação do código para o circuito controlador, a escolha dessa tecnologia se deu
por conta da IDE do Arduino já estar preparada para esse tipo de programação, com
exemplos de algumas bibliotecas e de modelos de aplicação real no uso de
componente pelo código.
Artefato(s) Gerado(s)
Codificação em linguagem WIRING baseada em C/C++
5.3.2 LCD Nokia 3310
Justificativa
Esse modelo foi escolhido por ser de fácil utilização, existir uma
compatibilidade de hardware com o sistema e possuir várias bibliotecas prontas. O
uso de um LDC possibilita saber o estado da Central de Controle e o status de
cada canal controlado, assim como informações de temperatura, umidade e
quantidade de luz no ambiente.
27
Artefato(s) Gerado(s)
Resposta automática das variações do microcontrolador
5.3.3 Sensor de temperatura e umidade
Justificativa
Esse componente foi escolhido por conseguir identificar e receber valores
referentes às variações de temperatura e umidade, informando valores digitais que
variam de 0 a 255.
Artefato(s) Gerado(s)
Valor digital referente à temperatura e umidade do ambiente.
5.3.4 Sensor de luminosidade
Justificativa
Esse componente foi escolhido por conseguir identificar e receber um valor
digital que varia de 0 a 255, referente à quantidade luz do ambiente, podendo assim
agir como um controle enviando seus valores para possíveis ações da central.
Artefato(s) Gerado(s)
Valor do sinal analógico com a quantidade de luz do ambiente
5.3.5 Sensor de som
Justificativa
Com o uso desse sensor é possível receber valores instantâneos de 0 a 255,
referente às variações sonoras no ambiente.
Artefato(s) Gerado(s)
Valor em sinal analógico da quantidade de som do ambiente
28
5.3.6 Sensor de presença
Justificativa
Com uso desse sensor é possível receber um valor 0 ou 255, referente à
situação de ligado ou desligado que representa se há ou não movimentação nas
proximidades do sensor.
Artefato(s) Gerado(s)
Valor positivo ou neutro referente à movimentação nas proximidades do
sensor
5.3.7 Sensor de IR – Controle remoto
Justificativa
Com esse sensor é possível receber valores numéricos através de uma
porta digital. Esses valores são referentes a comandos emitidos por um controle
remoto para assim poderem ser convertidos em ações na parte de programação.
Artefato(s) Gerado(s)
Valor referente a um botão ou comando vindo do controle remoto
5.3.8 Controle remoto
Justificativa
Com esse dispositivo é possível enviar sinais de infravermelho para o
receptor através de uma porta digital. Esses valores são referentes aos comandos
emitidos por cada tecla apertada no controle remoto.
Artefato(s) Gerado(s)
Valor referente a um comando do controle remoto
29
5.3.9 Bluetooth
Justificativa
Com o uso desse sensor é possível receber valores instantâneos de 0 a 255,
referente à comunicação com dispositivos Bluetooth19.
Artefato(s) Gerado(s)
Valor referente aos dados enviados de dispositivos bluetooth
5.3.10 Placa de rede
Justificativa
Com o uso desse dispositivo é possível fazer a comunicação com a rede
TCP/IP, podendo assim enviar e receber informações de controle e status através da
rede.
Artefato(s) Gerado(s)
Comunicação entre dispositivos ligados à rede TCP/IP
5.3.11 Placa de relês
Justificativa
Com o uso desse dispositivo é possível controlar dispositivos, como se fosse
uma chave liga e desliga, com valores enviados pela Central de Controle que
é 0 ou 255, referente mudanças de estado do dispositivo para ligado ou desligado.
Artefato(s) Gerado(s)
Ativação e controle dos dispositivos ligados à placa de relês
19 Bluetooth é uma tecnologia que possibilita a comunicação sem fio entre dispositivos.
30
5.4 Linguagem de Programação
5.4.1 Linguagem Wiring
Justificativa
Wiring é uma linguagem de programação de baixo nível, que em sua
estrutura, mantêm as características da linguagem de programação, porém criando
códigos bem mais simplificados para o usuário final através de bibliotecas com
abstrações. É uma tecnologia que motiva diversas pessoas das mais variadas áreas
do conhecimento a desenvolver protótipos para resolução de alguns problemas em
sua área de atuação. Será utilizado para desenvolver as funções de rotinas e acertar
as demandas de funcionalidades do projeto.
Artefato(s) Gerado(s)
Programação das funcionalidades do sistema
5.5 Padrões
5.5.1 Padrão ANBT
Justificativa
Toda documentação do Projeto será conforme padrões ABNT (Associação
Brasileira de Normas Técnicas) para trabalhos acadêmicos, que tem como objetivo
estabelecer uniformidade na apresentação dos trabalhos acadêmicos.
Artefato(s) Gerado(s)
Documentação do Projeto/TCC – Trabalho de Conclusão de Curso.
31
6 DOCUMENTAÇÃO TÉCNICA
6.1 Descrição
6.1.1 Objetivo do Projeto
Criar um sistema de automação residencial de baixo custo para atender as
necessidades de automação de uma residência, fazendo com que ações rotineiras,
como o ato de ativar o interruptor de uma lâmpada ou controlar alguns dispositivos,
como eletrodomésticos possam ser feitas tanto de forma manual como automática
através de uma central de controle, utilizando sensores de movimento, som, toque e
dispositivo de controle remoto que proporciona maior conforto para o usuário.
6.1.2 Produto do Projeto
O produto consiste em uma Central de Controle para ser instalada em
conjunto com as instalações físicas de uma residência, a central contém toda a
programação referente à automação e os hardwares necessários para o controle e a
obtenção de dados, tanto digitais, quanto analógicos. Como o produto inclui uma
placa de rede integrada, o mesmo possibilita acesso à rede, permitindo acesso
remoto por um computador ou usando um celular com tecnologia WIFI colocando a
residência no mundo da Internet das Coisas.
6.1.3 Premissas
O projeto tem como foco principal o conforto do usuário final, verificando as
suas reais necessidades, fazendo a automação de tarefas rotineiras, gerando
economia de energia e a conscientização para o aproveitamento de resíduos sólidos
em especial a do lixo eletrônico por meio de Metareciclagem.
6.1.4 Restrições
Este projeto tem a finalidade de automatizar aparelhos de acionamento
imediato, não cabendo a este projeto o controle de equipamentos mais complexos,
como é o exemplo de aparelhos de som, televisores, DVDs, dentre outros que
exijam um maior grau de comandos com o controle especifico do fabricante.
32
6.2 Cronograma básico do projeto
O projeto teve inicio, em fevereiro de 2010, e em seu escopo como projeto
de TCC, tem o tempo previsto de encerramento para julho de 2012. Fez parte desse
projeto, o pré-projeto apresentado à matéria de programação de sistemas com o
tema “Sistema de automação residencial com acessibilidade – AutoAcessDuino”, o
qual continuou a ser desenvolvido até chegar à versão atual.
Como o projeto tem o objetivo de ter uma aplicação real, o seu
desenvolvimento continuará mesmo depois da apresentação como projeto de
conclusão de curso sendo constantemente atualizado, modificado e agregado de
novas tecnologias.
6.3 Estimativa de custo
Estima-se que para a criação do sistema por completo, sejam gastos com
peças e mão de obra dos profissionais envolvidos cerca de R$ 2000,00. Grande
parte do valor gasto foi em dólar e esse valor convertido para o real, abaixo segue a
descrição de gastos de acordo com cada equipamento adicionado ao projeto.
Quadro 1 - Estimativa de custo
Itens Quant Especificação Valor
01 01 Arduino Severino R$ 80,00
02 01 LCD Nokia 3310 R$ 40,00
03 01 Sensor de temp. e umidade DHT11 R$ 35,00
04 01 Sensor de presença PIR R$ 25,00
05 01 Sensor de luminosidade R$ 10,00
06 01 Sensor de som R$ 35,00
07 01 Sensor de controle remoto IR R$ 3,50
08 01 Controle remoto R$ 0,00
09 01 Transceiver Bluetooth R$ 37,50
10 01 Placa de rede ENC28J60 R$ 64,99
11 01 Placa de relês R$ 53,00
TOTAL VALOR TOTAL GASTO EM EQUIPAMENTOS R$ 383,99
33
6.4 Necessidade inicial de recurso
Para iniciar o desenvolvimento do projeto, foi necessário um investimento
aproximado entorno de R$ 500,00, referente ao circuito microcontrolador e alguns
componentes como as placas controladoras de relês que tiveram de ser importadas
e compradas em mais de uma quantidade.
6.5 Escopo
6.5.1 Definição
O escopo tem o objetivo de definir os limites do projeto para a automação
residencial, para essa primeira fase, não foi incluída as partes de banco de dados
para a plataforma de rede, já que, a adição dessas tecnologias faria com que a
complexidade e o preço do produto final ficasse inacessível. Em futuras versões
serão estudadas e implantação dessas e de outras funções usando tecnologias que
estão em desenvolvimento para suporte a banco de dados voltado para Automação
predial e residencial, podendo gerar históricos de eventos e rotinas avançadas.
Quadro 2 - Histórico e Revisões
Data Versão Descrição Autor
01/2010 1.0 Conhecimento da tecnologia e da plataforma de desenvolvimento.
Webert Oliveira
03/2010 1.0 Compra de dois microcontroladores AVR Atmega para montagem de Arduino Severino
Webert Oliveira
01/03/2012 2.0 Inicio do desenvolvimento e documentação Webert Oliveira
18/03/2012 2.3 Definição da Justificativa e viabilidade, do escopo, objetivos, métodos e técnicas.
Webert Oliveira
31/03/2012 2.4 Mudanças nos itens das tecnologias do sistema Webert Oliveira
31/03/2012 2.5 Alterações na estrutura do documento e do sumario Webert Oliveira
01/04/2012 2.7 Padronização dos itens do documento de visão. Webert Oliveira
15/04/2012 3.1 Alteração da definição do escopo Webert Oliveira
34
15/04/2012 3.1 Criação dos índices de tabelas e de figuras Webert Oliveira
02/05/2012 3.6 Atualização dos referenciais teóricos e citações Webert Oliveira
6.5.2 Finalidade
Este documento tem a finalidade de fornecer informações sobre as
delimitações a qual o sistema deve ser desenvolvido, bem como fronteiras e
necessidades acordadas pelo cliente e o desenvolvedor.
6.5.3 Cliente
Este projeto foi desenvolvido para a aplicação real em uma residência, o
conhecimento adquirido durante o desenvolvimento do projeto, torna possível a
aplicação em outros ambientes que atendam as mesmas necessidades levantadas
pelo cliente ou também adaptação para portadores de necessidades especiais.
6.5.4 Desenvolvedores
Analista de Requisitos – Webert Oliveira
Analista de Sistemas – Webert Oliveira
6.5.5 Objetivo
O objetivo é delimitar o tamanho do projeto e a suas possíveis ramificações,
dando prioridade ao desenvolvimento dos requisitos primordialmente levantados.
6.5.6 Stakeholders
Webert Oliveira - Programador e desenvolvedor.
Henrique Vinicius - Coordenador do projeto
Elvis Roberto - Coordenador do projeto
Alysson Vicuna– Orientador de pré-projeto
Rosa Diekm - Orientadora de projeto de TCC
35
6.5.7 Funcionalidades e serviços solicitados
• Acionamento de dispositivos eletrodomésticos;
• Identificação de temperatura e umidade local;
• Identificação de variações de luminosidade;
• Identificação de variações de som;
• Identificação por presença;
• Uso de controle remoto;
• Acesso à rede TCI/IP.
Todos estes requisitos foram levantados nos dias, 04, 05,06/01/2010 com os
Stakeholders citados acima.
6.5.8 Características técnicas da interface do sistema
Linguagem: Wiring;
IDE de desenvolvimento; Arduino IDE
6.5.9 Recomendações para Layout solicitado
A documentação técnica deverá conter o documento de visão, documento
de requisitos e toda a descrição técnica de hardware e de software assim como o
funcionamento de todas as partes do sistema.
O produto final como sistema, deve ser de fácil mobilidade e instalação, com
uma interface amigável e agradável para o usuário final.
6.5.10 Premissas e recomendações
• O sistema deve permanecer em funcionamento constante, e os
dispositivos ligados devem também responder aos comandos manuais;
• Toda parte descritiva do sistema deve estar contida em seu código,
bem como as especificações das ligações internas e externas dos
componentes de hardware;
• O sistema deve ser de fácil acesso e manuseio para os mais diversos
tipos de usuários.
36
6.5.11 Verificação de resultados
• Antes de ser implantado, o sistema deverá passar por um processo de
teste;
• O usuário final deverá homologar o sistema, verificando se suas
necessidades foram atendidas.
• Em caso de mudança de status, essa nova situação deve ser
informada no sistema.
• O sistema deve manter a forma tradicional de funcionamento, para que
em casos de falta de fornecimento na Central de Controle, o usuário possa
fazer as mudanças de forma manual.
37
6.6 Documento de Visão
6.6.1 Seção 1 – Introdução
O propósito deste documento é expor as necessidades e funcionalidades
gerais do sistema, definindo os requisitos e necessidades dos usuários finais. O
detalhamento de como o sistema atinge essas necessidades são descritos no
Documento de Requisitos.
Quadro 3 - Versionamentos e revisões
Data Versão Descrição Autor
18/03/2012 2.3 Desenvolvimento do Documento de Visão Webert Oliveira
31/03/2012 2.5 Padronização da documentação Webert Oliveira
01/04/2012 2.7 Revisão das seções Webert Oliveira
15/04/2012 3.1 Organização dos componentes internos Webert Oliveira
02/05/2012 3.7 Revisão das definições Webert Oliveira
O documento está estruturado da seguinte forma:
• Seção 1 – Introdução: Apresentação do documento de visão.
• Seção 2 – Contextualização: descrição do contexto em que surgiu a
ideia/necessidade de se fazer o projeto e quais os problemas que devem ser
resolvidos com o desenvolvimento deste projeto.
• Seção 3 – Descrição dos Stakeholders (envolvidos): descrição dos
principais envolvidos no projeto, juntamente dos usuários que utilizarão a aplicação.
• Seção 4 – Necessidades e soluções: descrição geral das necessidades
levantadas para o projeto, com as prioridades, as soluções atualmente utilizadas a e
solução proposta para a criação do sistema.
• Seção 5 – Visão Geral do Produto: descrição geral do sistema,
perspectivas e características.
• Seção 6 – Características do produto: As principais premissas
consideradas para o desenvolvimento do projeto.
38
• Seção 7 – Ambiente do Usuário: breve descrição do ambiente físico e
computacional que o sistema será utilizado.
• Seção 8 – Restrições Técnicas: descrição das restrições técnicas do
projeto.
Finalidade
Definir a visão dos Stakeholders quanto ao produto, de acordo com suas
necessidades propostas de funcionalidades serrem atendidas. O documento contém
uma visão geral dos requisitos mais importantes do sistema, sendo a base do
acordo feito com o cliente das funcionalidades do sistema.
Escopo do Documento
Essa documentação procura definir o cenário para a criação do projeto, seus
envolvidos, o contexto de sua criação, as tecnologias e os procedimentos usados.
Definições, Acrônimos, e Abreviações
As definições, acrônimos e abreviações utilizadas neste documento estão
especificados no documento Glossário.
Quadro 4 - Referências
Título Versão Data Onde pode ser obtido
Glossário do Projeto 3.1 15/04/2012 Está no tópico 7 documento
Documento de Requisitos do Projeto. 3.1 15/04/2012 Está na seção 6.7 desse documento
Google Trends 2.8 01/04/2012 Gráficos de pesquisas do Google
Automação Residencial 3.7 02/05/2012 Está descrito no glossário tópico 7
Arduino 3.7 02/05/2012 Está descrito no glossário tópico 7
39
6.6.2 Seção 2 – Contextualização
6.6.2.1 Oportunidade de Negócio
Como mencionado o intuito do desenvolvimento desse sistema e seu foco é
totalmente acadêmico, porém durante sua realização foi visto uma ótima
oportunidade comercial, levando em consideração o baixo custo de fabricação do
sistema e a alta possibilidade de lucro, além das inúmeras benfeitorias que o
produto traz ao modernizar o ambiente residencial.
Os atuais produtos do mercado nacional, são caros e muitas das vezes não
atendem as reais necessidades reais de um cliente, também existe uma grande
dificuldade em mudanças e adaptações, já que o sistema tem uma arquitetura de
fabricação fechada. Fazendo uma pesquisa, utilizando a ferramenta do Google,
Google Trends20, que gera gráficos de pesquisas feitas na Internet, mostra o
constante crescimento e a procura sobre o tema automação residencial no Brasil em
especial utilizando open hardware e a plataforma Arduino.
20 Google Trends é uma ferramenta do Google Labs que mostra os mais populares termos
buscados em um passado recente.
Figura 1 - Pesquisa Google Trends - Automação Residencial
40
A plataforma Arduino, por ser um dispositivo de prototipação de projetos,
vem sendo usada para uma serie de projetos e a sua procura tem aumentado
constantemente, por estudantes, hobbistas, profissionais e interessados em estudar
a plataforma como mostra gráfico com os índices de pesquisa sobre a palavra
Arduino na ferramenta Google Trends.
Para o desenvolvimento desse projeto, ficou definido que todo o projeto seria
baseado em hardware e software livres, para a criação de uma versão comercial,
haverá a necessidade de adaptar a parte de hardware e de software para criação de
um produto com arquitetura mais fechado e com o uso de patentes, evitando assim
copias e similaridades do mesmo produto no mercado, é possível também escolher
outro microcontrolador AVR mais potente do que o inicialmente usado.
No entanto, o autor desse projeto, acredita que o livre compartilhamento de
informações, traz um bem maior para o desenvolvimento tecnológico nacional,
melhorando a qualidade dos produtos e serviços locais e preparando o país para
concorrer com igualdade com outros grandes produtores de tecnologia, como a
China e os Estados Unidos.
Figura 2 - Pesquisa Google Trens - Arduino
41
Quadro 5 - Descrição do problema
Problema Encontrar componentes no mercado nacional
Pessoas Atingidas Como o mercado não disponibiliza tais produtos, isso gerou a
necessidade de importar os componentes. Verificando a falta
de qualidade no serviço de correios do Brasil, este está
qualificado entre um dos piores do mundo, e a dependência por
essa empresa, a greve que ocorreu durante a realização, levou
a um atraso de meses no desenvolvimento do projeto.
Impacto Atraso nos recebimento dos componentes de hardware,
afetando no tempo execução de projeto.
Uma solução bem sucedida traria Maior agilidade no envio e recebimento de encomendas
criando maior segurança da realização de um projeto.
Problema Falta de produção de componentes locais
Pessoas Atingidas Desenvolvedores de produtos criativos
Impacto Alto índice de importações
Uma solução bem sucedida traria Incentivos ao mercado local para uma melhor produção e
venda de componentes nacionais.
Problema Alto custo dos sistemas no mercado local
Pessoas Atingidas Pessoas que queiram um sistema de automação
Impacto Falta de acessibilidade ao sistema
Uma solução bem sucedida traria Um maior número de pessoas com sistemas de automação
residencial desenvolvido com tecnologia local.
42
6.6.3 Seção 3 -Descrição Stakeholders (envolvidos)
Webert Oliveira - Programador e desenvolvedor.
Henrique Vinicius - Coordenador do projeto
Elvis Roberto - Coordenador do projeto
Alysson Vicuna– Orientador de pré-projeto
Rosa Diekm - Orientadora de projeto de TCC
Quadro 6 - Resumo dos Stakeholders (Não Usuários)
Identificação Responsabilidades
Desenvolvedor
• Garantir o fornecimento de informações necessárias para
desenvolvimento do projeto;
• Criar as interfaces de interação com o usuário;
• Desenvolver a programação do sistema.
Coordenador do projeto • Avaliar as possibilidades de uso do projeto;
• Adaptar aos padrões de projeto e de mercado.
Orientador pré-projeto • Direcionar o projeto para os padrões de projeto final.
Orientador de TCC • Ajustar o projeto aos padrões de apresentação como projeto de
conclusão de curso.
Quadro 7 - Resumo dos Stakeholders (Usuários)
Identificação Responsabilidades
Cliente
• Utilizar as funcionalidades do sistema;
• Informar eventuais erros de desenvolvimento do sistema.
43
Quadro 8 - Equipe de Desenvolvimento do Projeto
Identificação Responsabilidades
Analista de teste e
desenvolvedores
• Emitir feedback das funcionalidades do sistema;
• Manter atualizadas as tecnologias do sistema;
• Requisitar atualização de novos componentes necessários para
desenvolvimento do projeto;
• Levantar requisitos necessários para o desenvolvimento do Sistema;
• Definir os padrões de desenvolvimento;
6.6.4 Seção 4 - Necessidades e soluções
6.6.4.1 Necessidade 1: Ligar e desligar equipamentos
Prioridade:
Alta Média Baixa
Solução Atual:
Feito manualmente
Solução Proposta:
Placa de reles para a função de controle
Fazendo o uso de um hardware como uma Central de Ativação, e usando
nesse hardware uma placa de relês, os relês obedecem a comandos de uma função
de controle que emite um pulso positivo de 5V em uma das portas do
microcontrolador. Ao receber esse pulso o sistema se arma e faz à ligação do
dispositivo, ao deixar de receber esse pulso, o sistema fica neutro e o relê é
desarmado. Esse pulso pode ser gerado por qualquer uma das tecnologias
apresentadas no item 5.3 - “Tecnologias em geral”.
44
6.6.4.2 Necessidade 2: Controlar equipamentos por variações de
temperatura e umidade
Prioridade:
Alta Média Baixa
Solução Atual:
Feito manualmente
Solução Proposta:
Uso de sensor de temperatura e função de rotinas de controle
Fazendo uso do sensor DHT22, que mede as variações de temperatura e
umidade e manda por uma porta analógica os dados, como informações analógicas,
é possível, através de algumas funções fazer algumas rotinas para automatização
do ambiente com as variações decorrentes de aumento ou diminuições tanto de
temperatura quanto de umidade.
6.6.4.3 Necessidade 3: Usar o máximo tipo de comunicações possíveis
Prioridade:
Alta Média Baixa
Solução Atual:
Não há.
Solução Proposta:
Uso de de varias tecnologias usando as mesmas funções de controle
Como as tecnologias usadas sempre geram pulsos elétricos de 5V como
sinais de verdadeiro ou falso, esses sinais foram adaptados para compartilhar a
mesma função, para depois exercer o ato de ativar e desativar um aparelho que
45
esteja ligado a um canal, dependendo da variação de luz, temperatura ou ação de
outro agente como no uso de um controle remoto por exemplo.
6.6.5 Seção 5 – Visão Geral do Produto
Esse sistema permitirá automação residencial através do uso da placa
Arduino Severino, o programa será executado de forma embarcada e terá como
entrada de dados às informações dos sensores e a comunicação serial. A
programação do sistema é desenvolvida na linguagem Wiring, uma variação do
C/C++, na plataforma Arduino IDE.
As respostas serão enviadas pelos sensores que estarão conectados à
Central de Controle, os principais sensores são: sensor de temperatura e umidade,
sensor de luminosidade, sensor som, sensor de presença, receptor de sinais do
controle remoto e o sistema de rede. A saída será o LCD Nokia 3310 e o controlador
de ativação que gerenciará a iluminação e eletrodomésticos como: aquecedor e
umidificador.
6.6.6 Seção 6 Características do produto
Quadro 9 - Perspectiva do produto
Benefício para o cliente Recursos de Controle Recursos de Gestão
Maior conforto e comodidade ao
usar a residência.
Controle remoto
Acesso por rede
Acesso à via Bluetooth
Configurações padronizadas, e
rotinas definidas e pelo usuário
Rotinas automáticas
Adaptação automática as
mudanças de temperatura,
umidade, som, movimento e
luminosidade
Economia de energia, e acesso
de gerenciamento pela rede
Atualizações Possibilidade de reprogramação
e upgrade de novas funções Sistema eficiente e atualizado
46
6.6.7 Seção 7 Ambiente do usuário
Tabela 1 – Dispositivo utilizados para alteração do estado
CANAL
LCD Nokia
Sensor temperatura e umidade
Sensor de luminosidade
Sensor de presença
Transceiver Bluetooth
Comunicação Serial
Controle Remoto
Modulo de rede Ethernet
Esses dispositivos compartilham de uma variável comum, chamada de
CANAL, que recebe o pino a ser alterado, nesse caso chamado de canal, e muda o
seu estado atual. Com o uso da função AlteraEstado(); é possível receber o sinal
independente de qualquer fonte de comunicação que esteja enviando o comando.
Para o usuário final é indiferente à forma como o sinal está sendo
processado, porém para customização de código, o uso dessa função é
importantíssimo para o desenvolvimento do programa. Abrindo a possibilidade de
atualizações futuras usando a comunicação serial para enviar esses comandos para
a função ou adicionando novos dispositivos a pinos livres do microcontrolador AVR.
47
6.6.8 Seção 10 – Restrições Técnicas
• Programação deve ser feita de forma embarcada em formato de
Firmware e para a atualização do dispositivo;
• O sistema de estar constantemente alimentado;
• Para uma perfeita mediação de temperatura e umidade, deve estar em
local com variações uniformes dessas variáveis;
• Para perfeita medição de luminosidade a Central de Controle deve
estar em local que acompanhe as variações de mudança do dia;
• Para a captação de presença, a Central de Controle deve estar
direcionada para a área que se quer monitorar;
• Para alimentação dos dispositivos, a Central de Ativação deve estar
alimentada com 220V;
• Para controle via rede, é necessária a ligação junto à rede TCP/IP;
48
6.7 Documento de Requisitos
6.7.1 Definição
Os principais requisitos que o sistema deve ter são: controlar dispositivos,
reconhecer e interpretar a presença de pessoas, reconhecer interpretar as variações
de temperatura, umidade e luz, ativar dispositivos através de controle remoto e
acesso pela rede TCP/IP, as mudanças e variações devem ser reconhecidas de
forma automática.
O sistema deve ser de baixo custo, ter baixo consumo de energia e também
ter como uma das características principais, ser comercial e de fácil acesso.
Também deverá ser desenvolvido em uma linguagem de programação fácil de ser
entendida e mais acessível possível para estudantes e não profissionais.
Quadro 10 - Documento de requisitos - Histórico e revisões
Data Versão Descrição Autor
31/03/2012 2.4 Definição dos requisitos Webert Oliveira
15/04/2012 3.1 Revisão da estrutura Webert Oliveira
6.7.1.1 Finalidade
O propósito deste documento é expor as necessidades e funcionalidades
gerais do sistema, definindo os requisitos em termos de necessidades do usuário
final. Os detalhes de como o sistema, atinge essas necessidades são descritos no
Documento de Requisitos.
O objetivo é fornecer à equipe de desenvolvimento, informações importantes
para o desenvolvimento das especificações de casos de uso, diagramas UML,
projeto de implantação, realização de testes e homologação do sistema.
6.7.1.2 Escopo do Documento
Esse documento tem por objetivo levantar os quesitos essenciais para
desenvolvimento dos sistemas, definido o que é prioritário e essencial e as demais
funções que são acessórias.
49
Os sinais de controle serão gerados pelo usuário ou por outras ações pré
configuradas, esses sinais serão enviadas pelos sensores que estarão conectados a
placa os sensores principais são: sensor de som, sensor de presença, sensor de
movimento e o receptor de sinais do controle remoto. A saída será o controle de
iluminação e de eletrodomésticos como: aquecedor e umidificador.
6.7.1.3 Definições, Acrônimos, e Abreviações
As definições, acrônimos e abreviações utilizadas neste documento estão
especificados no documento Glossário.
6.7.1.4 Visão Geral do Documento
O documento está estruturado da seguinte forma:
• Seção 1 – Definição: apresenta as necessidades do projeto.
• Seção 2 – Descrição geral do sistema: apresenta uma visão geral do
sistema, caracterizando qual é o seu escopo e descrevendo seus
usuários.
• Seção 3 – Requisitos funcionais (casos de uso): especifica todos os
casos de uso do sistema.
• Seção 4 – Requisitos não-funcionais: especifica todos os requisitos
não funcionais do sistema.
6.7.1.5 Prioridades dos Requisitos
Para estabelecer a prioridade dos requisitos, nas seções 3 e 4, foram
adotadas as denominações “essencial”, “importante” e “desejável”.
Essencial é o requisito sem o qual o sistema não entra em funcionamento.
Requisitos essenciais são requisitos imprescindíveis, que têm que ser implantados
impreterivelmente.
Importante é o requisito sem o qual o sistema entra em funcionamento, mas
de forma não satisfatória. Requisitos importantes devem ser implantados, mas, se
não forem, o sistema poderá ser implantado e usado mesmo assim.
Desejável é o requisito que não compromete as funcionalidades básicas do
sistema, isto é, o sistema pode funcionar de forma satisfatória sem ele. Requisitos
50
desejáveis podem ser deixados para versões posteriores do sistema, caso não haja
tempo hábil para implantá-los na versão que está sendo especificada.
6.7.2 Descrição geral do sistema
Aqui são colocadas todas as funcionalidades levantadas melhor utilização do
projeto, definindo as prioridades de execução de ações.
6.7.3 Requisitos Funcionais (casos de uso)
[RF001] Ativar e desativar equipamento
Descrição do caso de uso: O sistema deverá receber os dados das entradas tanto
analógicas quanto digitais e utiliza-las para controle a ativação de equipamentos.
Prioridade: Essencial Importante Desejável
Pré Condições e Entradas: necessidade de haver energia elétrica na Central de
Controle, receber um sinal de entrada por qualquer uma das tecnologias usadas.
Saídas e pós-condição: a corrente elétrica é ativada ou desativada.
[RF002] Reconhecer e Interpretar variações de temperatura e umidade
Descrição do caso de uso: O sistema deverá receber os dados analógicos
emitidos pelo sensor de temperatura e umidade para efetuar ações de acordo com
as mudanças e variações dessas variáveis.
Prioridade: Essencial Importante Desejável
Pré Condições e Entradas: necessidade de haver energia elétrica na Central de
Controle e a mesma esta em ambiente bem posicionado para a medição.
Saídas e pós-condição: ações realizadas com as variáveis de temperatura e
umidade.
51
[RF003] Reconhecer e Interpretar variações de luminosidade
Descrição do caso de uso: O sistema deverá receber os dados analógicos
emitidos pelo sensor de luminosidade e efetuar as ações configuradas pelo usuário
Prioridade: Essencial Importante Desejável
Entradas e pré-condições: necessidade de estar bem posicionado no ambiente
para receber a luz de forma uniforme, sem grandes variações.
Saídas e pós-condição: ações relacionadas à mudança de luminosidade.
[RF004] Reconhecer e Interpretar variações de som
Descrição do caso de uso: O sistema deverá receber os dados analógicos
emitidos pelo sensor de som e efetuar as ações configuradas pelo usuário.
Prioridade: Essencial Importante Desejável
Entradas e pré-condições: necessidade de estar bem posicionado no ambiente
para receber o som de forma uniforme, sem grandes variações.
Saídas e pós-condição: ações relacionadas à mudança de intensidade sonora.
[RF005] Reconhecer e Interpretar variações de presença
Descrição do caso de uso: O sistema deverá receber um sinal emitido pelo sensor
de presença, referenciando se há ou não presença no campo de ação do sensor.
Prioridade: Essencial Importante Desejável
Entradas e pré-condições: necessidade de estar bem posicionado no ambiente,
para capitar a presença de pessoas.
Saídas e pós-condição: ações relacionadas à detecção de presença.
52
[RF006] Reconhecer e Interpretar sinais do controle remoto
Descrição do caso de uso: O sistema deverá receber um sinal emitido pelo
controle remoto e processar a ação referente ao comando já configurado.
Prioridade: Essencial Importante Desejável
Entradas e pré-condições: necessidade de ter um controle remoto compatível com
o receptor de IR e já ter as configurações de ações programadas.
Saídas e pós-condição: ações relacionadas ao controle geral de dispositivo e da
Central de Controle.
[RF007] Reconhecer e Interpretar sinais de dispositivo Bluetooth
Descrição do caso de uso: O sistema deverá receber um sinal emitido por
dispositivos de tecnologia Bluetooth.
Prioridade: Essencial Importante Desejável
Entradas e pré-condições: necessidade de ter um receptor SLAVE para parear
com outros dispositivos e receber os sinais de controle.
Saídas e pós-condição: ações relacionadas ao controle geral de dispositivo e da
Central de Controle.
[RF008] Reconhecer e Interpretar sinais emitidos pela rede
Descrição do caso de uso: O sistema deverá ter uma interface para comunicação
pela rede, para receber e transmitir sinais.
Prioridade: Essencial Importante Desejável
Entradas e pré-condições: necessidade de estar em uma mesma rede com outros
dispositivos que tenham navegação via browser.
Saídas e pós-condição: ações relacionadas ao controle geral de dispositivo e da
Central de Controle via rede.
53
6.7.4 Requisitos não-funcionais
[NF001] Desempenho
O sistema deverá responder imediatamente às entradas emitidas pelos sensores,
respondendo em tempo real ao usuário.
Prioridade: Essencial Importante Desejável
[NF002] Hardware e Software
Uso de uma linguagem de fácil acesso, utilizando versões em formato de firmware
para atualizações futuras do sistema.
Prioridade: Essencial Importante Desejável
6.8 Diagramas UML
6.8.1 Definição
Essa documentação é responsável por mostrar de forma visual os
relacionamentos e a forma de funcionamento do sistema, todo o seu comportamento
e de dos periféricos ligados a ele ligados.
Quadro 11 - Diagrama UML - Histórico e revisões
Data Versão Descrição Autor
29/03/2012 2.5 Atualização dos diagramas Webert Oliveira
12/04/2012 3.0 Revisão da definição e finalidades Webert Oliveira
15/04/2012 3.1 Revisão do documento Webert Oliveira
6.8.1.1 Finalidade
Utilizando os padrões da UML, foram criados diagramas de caso de uso
para cada requisito funcional do sistema, e o diagrama de sequencia para mostrar
como o sistema se comporta com determinada ação.
54
6.8.1.2 Escopo do Documento
Nesse documento é descrito a visão geral, sequencia e os diagramas de
caso de uso dos requisitos funcionais do sistema.
6.8.1.3 Ferramenta utilizada
Para a confecção dos diagramas foi utilizado à ferramenta EdrawMax,
versão 4.5. O EdrawMax é uma ferramenta poderosa para criação de fluxogramas e
organogramas, trabalhando com os mesmos conceitos das ferramentas de desenho,
como o Corel e o Photoshop e dando possibilidades de modelos bem mais
elaborados para documentos e apresentação de trabalhos e projetos. O programa é
pago e consta com uma versão para teste.
6.8.1.4 Definições e características técnicas do microcontrolador
As definições de uso dos pinos do microcontrolador encontram no ANEXO
III, no código de programação do sistema, a Figura 03 mostra os pinos de
comunicação do Atmega168 e as tecnologias desses pinos.
Figura 3 – Esquema de Pinos do Atmega168/328
55
6.8.2 Diagrama Visão Geral
Figura 4 - Diagrama visão geral
56
6.8.3 Diagrama de Componentes
Figura 5 - Diagrama de componentes
57
6.8.4 Diagrama de Funções
Figura 6 - Diagrama de funções
58
6.8.5 Diagramas de Execução
Figura 7 - Diagrama de execução
59
6.9 Especificações de Caso de Uso
6.9.1 Controle temperatura e umidade
SIGLA – RF002
6.9.2 Controle de luminosidade
SIGLA – RF003
60
6.9.3 Controle de som
SIGLA – RF004
6.9.4 Controle de presença
SIGLA – RF005
61
6.9.5 Controle remoto
SIGLA – RF006
6.9.6 Controle via bluetooth
SIGLA – RF007
62
6.9.7 Controle via rede
SIGLA – RF008
6.9.8 Definição
Quadro 12 - Casos de uso - Histórico e revisões
Data Versão Descrição Autor
13/03/2012 2.0 Desenvolvimento do Documento Webert Oliveira
15/04/2012 3.1 Organização dos casos de uso Webert Oliveira
6.9.8.1 Finalidade
Estes documentos especificam os casos de usos mostrados no artefato
anterior.
6.9.8.2 Escopo do Documento
Contém as especificações dos casos de uso do sistema de controle de
automação residencial, usando uma Central de Controle e outra de ativação com as
tecnologias levantadas no item 5.3.
63
6.9.8.3 Definições, Acrônimos, e Abreviações
As definições, acrônimos e abreviações utilizadas neste documento estão
especificados no documento Glossário.
6.9.9 Função Alterar Estado
Está é a especificação de uma das principais funções do sistema que é a
que recebe o valor referente a um canal digital e muda a sua situação, invertendo
para uma situação contraria.
6.9.9.1 Finalidade
Este documento especifica o requisito funcional RF001 para o acionamento
de desligamento de equipamentos e explica os casos de uso usados para essa
alteração como previsto no projeto nas siglas RF002, RF003, RF004, RF005,
RF006, RF007 e RF008.
6.9.9.2 Breve Descrição
Este caso de uso permitirá que um valor recebido altere o estado de uma
das portas digital do microcontrolador referente a um dos Canais de dispositivos
alternando de acordo com a sua situação atual.
Tabela 2 - Fluxo de eventos de casos de uso
Nome UC Alterar Canal Rastreabilidade RF001
Atores US – Usuário
SIS – Sistema
SOL – Sistema Solar
Participação do
ator
US – Aciona os dispositivos para ligação e desligamento de acordo com sua
necessidade.
SIS - Manter o processamento das solicitações do usuário.
SOL – Responsável a informar ao sistema a hora de desligamento de luzes
referente à falta de luminosidade do ambiente.
Funcionalidade(s) relacionada(s) ao caso de uso no Sistema
Altera Canal
Pré-condições (quando e como inicia)
64
A Central de Controle deve estar devidamente alimentada e em operação e a centra de ativação
conectada a essa.
Pós-condições (quando e como termina)
Os dispositivos a serem controlados devem ser ligagos as Central de Ativação e esse ligada a rede
eletrica.
FLUXO BÁSICO - Cenário: Alterar Estado
1. O usuário escolhe a tecnologia que deseja usar
2. O sistema reconhece a tecnologia usada e utiliza as funções referentes a essa
tecnologia. Como previsto no item 5.3
[ANEXO I, Componentes da Central de Controle].
3. O usuário envia um valor através do dispositivo, referente à mudança de um canal.
4. O sistema reconhece esse valor e a tecnologia que a enviou e faz o processamento.
5. O sistema faz o processamento e verifica o estado atual do dispositivo, fazendo a
mudança de seu estado ao liberar um pulso positivo ou neutro para uma porta que
alimenta a placa de relês ligada a Central de Ativação.
[ANEXO I, Componentes da Central de Controle e ativação].
6. Caso o usuário faça nenhuma modificação e a iluminação solar passar da mínima a
central ativa o canal de iluminação, [A01] é executado.
7. Caso haja presença nas proximidades do sensor de presença e essa movimentação
seja com o mínimo de iluminação no ambiente, a central ativa o canal de iluminação
por alguns minutos ou enquanto houver movimentação, [A02] é executado.
8. Caso haja barulho sonoro acima dos limites programados na Central de Controle,
[A03] é executado.
FLUXOS ALTERNATIVOS
A01 – Alterar iluminação por quant. de luz Atores: Sol / Sistema
1. A quantidade de iluminação está abaixo no mínimo permitido.
[ANEXO I] [Componentes da Central de Controle, Sensor de luminosidade].
2. O sensor de luminosidade reconhece essa mudança
3. Caso ela seja menor que a permitida o sistema chama a função para alteração de
mudança de estado do canal, [RF001] é executado.
65
4. O estado do canal é mudado para ligado
5. O sistema mostra a alteração no LCD
A02 – Alterar iluminação por presença Atores: Usuário / Sistema
1. O usuário faz algum tipo de movimentação ou presença no campo de percepção do
sensor.
[ANEXO I] [Componentes da Central de Controle, Sensor de presença].
2. O sensor de presença reconhece a movimentação e emite um pulso elétrico para a
Central de Controle.
3. Caso [A01] não tenha sido executado ou esteja desabilitada para determinada canal,
e a quantidade de iluminação esteja abaixo do mínimo configurado, [RF001] é
executado.
4. O estado do canal é mudado para ligado
5. O sistema mostra a alteração no LCD
A03 – Alterar estado pela serial, Bluetooth, controle remoto ou pela rede.
Atores: Usuário / Sistema
1. O usuário faz uso de um dos dispositivos mencionados para a comunicação com a
Central de Controle.
[ANEXO I] [Componentes da Central de Controle].
2. O usuário usa a tecnologia que envia um sinal para a central. [RF001] é executado.
3. O sistema faz o processamento e a mudança de estado do dispositivo
4. O sistema imprime no LCD e na serial a mudanças ocorridas no sistema.
5. O sistema mostra a alteração no LCD
66
7 GLOSSÁRIO
Este documento tem a finalidade de fornecer os significados de termos
utilizados durante o documento.
Quadro 13 - Glossário - Termos de Descrições
Termo Descrição
ABNT Associação Brasileira de Normas Técnicas.
Arduino Plataforma eletrônica baseada em hardware e softwares livres para prototipação de projetos.
Arduino IDE Plataforma de programação para o Arduino, que faz a interface entre o usuário e o computador com o hardware.
Atmega328 Modelo de microcontrolador AVR fabricado pela Atmel.
Atores Pessoas ou componentes que interagem com o sistema.
Automatização Aplicação de técnicas computadorizadas.
AVR Microcontroladores de arquitetura RISC com memória interna, de baixo custo e consumo energético.
Bluetooth Tecnologia que possibilita a comunicação sem fio entre dispositivos.
Browsers É um programa de computador que habilita seus usuários a interagirem com páginas da Internet.
C/C++ Tipos de linguagem de programação de baixo nível.
Central de Ativação Dispositivo responsável por controlar os equipamentos.
Central de Controle Dispositivo responsável por toda a parte de processamento da estação onde está o Arduino Severino e os sensores.
Caso de Uso Uma funcionalidade do sistema.
CPDs Centrais onde ficam o servidores de uma instituição.
67
DHT22 Sensor de temperatura e umidade.
Documento de Visão Documento que fornece uma informação geral do sistema e os acordos preliminares realizados entre o cliente e empresa contratada para desenvolver o projeto.
Documento Requisitos Documento que fornece os Requisitos Funcionais e Não-Funcionais do sistema.
EdrawMax Programa para geração de fluxogramas.
Economia Criativa Produção que valoriza a singularidade, o simbólico, aquilo que é intangível como a criatividade, o folclore e à cultura de uma sociedade.
Escopo Estabelecimento das principais funcionalidades e fronteiras do sistema.
Especificação de Caso de Uso
Documento que descreve um caso de uso, ou seja, descreve como o caso de uso funcionará no sistema.
ECU Sigla para especificação de Caso de Uso
Firmware Software básico responsável pela inicialização do processador e pela programação dos circuitos de interface, armazenado em uma memória não volátil.
FLASH Memoria não volátil de leitura e gravação.
Fluxos de Eventos Sequencia de passos a serem executados.
Fluxo Básico Fluxo principal de um caso de uso
Fluxo Alternativo Fluxos alternativo ao fluxo principal do caso de uso.
Framework É um conjunto de abstrações que unem códigos comuns entre vários projetos.
Google Trends Ferramenta do Google Labs que mostra os mais populares termos buscados em um passado recente.
Hardware Equipamentos, Maquinário.
Infravermelho Tipo de tecnologia que emite luz não visível ao olho humano.
Interface Tela de um sistema apresentada ao usuário.
68
Internet Rede Mundial de Computadores.
Internet das Coisas Rede formada por objetos e coisas que interagem por meio da internet.
LCD Tipo de tela para visualização de informações.
Metareciclegem É um conceito de reapropriação da tecnologia para transformação social.
Microcontrolador. É um computador em um chip, contendo um processador, memória e periféricos de entrada/saída.
Microprocessamento Processamento feito por microcontroladores.
Monitora Cerrado Projeto desenvolvido em parceria com Arduino-Brasília para Semana Nacional de Ciência e Tecnologia.
Módulos do Sistema Subsistemas que compõem o sistema.
PCD8544 LCD usado em algumas versões de celulares da Nokia, em especial o 3310, 6120 e 6125
Pós-Condição Condições consideradas para saídas em casos de uso.
Pré-Condição Condições consideradas para entra em casos de uso.
Requisito do Cliente Necessidades do cliente. Representa a necessidade do cliente que deve ser sanada com o sistema.
RFID Tecnologia de identificação por radiofrequência.
Requisito Funcional / Requito de Produto Funcional
Necessidade que gerará uma funcionalidade no sistema.
Requisito Não-Funcional
Necessidade que não gerará uma funcionalidade no sistema, porém importante para o negócio.
RISC Linha de arquitetura de processadores que favorece um conjunto simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas.
RS232 Tipo de comunicação serial presente nos computadores pessoais.
Severino É um modelo de Arduino serial de face simples e de fácil manutenção.
69
Sistema Programa de computador capaz de prover um conjunto de funcionalidades.
Sistemas Embarcados São dispositivos que tem a sua programação salva em uma memória FLASH ou em uma memória especifica dentro do microcontrolador
Slave Dispositivo secundário de uma comunicação.
Software O mesmo que sistema.
Stakeholders Todas as pessoas envolvidas no projeto.
TCP/IP Conjunto de protocolos de comunicação entre computadores em rede.
TI Área do conhecimento responsável por criar, administrar e manter a gestão da informação através de dispositivos e equipamentos para acesso, operação e armazenamento de dados, de forma a gerar informações para tomada de decisão.
WIFI É uma marca registrada da Wi-Fi Alliance, para dispositivos de rede local sem fios (WLAN) baseados no padrão IEEE 802.11.
Wiring Framework open-source para programação de microcontroladores
70
8 CONCLUSÃO
Com a realização desse projeto e de seu estudo multidisciplinar, foi possível
criar um sistema para automação residencial de baixo custo, como proposto no
documento de visão e no inicio do projeto usando conceitos de reciclagem de lixo
eletrônico associado de novas tecnologias, para transformar uma residência comum
em um ambiente moderno e preparado para o conceito de Internet das Coisas.
Mantendo um canal de comunicação pronto e permanente para esse proposito.
O conforto e a modernização dos ambientes, agora é possível graças a essa
automação de ambientes e espaços, adicionando tecnologia, mas mantendo o modo
antigo do usuário de comunicar com o seu sistema de acionamento de dispositivos.
Foi verificado que com o aprendizado dessas tecnologias traz a possibilidade de
infinitas aplicações, indo desde uma residência, uma chácara e também em outras
situações bem mais especificas como o uso em uma impressora 3D ou um robô
super inteligente.
O modelo de desenvolvimento escolhido serviu para delimitar um proposito
de aplicação, porem essas multidisciplinas estudadas para o projeto, se comunicam
entre si e com o aprofundamento em seus conceitos é possível continuar criando e
dispositivos que resolvam problemas do nosso dia a dia ou que nos ajude a diminuir
o tempo que gastamos com esses processos. Foi muito importante seguir e confiar
no seu desenvolvimento, mesmo que em muitos momentos, os conhecimentos
necessários para a sua realização, tiveram de ser aprendidos e dominados,
desafios esses motivadores para um jovem aprendiz.
Por ultimo, o projeto não acabou, apenas uma parte dele foi concluída,
assim muito conhecimento ainda há de ser aprendido, muito tempo há de ser gasto
e muitos frutos referentes a esses esforços hão de ser colhidos, o resultado desse
processo eu vejo agora ao concluir esse modulo e para os módulos futuros que
serão feitos, nos mesmos moldes desse, espero sucesso, assim que eles vierem.
71
ANEXO I
1. Componentes da Central de Controle
Figura 8 - Interface da Central de Controle
72
Quadro 14 - Componentes da central de controle
Item Comando Ação Restrições/Observações
01 LCD Nokia Interface de resposta do usuário Será apresentado apenas
mudanças de comando
02
Sensor de
Temperatura e
umidade
Faz a mediação em tempo real da
temperatura e umidade
Dever ser colocado onde não
tenha outras variações que
interfiram nas medições
03 Sensor de
movimento
Faz a detecção dos dos movimentos
em tempo real
Deve ser direcionado para a
região nde se quer monitorar
04 Sensor de som Detecta alterações de som no
ambiente
Em ambiente com muito
barulho não faz uma medição
correta
05 Sonsor de IR Recebe valores do controle remoto
para efetuar ações
Os comando do controle
devem ser direcionados para o
receptor IR
06 Saida de
controle
Manda o sinal de ligar para a central de
controle
Altera os canais de 1 a 4
dependendo do comando e da
situação atual
07 Comunicação
de rede
Recebe comandos para alteração do
estados dos canais
Pode não responder
perfeitamente de acordo com o
navegador
08 Entrada de
alimentação
Receber a energia para alimentação da
central de comando e da central de
controle
Deve receber energia
suficiente para aliemtnar todo
o circuito
73
Figura 9 - Tela LCD Nokia 3310
1.1. LCD Nokia
Tabela 3- Comandos LCD Nokia
Item Comando Ação Restrições/Observações
01 Escrever Escreve na tela as
ações principais
Para essa primeira faze não foi feita uma navegação por
menus.
02 Atualizar Mostra atualização de
comandos na tela
As atualizações são os valores de temperatura, umidade
e luminosidade e também os estados dos canais
02 Blacklight Liga e desliga a luz de
fundo do LCD
Não é alterada a intenssidade, apenas o estado de ligado
e desligado
SIGLA – RF001
1.2. Sensor de temperatura e umidade
Tabela 4 - Comandos sensor de temperatura e umidade
Item Comando Ação Restrições/Observações
01 Medição de
temperatura
Recebe os valores
referente a
temperatura
Os valores são aferidos nas proximidades do sensor,
dependendo de uma boalocalização para uma
perfeita mediação.
02 Medição de
umidade
Recebe os valores
referente a
temperatura
Os valores são aferidos nas proximidades do sensor,
dependendo de uma boalocalização para uma
perfeita mediação.
SIGLA – RF002
Figura 10 - Sensor de temperatura e umidade
74
1.3. Sensor de luminosidade
Tabela 5 - Comandos sensor de luminosidade
Item Comando Ação Restrições/Observações
01 Medição de
luminosidae
Recebe os valores
referente a
luminosidade
Os valores são aferidos nas proximidades do sensor,
dependendo de uma boalocalização para uma
perfeita mediação.
02
Valor medio de
mudança de
noturno para
diurno
Muda o estado de
um equipamento
caso esse passe
do valor
estipulado.
Os valores são definidos pelo usuário, cabendo a
esse saber ou mediar em qual momento deve
haver a mudanço de estado.
SIGLA – RF003
1.4. Sensor de som
Tabela 6 - Comandos sensor de som
Item Comando Ação Restrições/Observações
01
Medição de
intensidade
sonora
Recebe os valores
referente ao som
Os valores são definidos pelo usuário, cabendo esse
saber ou mediar em qual momento deve haver a
mudanço de estado.
02
Valor medio de
mudança de
intensidade
sonora
Muda o estado de
um equipamento
caso esse passe
do valor
estipulado.
Os valores são definidos pelo usuário, cabendo a
esse saber ou mediar em qual momento deve
haver a mudanço de estado.
SIGLA – RF004
Figura 11 - Sensor de luminosidade
Figura 12 - Sensor de som
75
1.5. Sensor de presença
Tabela 7 - Comandos sensor de presença
Item Comando Ação Restrições/Observações
01 Reconhecimento
de presença
Emite um sinal de
ligado caso haja
presença no
ambiente
O reconhecimento se restringe ao foco de
reconhecimento do sensor, tendo em media uma
captação de 45 graus e um distancia de 3m
02 Sinal de
presença
Envia um sinal que
houve presença
para alteração
do estado de um
equipamento
Não tem como sabe quem ou o que emitiu a
movimentação, apenas tem como saber que
houve presença nas proximidade dos sensor.
SIGLA – RF005
1.6. Receptor de IR controle remoto
Tabela 8 - Comandos receptor de controle remoto
Item Comando Ação Restrições/Observações
01
Valor referente a
um botão do
controle remoto
Recebe um valor
numerico para
fazer uma ação
Os valores a serem recebidos para que tenham
uma ação dentro do programa, devem estar pré
programados.
02 Luz infra
vermelha
Recebe luz infra
vermelha para
converte-la em
valores numericos
A recepção depende da potencia do controlu
usado, e esse deve ser apntado para o receptor
ao ser usado.
SIGLA – RF006
Figura 13 - Sensor de presença
Figura 14 - Receptor de controle remoto
76
1.7. Controle remoto
Tabela 9 - Comandos controle remoto
Item Comando Ação Restrições/Observações
01 Emitir valor do
botão
Emite um valor em
sinal infra
vermelho do
botão apertado
Deve verificar a bateria d o controle e apontar para
o receptor ao usar o controle.
02 Controle padrão Deve configurar um
controle para uso
Outros controles não configurados, não funcionarão
com a central de comandos..
SIGLA – RF006
1.8. Bluetooth
Tabela 10 - Comandos transceiver bluetooth
Item Comando Ação Restrições/Observações
01 Comunicação de
dados bluetooth
Recebe e envia
valores por
bluetooth
É necessaria parear com o equipamento antes de
fazer a comunicação
02 Distancia de
comunicação
Deve se respeitar a
distancia de
comunicação .
O teste feito com o modulo usado, chegou a manter
a comunicação por cerca de 15m
SIGLA – RF007
Figura 15 - Controle remoto
Figura 16 - Transceiver bluetooth
77
1.9. Placa de rede
Tabela 11 - Comandos placa de rede
Item Comando Ação Restrições/Observações
01 Comunicação
com a rede
Abre um canal de
comunincação
com a rede
TDP/IP
A pilha TCP/IP é montada no modulo que tem
baixo poder de processamento.
02 Realizar ações
de alteração
É possivel montar
uma pequena
página HTLM
para esta função
Caso seja colocadors muitos comandos ou tenha
muitas requisições, o sistema trava por conta do
baixo poder de pocessamento desse modulo.
SIGLA – RF008
Figura 17 - Placa de rede
78
2. Componentes da Central de Ativação
Quadro 15 - Componentes da Central de Ativação
Item Comando Ação Restrições/Observações
01 Botão lic/des Liga e deslica a energia
220V
Para o funcioanmento esse deve estar
ligado a rede eletrica.
02 Botão muda
estado
Inverte a ordem de
funcionamento dos
dispositivos.
Esse chave serve para simular o
interruptor de uma casa, alterando os
estado manula ou automaco.
03 Tomadas Local onde plugar os
equipamentos
Os LEDs, mostram o estado normal de
acionamento do rele, caso a chave seja
invertida o canal fincionará invertido
SIGLA – RF001
79
2.1. Placa de reles
Tabela 12 - Comandos placa de reles
Item Comando Ação Restrições/Observações
01 Placa de reles
Recebe um valor da
central para lig/desl
equipamentos
A alimentação da placa é emitida pela
central de controle
02
Estado
normalmente
aberto
Emite a conrrete de
entrada 220V
independete de sinal de
controle
Caso a central tenha invertido esse
funcionamento o equipamento ficará sem
energia.
03
Estado
normanlmente
fechado
Emite a conrrete de
entrada 220V, caso
receba um sinal de
controle
Caso tenha um ainterrupção no
forneceimento de energia essa é o estado
normal do sistema
SIGLA – RF001
Figura 18 - Placa de reles
80
ANEXO II
1. Programação do Sistema
/* #######################################################################*/ Controle de Automação com ARDUINO SEVERINO - MODULO-01 Created by Webert Oliveira Inputs: Controle Remoto - OK Serial - OK Sensor de Som - OK Sensor de Toque - OK HTTP - OK Blutooth - OK 01-02-2010 Primeira versão 26-08-2011 07-09-2011 Ultima versão 04-11-2011 --------------------------------------------------------- Circuito: Canal 1-2-3-4-5 - Conectado ao LCD Canal-01 - Modulo relê 01 ligado no pino 8(Digital) Canal-02 - Modulo relê 02 ligado no pino 2(Digital) Canal-03 - Modulo relê 03 ligado no pino A0(Analogico) Canal-04 - Modulo relê 04 ligado no pino A1(Analogico) IR Receptor - Modulo conectar no pino 9(Digital) Som Sensor - Modulo sensor de som no pino A5(Analogico) Movimento Sensor - Modulo sensor de presença ligado no pino A4(Analogico) /*############################################################*/ #include <NewSoftSerial.h> NewSoftSerial entradaSerial(13, 12 ); #include "etherShield.h" // Inclui a biblioteca do ENC28J60 #include "DHT.h" // Inclui a biblioteca do sensor de temperatura e umidade #include <PCD8544.h> // Inclui a biblioteca para o LCD do Nokia 6120 #include <IRremote.h> // Inclui a Biblioteca para o Controle Remoto //#define senSom 900 // Define a intensidade do sensor de som //#define senToque 200 // Define a intensidade do sensor de toque #define DHTTYPE DHT22 // DHT22 (AM2302) define o tipo do sensor #define OCTAVE_OFFSET 0 // Sitema de nostas para alarme #define DHTPIN A5 // Define em qual pino está o sensor de umidade e temperatura #define presenSensor A4 #define LDR A3 #define alarme A2 #define receptorIR 9 #define luminosidade 80 --------------------------------------------------------- static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x24}; static uint8_t myip[4] = {192,168,1,15}; static char baseurl[]="http://192.168.1.15/"; static uint16_t mywwwport =80; // listen port for tcp/www (max range 1-254) #define BUFFER_SIZE 500 static uint8_t buf[BUFFER_SIZE+1]; #define STR_BUFFER_SIZE 22 static char strbuf[STR_BUFFER_SIZE+1]; EtherShield es=EtherShield(); uint16_t print_webpage(uint8_t *buf, byte on_off); int8_t analyse_cmd(char *str); static const byte glyph[] = { B00010000, B00110100, B00110000, B00110100, B00010000 }; static PCD8544 lcd; // Cria o LCD int modo[20][1] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};// Matriz que salva o estado de
cada canal
81
// Notas para Alarme /*########################################################*/ // Inicio da declaração das variaveis globais int quantluz = 0; int tempo = 1; // Conta o tempo para o sensor de presença int senMread = 0; // Verifica alterações no estado da porta Movimento //int senSread = 0; // Verifica alterações no estado da porta Som //int senTread = 0; // Verifica alterações no estado da porta Toque char recepSerial =0; // Recebe um valor de caracter da porta serial //unsigned short intenSom; // Recebe a intensidade do sensor som int canal1 = 8; int canal2 = 2; int canal3 = A0; int canal4 = A1; int blacklLight = 6; //int toqSensor1 = A2; //int toqSensor2 = A3; //int somSensor = A3; //OBS foi substituido pelo sensor de temperatura int BOT1,BOT2,BOT3,BOT4; char* botao[]={"CH1( )","CH2( )","CH3( )","CH4( )"}; int CANAL = 0; float op=0; /*##########################################################*/ // Prototipo de Funçoes do Programa void alteraEstado(int canal); void imprimeSerial(char valor); DHT dht(DHTPIN, DHTTYPE); // Chamada da função do sensor de temperatura IRrecv irrecv(receptorIR); // Chamada da função do receptor de IR decode_results results; // Chamada da Para receber os valor da IR /*###########################################################*/ // Setup com as definições do programa void setup() { // Função de rede do ENC28j60 es.ES_enc28j60Init(mymac); es.ES_enc28j60clkout(2); // change clkout from 6.25MHz to 12.5MHz delay(10); es.ES_enc28j60PhyWrite(PHLCON,0x880); delay(500); es.ES_enc28j60PhyWrite(PHLCON,0x990); delay(500); es.ES_enc28j60PhyWrite(PHLCON,0x880); delay(500); es.ES_enc28j60PhyWrite(PHLCON,0x990); delay(500); es.ES_enc28j60PhyWrite(PHLCON,0x476); delay(100); es.ES_init_ip_arp_udp_tcp(mymac,myip,80); // Inicia a comunicação serial coma velocidade de 9600 Serial.begin(9600); entradaSerial.begin(9600); Serial.println("Sensor de temperatura Ativo DHT22!"); // Cria os limites do LCD falando assim o seu tamanho lcd.begin(84, 48); // Posiciona o inicio da matriz do LCD lcd.createChar(0, glyph); // Inicia o recebimento por IR irrecv.enableIRIn(); // Inicia o sensor de temperatura dht.begin();
82
/*#########################################################*/ // Declaração dos pinos de saida pinMode(canal1, OUTPUT); pinMode(canal2, OUTPUT); pinMode(canal3, OUTPUT); pinMode(canal4, OUTPUT); pinMode(blacklLight, OUTPUT); digitalWrite(blacklLight,LOW); pinMode(alarme, OUTPUT); /*#########################################################*/ // Declaração dos pinos de entrada //pinMode(presenSensor, INPUT); //pinMode(somSensor, INPUT); /*##########################################################*/ // Inicio o programa onde ficar rolando em Loop void loop() { // Cria Comunicação com a rede pelo Shield EnC28J60 uint16_t plen, dat_p; int cmd; byte on_off = 1; plen = es.ES_enc28j60PacketReceive(BUFFER_SIZE, buf); /*plen will ne unequal to zero if there is a valid packet (without crc error) */ if(plen!=0){ // arp is broadcast if unknown but a host may also verify the mac address by sending it to
a unicast address. if(es.ES_eth_type_is_arp_and_my_ip(buf,plen)){ es.ES_make_arp_answer_from_request(buf); return; } // check if ip packets are for us: if(es.ES_eth_type_is_ip_and_my_ip(buf,plen)==0){ return; } if(buf[IP_PROTO_P]==IP_PROTO_ICMP_V &&
buf[ICMP_TYPE_P]==ICMP_TYPE_ECHOREQUEST_V){ es.ES_make_echo_reply_from_request(buf,plen); return; } // tcp port www start, compare only the lower byte if
(buf[IP_PROTO_P]==IP_PROTO_TCP_V&&buf[TCP_DST_PORT_H_P]==0&&buf[TCP_DST_PORT_L_P]==mywwwport){
if (buf[TCP_FLAGS_P] & TCP_FLAGS_SYN_V){ es.ES_make_tcp_synack_from_syn(buf); // make_tcp_synack_from_syn does already
send the syn,ack return; } if (buf[TCP_FLAGS_P] & TCP_FLAGS_ACK_V){ es.ES_init_len_info(buf); // init some data structures dat_p=es.ES_get_tcp_data_pointer(); if (dat_p==0){ // we can possibly have no data, just ack: if (buf[TCP_FLAGS_P] & TCP_FLAGS_FIN_V){ es.ES_make_tcp_ack_from_any(buf); } return; } if (strncmp("GET ",(char *)&(buf[dat_p]),4)!=0){ // head, post and other methods for possible status codes see:
83
// http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html plen=es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type:
text/html\r\n\r\n<h1>200 OK</h1>")); goto SENDTCP; } if (strncmp("/ ",(char *)&(buf[dat_p+4]),2)==0){ plen=print_webpage(buf, on_off); goto SENDTCP; } cmd=analyse_cmd((char *)&(buf[dat_p+5])); Serial.print("Valor CMD"); Serial.print(cmd); switch(cmd) { case 1: on_off=1; alteraEstado(canal1); // switch on LED break; case 2: on_off=1; alteraEstado(canal2); // switch off LED break; case 3: on_off=1; alteraEstado(canal3); // switch off LED break; case 4: on_off=1; alteraEstado(canal4); // switch off LED break; } plen=print_webpage(buf, on_off); plen=print_webpage(buf, on_off); SENDTCP: es.ES_make_tcp_ack_from_any(buf); // send ack for http get es.ES_make_tcp_ack_with_data(buf,plen); // send data } } }
/*###############################################################################*/ // Estado da Luminosidade quantluz=analogRead (LDR); if(quantluz > luminosidade) { digitalWrite(canal2,LOW); }else { digitalWrite(canal2,HIGH); } Serial.print("Quantidade Luz: "); Serial.print(quantluz); Serial.print(" \t");
/*###############################################################################*/ // Cria sensor de temperatura e umidade float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(t) || isnan(h)) { Serial.println("Failed to read from DHT"); } else
84
{ Serial.print("Temperatura: "); Serial.print(t); Serial.print(" *C\t"); Serial.print("Umidade: "); Serial.print(h); Serial.println(" %"); }
/*###############################################################################*/ // Cria sensor de movimento para alterar estado senMread = digitalRead(presenSensor); // Recebe valor do Receptor if(senMread == HIGH) // Caso o canal desligado { if(digitalRead(canal1)==LOW) { if(tempo!=0) { Serial.println("Movimento Detectado"); digitalWrite(canal1,HIGH); digitalWrite(blacklLight,HIGH); tempo = 150; } } }else { if(tempo!=1) { if(tempo!=2) { if(tempo!=0) { tempo=tempo--; } if(tempo==0) { Serial.println("Sensor de Motivimento Desligado"); } if(tempo==2) { Serial.println("Motivimento parado"); digitalWrite(canal1,LOW); // turn LED OFF digitalWrite(blacklLight,LOW); tempo=1; } } } }
/*###############################################################################*/ /* Cria sensor de toque para alterar estado static int counter = 0; senTread = analogRead(toqSensor1); if (senTread >= senToque) { alteraEstado(canal2); delay(100); } / Cria sonsor de toque para alterar estado senTread = analogRead(toqSensor2); if (senTread >= senToque)
85
{ alteraEstado(canal3); delay(100); }*/
/*###############################################################################*/ /* Cria sensor de som para alterar estado //if (senSread == HIGH) //{ intenSom = analogRead(somSensor); if (intenSom < senSom) { alteraEstado(canal4); Serial.println("Som Detectado"); Serial.println(intenSom); } //}*/
/*###############################################################################*/ // Recebe sinal serial do Modulo-02 Bluetooth e Rede para controle dos Canais if (entradaSerial.available()) { Serial.print((char)entradaSerial.read()); } if (entradaSerial.available()) { recepSerial =(char)entradaSerial.read(); switch (recepSerial) { case '1': Serial.println(); Serial.print(recepSerial); alteraEstado(canal1); break; } } // Função que recebe um valor de Controle pela serial recepSerial = Serial.read(); switch (recepSerial) { case '1': Serial.print(recepSerial); Serial.println(); alteraEstado(canal1); break; case '2': Serial.print(recepSerial); Serial.println(); alteraEstado(canal2); break; case '3': Serial.print(recepSerial); Serial.println(); alteraEstado(canal3); break; case '4': Serial.print(recepSerial); Serial.println(); alteraEstado(canal4); break; }
/*###############################################################################*/
86
// Função que recebe um valor do Controle de IR if (irrecv.decode(&results)) { switch(results.value) { case 16248847: CANAL=canal1; op=16248847; imprimeSerial(1); alteraEstado(CANAL); break; case 16191727: CANAL=canal2; op=16191727; alteraEstado(CANAL); break; case 16203967: CANAL=canal3; op=16203967; alteraEstado(CANAL); break; case 16208047: CANAL=canal4; op=16208047; alteraEstado(CANAL); break; case 16240687: op=16240687; alteraEstado(blacklLight); break; case 16232527: op=16232527; alteraEstado(alarme); break; case 16199887: if(tempo!=0) { tempo=0; }else { tempo=1; } op=16199887; break; default: op=0; break; } irrecv.resume(); // Receive the next value }
/*###############################################################################*/ // Codigo que envia os dados de escrita para o LCD lcd.setCursor(11,0); lcd.print("CLIMADUINO"); lcd.setCursor(20,1 ); lcd.print("( )"); lcd.setCursor(33,1 ); lcd.print(quantluz); lcd.setCursor(0,2 ); lcd.print("Tempera( )");
87
lcd.setCursor(48,2 ); lcd.print(t); lcd.setCursor(0,3 ); lcd.print("Umidade( )"); lcd.setCursor(48,3 ); lcd.print(h); // Escreve o botão 01 no LCD3310 lcd.setCursor(4,4 ); lcd.print(botao[0]); lcd.setCursor(28,4 ); lcd.write(modo[1][canal1]); // Escreve o botão 02 no LCD3310 lcd.setCursor(4,5 ); lcd.print(botao[1]); lcd.setCursor(28,5 ); lcd.write(modo[1][canal2]); // Escreve o botão 03 no LCD33108 lcd.setCursor(46,4 ); lcd.print(botao[2]); lcd.setCursor(70,4 ); lcd.write(modo[1][canal3]); // Escreve o botão 04 no LCD3310 lcd.setCursor(46,5 ); lcd.print(botao[3]); lcd.setCursor(70,5 ); lcd.write(modo[1][canal4]);
/*###############################################################################*/ } /*#######################################################################*/ // Declaração das funçoes /*#######################################################################*/ // Função que altera o estado do Canal entre ligado e desligado void alteraEstado(int canal) { // Recebe qual canal será alterado CANAL=canal; if(digitalRead(CANAL)==LOW) { digitalWrite(CANAL,HIGH); modo[1][CANAL]=0; }else { digitalWrite(CANAL,LOW); modo[1][CANAL]=1; } } /*#######################################################################*/ // Função que imprime na serial o valor e o Canal a ser alterado void imprimeSerial(int valor) { Serial.print(valor); Serial.println(); } /*#######################################################################*/ // Funções do ENC28J60 uint8_t find_key_val(char *str,char *key) { uint8_t found=0; uint8_t i=0; char *kp;
88
kp=key; while(*str && *str!=' ' && found==0){ if (*str == *kp){ kp++; if (*kp == '\0'){ str++; kp=key; if (*str == '='){ found=1; } } }else{ kp=key; } str++; } if (found==1){ // copy the value to a buffer and terminate it with '\0' while(*str && *str!=' ' && *str!='&' && i<STR_BUFFER_SIZE){ strbuf[i]=*str; i++; str++; } strbuf[i]='\0'; } return(found); } int8_t analyse_cmd(char *str) { int8_t r=-1; if (find_key_val(str,"cmd")){ if (*strbuf < 0x3a && *strbuf > 0x2f){ // is a ASCII number, return it r=(*strbuf-0x30); Serial.print("Valor de R: "); Serial.print(r); } } return r; } uint16_t print_webpage(uint8_t *buf, byte on_off) { int i=0; uint16_t plen; plen=es.ES_fill_tcp_data_p(buf,0,PSTR("HTTP/1.0 200 OK\r\nContent-Type:
text/html\r\n\r\n")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<center><p><h1>Controle de Canais
ClimaDuino</h1></p> ")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<hr><br><form METHOD=get action=\"")); plen=es.ES_fill_tcp_data(buf,plen,baseurl); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("\">")); //plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<img src=http://arduinolabs.in/wp-
content/uploads/2011/10/monitora_cerrado.jpg>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<h2> Canais Remotos </h2> ")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<table border='1'>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<tr>")); switch(on_off) { case 1:
89
plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td><input type=hidden name=cmd value=1> <input type=submit value=\"CANAL\"></td>"));
plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td><input type=hidden name=cmd value=2> <input type=submit value=\"CANAL\"></td>"));
plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 03 </td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 04 </td>")); break; case 2: plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td><h2><font color=\"#FF0033\">
OFF </font></h2> <input type=hidden name=cmd value=2> <input type=submit value=\"CANAL\"></td>"));
plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 02 </td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 03 </td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 04 </td>")); break; } /* if(on_off) { plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td><h2><font color=\"#00FF00\"> ON
</font></h2> <input type=hidden name=cmd value=3> <input type=submit value=\"CANAL\"></td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 02 </td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 03 </td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 04 </td>")); } else { plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td><h2><font color=\"#FF0033\"> OFF
</font></h2> <input type=hidden name=cmd value=2> <input type=submit value=\"CANAL\"></td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 02 </td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 03 </td>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("<td> Canal 04 </td>")); } */ plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</tr>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</table>")); // fecha formulário plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</form>")); plen=es.ES_fill_tcp_data_p(buf,plen,PSTR("</center><hr> <p> V1.0 <a
href=\"http://www.BlueFrog.com\">www.BlueFrog.com<a><br>")); return(plen); } /*######################################################################## // Alarme Controle de Automação com ARDUINo SEVERINO CRONOGRAMA by Webert Oliveira Controle Remoto - OK Serial - OK Sensor de Som - OK Sensor de Toque - OK HTTP - OK Blutooth - OK 27-08-2011 - Conclusão das funções do sensor de movimento Sensor ########################################################################*/
90
REFERENCIAS BIBLIOGRÁFICAS
Alexandre Mendonça, Ricardo Zelenovsky. Eletrônica Digital. Rio de Janeiro: MZ,
2004.
Coelho, Isaias. “Semana Nacional de Ciencia e Tecnologia.” 22 de 10 de 2011.
Arduinolabs. 22 de 10 de 2011 <http://arduinolabs.in/climaduino-na-semana-
nacional-de-ciencia-e-tecnologia/>.
Curran, Chris. invention Machine. 24 de 10 de 2011. 11 de 2011.
Fonseca, Anan Carla. Economia Criativa. São Paulo: Itaú Cultural, 2008.
Fonseca, Felipe. O que é metareciclagem - Livro branco. São Paulo: Creative
Commons, 2008.
Kranenburg, Rob Van. The internet of the things. Amsterdam: Creative Commons,
2008.
Lima, Charles Borges de. Técnicas de projetos eletrônicos com microtontroladores
AVR. Florianópolis: Clube dos Autores, 2010.
Mazimo Banzi. Arduino CookBook. italia: livre, 2011.
Morrow, Monique. “Da internet das coisas para a Web das coisas.” 25 de 01 de
2011. Cisco. 26 de 06 de 2011 <http://blogs.cisco.com/sp/from-internet-of-
things-to-web-of-things>.
Reas, Casey. “Wiring. An environment and eletronics.” Wiring (2006): 01 e 02.
Santos, Jonhnny Cezar Marçal dos. “Universidade Federal do rio Grande do Norte,
Centro de Tecnológia.” Sistema microcontrolado utilizando internet
embarcada para monitoramento remoto em tempo real de temperatura
disponibilização por conexão 2009.
Schulz, Nick. “Internet of The Things.” 12 de 2007. The American. 06 de 2010
<http://www.american.com/archive/2007/november-december-magazine-
contents/the-internet-of-things>.
91
Sobrinho, Alceu Medeiros da Silva. “Universidade Federal de Santa Catarina, Centro
Tecnológico.” Automação para medição de parâmetros da logistica de triagem
da associação de coletores de materiais reciclaveis de Florianópolis. 2011.
Taurion, Cezar. “Como a internet das coisas vai influenciar a gestão de TI.” 23 de 02
de 2012. Imaster. 06 de 2012 <http://imasters.com.br/artigo/23630/gerencia-
de-ti/como-a-internet-das-coisas-vai-influenciar-a-gestao-de-ti>.
Vasconcelos, Lia. “Tecnologia - É só abrir a torneira.” 2007. Ipea. 06 de 2011
<http://www.ipea.gov.br/desafios/index.php?option=com_content&view=article
&id=966:reportagens-materias&Itemid=39]>.
Weiszflog, Walter. Michaelis. São Paulo: Melhoramentos, 1998.