Computing">
CT Coele 2014 2 09
CT Coele 2014 2 09
CT Coele 2014 2 09
GUILHERME SARTORI
LEANDRO ARIEL MOLINA
WILLIAN CEZAR GONÇALVES DE LIMA
CURITIBA
2015
GUILHERME SARTORI
LEANDRO ARIEL MOLINA
WILLIAN CEZAR GONÇALVES DE LIMA
CURITIBA
2015
Guilherme Sartori
Leandro Ariel Molina
Willian Cezar Gonçalves de Lima
Este Trabalho de Conclusão de Curso de Graduação foi julgado e aprovado como requisito parcial
para a obtenção do Título de Engenheiro Eletricista, do curso de Engenharia Industrial Elétrica –
Ênfase Eletrotécnica do Departamento Acadêmico de Eletrotécnica (DAELT) da Universidade
Tecnológica Federal do Paraná (UTFPR).
____________________________________
Prof. Emerson Rigoni, Dr.
Coordenador de Curso
Engenharia Elétrica
____________________________________
Profa. Annemarlen Gehrke Castagna, Mestre
Responsável pelos Trabalhos de Conclusão de Curso
de Engenharia Elétrica do DAELT
______________________________________ _____________________________________
Amauri Amorin Assef, Dr. Daniel Balieiro Silva, Me.
Universidade Tecnológica Federal do Paraná Universidade Tecnológica Federal do Paraná
Orientador
_____________________________________
Roberto Cesar Betini, Dr.
Universidade Tecnológica Federal do Paraná
_____________________________________
Amauri Amorin Assef, Dr.
Universidade Tecnológica Federal do Paraná
Orientador
Este trabalho realiza estudos sobre domótica com sistemas eletrônicos destinados à
aplicação residencial. Descreve também o método de desenvolvimento de um
sistema de automação residencial de baixo custo através de smartphones e Arduino,
visando o conforto, segurança e bem estar do usuário nas atividades do cotidiano,
considerando aspectos econômicos e simplicidade. Desenvolvido para web, o
programa garante compatibilidade com diversos sistemas operacionais e interface
simples e amigável.
This work conducts studies about domotic using electronics systems for residential
application. It also describes the development method of a low cost home automation
system, through smartphones and Arduino, ensuring comfort, safety and well-being
of the user in daily activities, considering economic aspects and simplicity. Designed
for web, the program assures compatibility on most operating systems and simple
and friendly interface.
AC Alternating Current
ADC Analogic Digital Converter
ANSI American National Standards Institute
AR Automação Residencial
ARPA Agência de Projetos de Pesquisas Avançadas
AURESIDE Associação Brasileira de Automação Residencial
AVAC Aquecimento, ventilação e ar condicionado
CA Corrente alternada
CD Compact Disc
CEBus Consumer Electronic Bus
CERN Centre European pour la Recherche Nucheaire
CI Circuito Integrado
CPU Central Única de Processamento
D2B Digital Domestic Bus
DARPA Agência de Projetos de Pesquisas Avançadas do Departamento de
Defesa dos Estados Unidos da América
DC Direct Current
DNS Domain Name Server
EEPROM Electrically Erasable Programmable Read-Only Memory
FTDI Future Technology Devices International
HBS Home Bus System
HTML HyperText Markup Language
HTTP Hypertext Transfer Protocol
I/O Input/Output
I2C/TWI Two Wire Interface
ICQ Mensageiro Instantâneo
ICSP In Circuit Serial Programming
IDE Integrated Development Environment
IP Internet Protocol
LAN Local Area Network
LCD Liquid Crystal Display
LED Light Emitter Diode
MAN Metropolitan Area Network
MCU Micro Controler Unit
MSN Mensageiro Instantâneo
PAN Personal Area Network
PC Personal Computer
PHP/FI Personal Home Page Tools/Forms Interprete
PWM Pulse Width Modulation
RAM Randon Access Memory
ROM Read Only Memory
RTC Relógio de Tempo Real
SGML Standard Generalized Markup Language
SPI Serial Peripheral Interface
SRAM Static Ramdon Access Memory
SRI Stanford Research Institute
SSI Server Side Includes
SSL Secure Sockets Layer
TCC Trabalho de Conclusão de Curso
TCP Transmission Control Protocol
TRIAC Triode for Alternating Current
UART Universal Asynchronous Receiver/Transmitter
UCLA Universidade da Califórnia – Los Angeles
UCSB Universidade da Califórnia – Santa Bárbara
ULA Unidade Lógica Aritmética
USB Universal Serial Bus
VAX Arquitetura de Computadores de 32 bits.
WAN Wide Area Network
WATTS Unidade de Potência no Sistema Internacional de Unidades
WI-FI Wireless Fidelity
SUMÁRIO
1 INTRODUÇÃO ....................................................................................................... 14
1.1 TEMA ........................................................................................................... 16
1.1.1 Delimitação do Tema ............................................................................. 16
1.2 PROBLEMA E PREMISSAS ........................................................................ 16
1.3 OBJETIVOS ................................................................................................. 18
1.3.1 Objetivo Geral ........................................................................................ 18
1.3.2 Objetivos Específicos ............................................................................ 18
1.4 JUSTIFICATIVA ........................................................................................... 20
1.5 PROCEDIMENTOS METODOLÓGICOS ........................................................ 21
1.6 ESTRUTURA DO TRABALHO......................................................................... 21
2 A AUTOMAÇÃO RESIDENCIAL ........................................................................... 23
2.1 DEFINIÇÃO DE AUTOMAÇÃO RESIDENCIAL ............................................... 23
2.2 BREVE HISTÓRICO DA AUTOMAÇÃO RESIDENCIAL ................................. 24
2.3 VANTAGENS DA AUTOMAÇÃO RESIDENCIAL ............................................ 26
2.4 ESTÁGIO ATUAL DO MERCADO ................................................................... 28
2.4.1 Soluções Comerciais Disponíveis no Mercado .......................................... 30
3 O ARDUINO E OS MICROCONTROLADORES ................................................... 32
3.1 O ARDUINO ..................................................................................................... 32
3.1.1 Breve História do Arduino .......................................................................... 32
3.1.2 O Arduino e seus Componentes ................................................................ 33
3.1.3 Métodos de Programação para Arduino .................................................... 39
3.1.3.1 Software para Arduino ......................................................................... 40
3.1.3.2 A linguagem do Arduino ...................................................................... 40
3.1.3.3 Estrutura do Arduino ............................................................................ 41
3.1.3.4 Símbolos especiais .............................................................................. 41
3.1.3.5 Comentários ........................................................................................ 41
3.1.3.6 Constantes .......................................................................................... 42
3.1.3.7 Variáveis .............................................................................................. 42
3.1.3.8 Estruturas de controle.......................................................................... 43
3.1.3.9 Aritmética e fórmulas ........................................................................... 44
3.1.3.10 Operadores de comparação .............................................................. 45
3.1.3.11 Funções de entrada e saída .............................................................. 46
3.1.3.12 Funções de tempo ............................................................................. 47
3.1.3.13 Funções matemáticas........................................................................ 47
3.1.3.14 Funções de números aleatórios ........................................................ 48
3.2 OS MICROCONTROLADORES ...................................................................... 48
4 REDES, LINGUAGENS DE PROGRAMAÇÃO E SERVIDORES WEB ................ 51
4.1 REDES ............................................................................................................. 51
4.1.1 Classificação das Redes ............................................................................ 52
4.2 LINGUAGENS DE PROGRAMAÇÃO .............................................................. 53
4.2.1 Compiladores ............................................................................................. 54
4.2.2 Linguagem C ............................................................................................. 54
4.2.3 Linguagem para a Web.............................................................................. 55
4.2.3.1 PHP ..................................................................................................... 56
4.3 SERVIDORES WEB ........................................................................................ 57
4.3.1 Servidor Apache ........................................................................................ 57
5 DESENVOLVIMENTO DO PROJETO ................................................................... 59
5.1 ARDUINO NO CONTROLE DA AUTOMAÇÃO RESIDENCIAL....................... 59
5.1.1 Custos dos Equipamentos Utilizados no Projeto ....................................... 59
5.1.2 Programação do Arduino ........................................................................... 60
5.1.3 Programação do Servidor em PHP ............................................................ 63
5.1.4 Instalação do Servidor Web APACHE ....................................................... 66
5.1.5 Comandos no Smartphone ........................................................................ 68
5.1.6 Implantação Física do Sistema .................................................................. 69
6 DISCUSSÃO .......................................................................................................... 71
7 CONCLUSÃO ........................................................................................................ 73
REFERÊNCIAS ......................................................................................................... 75
APÊNDICE A – CÓDIGO FONTE DA INTERFACE WEB EM PHP ......................... 79
APÊNDICE B – FLUXOGRAMA DO ALGORITMO ................................................. 84
APÊNDICE C – PLANTA DO SOBRADO AUTOMATIZADO .................................. 86
14
1 INTRODUÇÃO
1.1 TEMA
1.3 OBJETIVOS
1
“Wireless Fidelity” significa “sem fio” em português. Consiste em uma tecnologia de comunicação que não faz
uso de cabos e, geralmente, é transmitida através de frequências de radio ou infravermelho.
19
4 KB EEPROM CPU
(Não Volátil)
PORTAS DE ENTRADA/SAÍDA
1.4 JUSTIFICATIVA
2 A AUTOMAÇÃO RESIDENCIAL
2 3
inteligente, automação residencial, retrofitting , domótica , etc., mas tudo
pode ser resumido a uma só palavra: conforto. Se um sistema eletrônico
instalado em um ambiente não oferecer conforto ao usuário, em semanas
ele vai ser desligado e deixado de lado [...]. Os equipamentos devem
unificar os controles e processos tornando tudo mais simples. Mas é o
desejo do usuário que deve prevalecer e não a do PC. A casa automática
pode ajudar nas tarefas diárias que tomam muito tempo ou evitar
preocupações tais como esquecer as janelas abertas quando a previsão do
tempo avisou que ia chover (BOLZANI, 2004).
2
Em inglês, retrofitting é o ato de se introduzir uma modificação em algo previamente construído.
3
A palavra domótica originou-se do latim domus que significa casa. É a ciência moderna de engenharia das
instalações em sistemas prediais (BOLZANI, 2004).
25
No entanto, nunca houve uma ocasião tão positiva como a atual para a
adoção de novas tecnologias que realmente alterassem de maneira
significativa o modo como construímos e usamos as residências. O
panorama socioeconômico que leva a mulher e o homem a trabalharem o
dia todo, fora de casa, bem como a crise energética e a problemática
ambiental são fatores que propiciam a criação de soluções de automação
e controle de equipamentos residenciais (BOLZANI, 2010).
3 O ARDUINO E OS MICROCONTROLADORES
3.1 O ARDUINO
mais fácil para os estudantes de design trabalhar com tecnologia. Ele discutiu seu
problema com David Cuartielles, um pesquisador visitante da Universidade de
Malmo, na Suécia, que estava procurando uma solução semelhante, resultando na
concepção e projeto da plataforma Arduino. Os produtos existentes no mercado
eram caros e relativamente difíceis de usar. Banzi e Cuartielles decidiram
desenvolver um microcontrolador que poderia ser utilizado pelos seus estudantes de
arte e design em seus projetos. As principais exigências eram que fosse barato – o
preço almejado não poderia ser mais do que o que um estudante gastaria se saísse
para comer uma pizza – e que fosse uma plataforma que qualquer pessoa pudesse
utilizar. David Cuartielles desenhou a placa, e um aluno de Massimo, David Mellis,
programou o software para executar a placa. Massimo contratou um engenheiro
local, Gianluca Martino, que também trabalhou no Design Institute ajudando alunos
com seus projetos. Gianluca concordou em produzir uma tiragem inicial de duzentas
placas (EVANS; NOBLE; HOCHENBAUM, 2013).
A nova placa foi chamada de Arduino em referência a um bar local
frequentado por membros do corpo docente e alunos do instituto. As placas eram
vendidas em forma de kit para que os alunos fizessem seus próprios projetos. A
tiragem inicial foi rapidamente vendida, e mais unidades foram produzidas para
manter a demanda. Designers e artistas de outras áreas ouviram falar do Arduino e
quiserem usá-lo em seus projetos. Sua popularidade cresceu rapidamente quando o
grande público percebeu que o Arduino era um sistema de fácil utilização, de baixo
custo e que poderia ser usado em seus próprios projetos, bem como era uma
excelente introdução para programação de microcontroladores. O projeto original foi
melhorado e novas versões foram introduzidas. As vendas dos Arduino oficiais
alcançaram agora a marca de 300 mil unidades, e eles são vendidos em todo o
mundo por intermédio de uma série de distribuidores (EVANS; NOBLE;
HOCHENBAUM, 2013).
fornecida por USB ou por dois pinos separados: o pino 30 pode receber uma tensão
desregulada entre 6 V e 20 V, ou o pino 27 pode receber uma tensão regulada de
5,5 V. A placa seleciona a tensão que for mais alta. O tamanho reduzido da placa
faz com que seja ideal para projetos com espaço limitado (EVANS; NOBLE;
HOCHENBAUM, 2013).
Modulo Ethernet: o Arduino Ethernet Shield (Figura 8) permite que uma placa
Arduino se conecte à Internet. Segundo Evans et al. (2013), este shield oficial
Arduino Ethernet, é baseado no WIZnet W500 com sua pilha TCP/IP
completa. Possui um conector RJ45 integrado para uma conexão Ethernet e
um leitor de cartão micro SD integrado. O Arduino Ethernet não possui um
chip controlador USB para serial integrada, mas possui um conector de seis
pinos que pode ser conectado a um cabo FTDI ou uma porta serial USB para
fornecer um link de comunicação para que a placa possa ser programada. É
ideal para uso em monitoramento remoto de estações de registros de dados
com leitor de cartão micro SD integrados e uma conexão com uma rede
Ethernet com fio para alimentação.
3.1.3.5 Comentários
3.1.3.6 Constantes
3.1.3.7 Variáveis
Tabela 1 (Continuação) - Tipos de variáveis para desenvolvimento com Arduino (BANZI, 2012).
Duas vezes o tamanho de um int e armazena números de -2.147.483.648 a
long
2.146.483.647
unsigned long Versão não assinalada de long; vai de 0 a 4.294.967.295
Tipo de dado de tamanho considerável, capaz de armazenar valores de
ponto flutuante, ou seja: números com ponto decimal. Um float consumira 4
float bytes de seus preciosos recursos de RAM. As funções que podem utilizá-lo
também consomem muita memória, por isso utiliza-se floats apenas quando
estritamente necessário.
Número ponto flutuante de precisão dupla, com valor máximo de
double 308
1,7976931348623157 x 10 .
Conjunto de caracteres ASCII utilizados para armazenar informações textuais
(pode utilizar uma string quando quiser enviar uma mensagem por meio de
string uma porta serial, ou mostrá-la em um monitor LCD). Quanto ao
armazenamento, uma string utiliza um byte para cada caractere, mais um
caractere nulo para avisar ao Arduino que o fim da linha foi atingido.
Lista de variáveis que podem ser acessadas por meio de um índice. Um
array é utilizado para criar tabelas de valores que podem ser acessados com
facilidade. Por exemplo, caso queira armazenar níveis diferentes de brilho a
array
serem utilizados por um LED, pode criar seis variáveis, nomeadas light01,
light02 e assim por diante. A palavra “array” não chega a ser utilizada na
declaração de variável: os símbolos [] e {} são suficientes.
Tabela 6 – Funções capazes de medir o tempo transcorrido e também pausar o sketch (BANZI, 2012).
Função Descrição
Retorna o número de milissegundos (ms) transcorridos desde que
unisigned long millis()
o sketch teve início.
delay(ms) Pausa o programa pelo tempo especificado em milissegundos.
delayMicroseconds(us) Pausa o programa pelo tempo especificado em microssegundos.
3.2 OS MICROCONTROLADORES
4.1 REDES
4.2.1 Compiladores
4.2.2 Linguagem C
computadores. Mas como não existia nenhum padrão, havia algumas discrepâncias
que posteriormente foram solucionadas com a criação de um comitê pela ANSI
(American National Standards Institute) em 1983 onde foi definido um padrão para a
linguagem C (SCHILDT, 1997).
Segundo Schildt (1997), C é classificada como uma linguagem de médio
nível porque combina elementos de linguagens de alto nível com funcionalidades da
linguem Assembly, linguagem de mais baixo nível, com comunicação direta com o
hardware.
A linguagem C foi desenhada para que o programador possa programar
programas estruturados e modulares, tendo como resultado mais legibilidade e
documentação, além de ter a vantagem de serem bastante compactos e de
execução rápida. Ela é uma linguagem amiga do programador por ser
suficientemente estruturada para encorajar bons hábitos de programação.
Programas em C podem ser desenvolvidas em várias partes separadas por
diferentes usuários e depois unidas para formar um único programa, isto significa
que podem ser criadas bibliotecas de funções para serem distribuídas e usadas sem
que necessariamente seja conhecido o código fonte de cada uma delas (MIZRAHI,
2008).
4.2.3.1 PHP
Segundo Melo & Nascimento (2007), em 1994 Rasmus Lerdorf criou uma
série de utilitários para monitorar sua página Web pessoal a fim de obter
informações sobre quem a visitava. Com o passar do tempo, foram requeridas mais
funcionalidades, então Rasmus desenvolveu uma implementação usando a
linguagem C, dando origem ao que ficou conhecido como PHP/FI (Personal Home
Page Tools/Forms Interpreter).
O PHP é uma linguagem de criação de scripts do lado do servidor que foi
criada para ser usada especificamente na Web. Pode ser embutido um código PHP
dentro de uma página HTML que será executado cada vez que página for acessada.
O código PHP é interpretado pelo servidor Web, gerando o HTML que será
visualizado através do navegador de quem a acessa (WELLING & THOMSON,
2005).
PHP tem a vantagem de ser um produto de código fonte aberto, dando a
possibilidade de qualquer pessoa ter acesso ao seu código e também a liberdade de
alterá-lo e redistribuí-lo sem ônus financeiro. Além de que ele é muito poderoso e
eficiente, podendo atender até mesmo milhões de acessos ainda que hospedado
57
num servidor barato. Segundo o site oficial do PHP (2014), em janeiro de 2013 já
havia 244 milhões de páginas Web utilizando sua linguagem.
5 DESENVOLVIMENTO DO PROJETO
4
2
1
3
#include <Ethernet.h>
//Configurações do Ethernet Shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,100, 82 }; // ip que o Arduino assumirá
byte gateway[] = { 192,168,100, 1 }; // ip do roteador
byte subnet[] = { 255, 255, 255, 0 };
void setup() {
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(22,OUTPUT);
pinMode(23,OUTPUT);
pinMode(24,OUTPUT);
pinMode(25,OUTPUT);
pinMode(26,OUTPUT);
pinMode(27,OUTPUT);
pinMode(28,OUTPUT);
pinMode(29,OUTPUT);
void loop() {
EthernetClient client = server.available();
// SE receber um caracter...
if (client) {
// guarda o caracter na string 'msg'
msg[1]=msg[2]; msg[2]=msg[3]; msg[3]=msg[4]; msg[4]=msg[5];
msg[5]=msg[6];msg[6]=msg[7];msg[7]=msg[8];msg[8]=msg[9];msg[9]=msg[10];msg[
10]=msg[11];msg[11]=msg[12];msg[12]=msg[13];
msg[13]=msg[14];msg[14]=msg[15];msg[15]=msg[16];msg[16]=msg[17];msg[17]
63
=msg[18];
msg[18] = client.read();
if (msg[18]=='#') {
switch(msg[17]) {
case '1':
//Controle de Portas com Status
case '1':
// Caso 1#, aciona a porta 1
if (Luz[0]=='0') {
digitalWrite(22,HIGH);
Luz[0]='1';}
else {
digitalWrite(22,LOW);
Luz[0]='0';}
break;
Como ilustrado na Figura 14, para definir o estilo do botão (fonte, tamanho) e
inserir a nomenclatura de cada porta do Arduino é utilizado o comando “echo”
(Quadro 6).
Por fim, o botão refresh (Quadro 7), faz a releitura do status das portas
atualizando a página, para quando há mais de um acesso com outro smartphone.
Com a tela de boas vindas executada com sucesso, é possível seguir para o
passo seguinte onde é instalado o arquivo “Pagina.php”, com os códigos fonte da
página web para que possa ser executado pelo servidor web APACHE. O código
fonte desenvolvido neste trabalho é apresentado no Apêndice A.
68
6 DISCUSSÃO
7 CONCLUSÃO
REFERÊNCIAS
BERNERS-LEE, T. Weaving the Web: the original design and ultimate destiny of the
World Wide Web by its inventor. 1.ed. San Francisco, CA: Harper San Francisco,
1999.
BOLZANI, C. A. M. Desenvolvimento de um Simulador de Controle de
Dispositivos Residenciais Inteligentes: Uma Introdução aos Sistemas
Domóticos. 2004 115f. Dissertação (Mestrado) – Escola Politécnica da
Universidade de São. Paulo. Departamento de Engenharia de Sistemas Eletrônicos,
2004.
PHP, php.net. Disponível em: < http://php.net/usage.php>. Acesso em: ago. 2014.
SCHILDT, H. C, Completo e Total. 3 ed. São Paulo: Pearson Makron Books, 1997.
<html>
<head></head>
<body>
<?php
// Se conecta ao IP e Porta:
socket_connect($sock,"192.168.0.200", 26);
if(isset($_POST['bits'])) {
$msg = $_POST['bits'];
if(isset($_POST['ApagaTudo' ])){
$i = '0';
while ($i<=15){
// $msg[$i]='0';
$status[$i]='0';
$i++;
$msg = 'a#';
if(isset($_POST['AcendeTudo' ])){
$i = '0';
while ($i<=15){
//$msg[$i]='1';
$status[$i]='1';
$i++;
$msg = 'A#';
socket_write($sock,$msg,strlen($msg));
81
$status = socket_read($sock,18);
$temp = socket_read($sock,5);
if (($status[16]=='L')&&($status[17]=='#')) {
echo "<button style=\"width:400; background-color: $cor1 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"1\">1</button> --------- ";
echo "<button style=\"width:400; background-color: $cor2 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"2\">2</button></br></br>";
echo "<button style=\"width:400; background-color: $cor3 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"3\">3</button> --------- ";
echo "<button style=\"width:400; background-color: $cor4 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"4\">4</button></br></br>";
echo "<button style=\"width:400; background-color: $cor5 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"5\">5</button> --------- ";
echo "<button style=\"width:400; background-color: $cor6 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"6\">6</button></br></br>";
echo "<button style=\"width:400; background-color: $cor7 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"7\">7</button> --------- ";
echo "<button style=\"width:400; background-color: $cor8 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"8\">8</button></br></br>";
83
// echo "<button style=\"width:400; background-color: $cor9 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"9\">9</button> --------- ";
// echo "<button style=\"width:400; background-color: $cor10 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"10\">10</button></br></br>";
// echo "<button style=\"width:400; background-color: $cor11 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"11\">11</button> --------- ";
// echo "<button style=\"width:400; background-color: $cor12 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"12\">12</button></br></br>";
// echo "<button style=\"width:400; background-color: $cor13 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"13\">13</button> --------- ";
// echo "<button style=\"width:400; background-color: $cor14 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"14\">14</button></br></br>";
echo "<button style=\"width:400; background-color: $cor15 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"ApagaTudo\">ApagaTudo</button> --------- ";
echo "<button style=\"width:400; background-color: $cor16 ;font: bold 50px Arial\" type = \"Submit\"
Name = \"AcendeTudo\">AcendeTudo</button></br></br></br>";
// echo "</form>";
echo "$status";
echo "$msg";
socket_close($sock);
?>
</body>
</html>
84
INÍCIO
CARREGAR
MENU
CONECTAR AO
SERVIDOR
1
BOTÃO
BOTÃO ACENDE
ACENDE NÃO
TUDO
TUDO ACIONADO?
ACIONADO?
SIM
BOTÕES 1-8
NÃO
ACIONADOS?
DESATRACA OS 8
RELÉS
SIM
BOTÃO
BOTÃO APAGA
APAGA NÃO 2
DESATRACA O TUDO
TUDO ACIONADO?
ACIONADO?
RELÉ
SELECIONADO
SIM
ATRACA OS 8
RELÉS
ATUALIZA
ESTADOS
1
85
TESTE DE DIMMERS
DIMMER
DIMMER LÂMPADA
LÂMPADA NÃO
ACIONADO?
ACIONADO?
SIM DIMMER
DIMMER
VENTILADOR
VENTILADOR
ACIONADO?
ACIONADO?
ESTÁ
ESTÁ NO
NO MÁXIMO?
MÁXIMO? SIM BOTÃO
NÃO BOTÃO REFRESH
REFRESH
SIM ACIONADO?
ACIONADO?
AUMENTA
AUMENTA DIMINUI
DIMINUI O
O ESTÁ
ESTÁ NO
NO MÁXIMO?
MÁXIMO?
O
O BRILHO
BRILHO BRILHO
BRILHO
SIM
NÃO
AUMENTA
AUMENTA DIMINUI
DIMINUI
AA A
A
VELOCIDADE
VELOCIDADE VELOCIDADE
VELOCIDADE
ATUALIZA
ESTADOS SIM
1 NÃO
86