91
Taguatinga, DF 2012 FACULDADE PROJEÇÃO BACHARELADO EM SISTEMAS DE INFORMAÇÃO ALUNO WEBERT OLIVEIRA TEMA Automação Residencial em sistema embarcado com Arduino

Automação residencial em sistema embarcado com arduino

Embed Size (px)

Citation preview

Page 1: Automação residencial em sistema embarcado com arduino

Taguatinga, DF 2012

FACULDADE PROJEÇÃO

BACHARELADO EM SISTEMAS DE INFORMAÇÃO

ALUNO

WEBERT OLIVEIRA

TEMA

Automação Residencial em sistema embarcado

com Arduino

Page 2: 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

Page 3: Automação residencial em sistema embarcado com arduino

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

Page 4: Automação residencial em sistema embarcado com arduino

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.

Page 5: Automação residencial em sistema embarcado com arduino

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.

Page 6: Automação residencial em sistema embarcado com arduino

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.

Page 7: Automação residencial em sistema embarcado com arduino

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

Page 8: Automação residencial em sistema embarcado com arduino

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

Page 9: Automação residencial em sistema embarcado com arduino

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

Page 10: Automação residencial em sistema embarcado com arduino

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

Page 11: Automação residencial em sistema embarcado com arduino

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

Page 12: Automação residencial em sistema embarcado com arduino

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

Page 13: Automação residencial em sistema embarcado com arduino

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

Page 14: Automação residencial em sistema embarcado com arduino

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

Page 15: Automação residencial em sistema embarcado com arduino

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

Page 16: Automação residencial em sistema embarcado com arduino

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).

Page 17: Automação residencial em sistema embarcado com arduino

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).

Page 18: Automação residencial em sistema embarcado com arduino

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).

Page 19: Automação residencial em sistema embarcado com arduino

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.

Page 20: Automação residencial em sistema embarcado com arduino

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.

Page 21: Automação residencial em sistema embarcado com arduino

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.

Page 22: Automação residencial em sistema embarcado com arduino

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.

Page 23: Automação residencial em sistema embarcado com arduino

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

Page 24: Automação residencial em sistema embarcado com arduino

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).

Page 25: Automação residencial em sistema embarcado com arduino

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.

Page 26: Automação residencial em sistema embarcado com arduino

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.

Page 27: Automação residencial em sistema embarcado com arduino

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

Page 28: Automação residencial em sistema embarcado com arduino

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

Page 29: Automação residencial em sistema embarcado com arduino

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.

Page 30: Automação residencial em sistema embarcado com arduino

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.

Page 31: Automação residencial em sistema embarcado com arduino

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.

Page 32: Automação residencial em sistema embarcado com arduino

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

Page 33: Automação residencial em sistema embarcado com arduino

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

Page 34: Automação residencial em sistema embarcado com arduino

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

Page 35: Automação residencial em sistema embarcado com arduino

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.

Page 36: Automação residencial em sistema embarcado com arduino

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.

Page 37: Automação residencial em sistema embarcado com arduino

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.

Page 38: Automação residencial em sistema embarcado com arduino

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

Page 39: Automação residencial em sistema embarcado com arduino

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

Page 40: Automação residencial em sistema embarcado com arduino

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

Page 41: Automação residencial em sistema embarcado com 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.

Page 42: Automação residencial em sistema embarcado com arduino

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.

Page 43: Automação residencial em sistema embarcado com arduino

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”.

Page 44: Automação residencial em sistema embarcado com arduino

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

Page 45: Automação residencial em sistema embarcado com arduino

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

Page 46: Automação residencial em sistema embarcado com arduino

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.

Page 47: Automação residencial em sistema embarcado com arduino

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;

Page 48: Automação residencial em sistema embarcado com arduino

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.

Page 49: Automação residencial em sistema embarcado com arduino

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

Page 50: Automação residencial em sistema embarcado com arduino

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.

Page 51: Automação residencial em sistema embarcado com arduino

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.

Page 52: Automação residencial em sistema embarcado com arduino

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.

Page 53: Automação residencial em sistema embarcado com arduino

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.

Page 54: Automação residencial em sistema embarcado com arduino

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

Page 55: Automação residencial em sistema embarcado com arduino

55

6.8.2 Diagrama Visão Geral

Figura 4 - Diagrama visão geral

Page 56: Automação residencial em sistema embarcado com arduino

56

6.8.3 Diagrama de Componentes

Figura 5 - Diagrama de componentes

Page 57: Automação residencial em sistema embarcado com arduino

57

6.8.4 Diagrama de Funções

Figura 6 - Diagrama de funções

Page 58: Automação residencial em sistema embarcado com arduino

58

6.8.5 Diagramas de Execução

Figura 7 - Diagrama de execução

Page 59: Automação residencial em sistema embarcado com arduino

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

Page 60: Automação residencial em sistema embarcado com arduino

60

6.9.3 Controle de som

SIGLA – RF004

6.9.4 Controle de presença

SIGLA – RF005

Page 61: Automação residencial em sistema embarcado com arduino

61

6.9.5 Controle remoto

SIGLA – RF006

6.9.6 Controle via bluetooth

SIGLA – RF007

Page 62: Automação residencial em sistema embarcado com arduino

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.

Page 63: Automação residencial em sistema embarcado com arduino

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)

Page 64: Automação residencial em sistema embarcado com arduino

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.

Page 65: Automação residencial em sistema embarcado com arduino

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

Page 66: Automação residencial em sistema embarcado com arduino

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.

Page 67: Automação residencial em sistema embarcado com arduino

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.

Page 68: Automação residencial em sistema embarcado com arduino

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.

Page 69: Automação residencial em sistema embarcado com arduino

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

Page 70: Automação residencial em sistema embarcado com arduino

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.

Page 71: Automação residencial em sistema embarcado com arduino

71

ANEXO I

1. Componentes da Central de Controle

Figura 8 - Interface da Central de Controle

Page 72: Automação residencial em sistema embarcado com arduino

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

Page 73: Automação residencial em sistema embarcado com arduino

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

Page 74: Automação residencial em sistema embarcado com arduino

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

Page 75: Automação residencial em sistema embarcado com arduino

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

Page 76: Automação residencial em sistema embarcado com arduino

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

Page 77: Automação residencial em sistema embarcado com arduino

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

Page 78: Automação residencial em sistema embarcado com arduino

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

Page 79: Automação residencial em sistema embarcado com arduino

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

Page 80: Automação residencial em sistema embarcado com arduino

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

Page 81: Automação residencial em sistema embarcado com arduino

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

Page 82: Automação residencial em sistema embarcado com arduino

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:

Page 83: Automação residencial em sistema embarcado com arduino

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

Page 84: Automação residencial em sistema embarcado com arduino

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)

Page 85: Automação residencial em sistema embarcado com arduino

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

/*###############################################################################*/

Page 86: Automação residencial em sistema embarcado com arduino

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

Page 87: Automação residencial em sistema embarcado com arduino

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;

Page 88: Automação residencial em sistema embarcado com arduino

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:

Page 89: Automação residencial em sistema embarcado com arduino

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 ########################################################################*/

Page 90: Automação residencial em sistema embarcado com arduino

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>.

Page 91: Automação residencial em sistema embarcado com arduino

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.