Escolar Documentos
Profissional Documentos
Cultura Documentos
BRASLIA / DF
2 SEMESTRE DE 2010
BRASLIA / DF
2 SEMESTRE 2010
____________________________
Prof. Abiezer Amarilia Fernandez
Coordenador do Curso
Banca Examinadora:
________________________
Prof. Jos Julim, Mestre em Engenharia Eltrica -Sistemas de controle.
Orientador
________________________
Prof. Antonio Barbosa, Especialista em Engenharia de Software.
UniCEUB
________________________
Prof. Luis Cludio, Mestre em Matemtica Pura.
UniCEUB
________________________
Prof. Clber da Silva Pinheiro, Doutor em Fsica.
UniCEUB
RESUMO
Trata-se de um sistema de automao de iluminao para qualquer tipo de ambiente, tendo
como meta reduzir o desperdcio de energia eltrica e facilitar o controle da iluminao de
locais distantes, que no precise de pessoas o tempo todo. Aps implementar um sistema
envolvendo um circuito inteligente conectado ao computador, o usurio pode controlar reas
ou individualmente cada ponto de energia eltrica em um ambiente determinado. O objetivo
propor uma maneira eficaz de controle da iluminao de ambientes, usando para isso uma
interface que gere a integrao e interao do gestor com todos os pontos de luminosidade do
ambiente. utilizado hardware disponvel no mercado e j comum a todas as residncias e
empresas (computador) conectado plataforma Arduno (que utiliza microcontrolador Atmel
Atmega328), circuitos controladores, ligado pela porta USB central de comutao (PC), que
por sua vez tem uma interface simplificada para execuo dos comandos feita em software
construdo na linguagem de programao PHP.
ABSTRACT
This is an automation system for lighting any type of environment, aiming to reduce the waste
of electricity and facilitate the control of light from distant places that does not need people all
the time. After implementing a system involving an intelligent circuit connected to the
computer, the user can control areas or each individual point of electrical energy in a given
environment. The aim is to propose an effective way to control lighting environments, using
an interface that manages the integration and interaction with all points of the ambient
brightness. Its used commercially available hardware and easily available in residences and
businesses (computer) connected to the Arduino platform (which uses Atmel Atmega328)
circuit controllers, connected to the USB port commuting center (PC) and software built on
the programming language "PHP".
SUMRIO
RESUMO ................................................................................................................................................ 4
ABSTRACT ............................................................................................................................................ 5
SUMRIO .............................................................................................................................................. 7
LISTA DE FIGURAS ........................................................................................................................... 10
LISTA DE QUADROS ......................................................................................................................... 12
LISTA DE SIGLAS .............................................................................................................................. 13
CAPTULO 1 INTRODUO .......................................................................................................... 15
1.1. APRESENTAO DO PROBLEMA ................................................................................... 15
1.2. MOTIVAO ........................................................................................................................ 16
1.3. OBJETIVOS DO TRABALHO .............................................................................................. 18
1.4. JUSTIFICATIVA E RELEVNCIA DO TEMA ................................................................... 19
1.5. ESCOPO DO TRABALHO .................................................................................................... 19
1.6. RESULTADOS ESPERADOS ............................................................................................... 21
1.7. ESTRUTURA DA MONOGRAFIA....................................................................................... 22
CAPTULO 2 REFERENCIAL TECNOLGICO ............................................................................ 23
2.1. - ARDUNO ............................................................................................................................... 23
2.2. - MOTIVOS PARA A ESCOLHA DO ARDUNO .................................................................. 24
2.3. - HARDWARE - O ARDUNO, SEUS COMPONENTES, INTERFACES E PINAGENS ...... 26
2.3.1. - O ARDUNO DUEMILANOVE ...................................................................................... 26
2.3.2. - O MICROCONTROLADOR ATMEL AVR ATMEGA328 ........................................... 28
2.3.3. - ENTRADAS E SADAS .................................................................................................. 29
2.3.4. - ALIMENTAO ............................................................................................................. 30
2.3.5. - RESET AUTOMTICO ................................................................................................... 31
2.3.6. - PROTEO DE SOBRECARGA DO USB .................................................................... 32
2.3.7. - FT232RL: COMUNICAO ENTRE A PLATAFORMA E O COMPUTADOR ......... 33
2.3.8. - ICSP .................................................................................................................................. 33
2.3.9. - BOOTLOADER ................................................................................................................. 34
2.3.10. - AMPLIFICADOR OPERACIONAL ............................................................................. 35
2.3.11. - CLOCK (OSCILADOR DE CRISTAL)......................................................................... 36
2.3.12. - TRANSISTOR (MOSFET)............................................................................................. 37
10
LISTA DE FIGURAS
FIGURA 1.1 TOPOLOGIA DO PROJETO ...................................................................................... 20
FIGURA 2.1 ARDUNO DUEMILANOVE ..................................................................................... 25
FIGURA 2.2 ARDUNO DUEMILANOVE: IDENTIFICAO DE COMPONENTES ............... 27
FIGURA 2.3 MAPEAMENTO DA PINAGEM DO ATMEGA328 ................................................. 29
FIGURA 2.4 EX. DE CIRCUITO INTEGRADO DO AMPLIFICADOR OPERACIONAL .......... 36
FIGURA 2.5 MOSFET ...................................................................................................................... 37
FIGURA 2.6 LDR E SEU SMBOLO ............................................................................................... 39
FIGURA 2.7 SENSOR DE PRESENA ........................................................................................... 40
FIGURA 2.8 CIRCUITO INTEGRADO ULN2003A ....................................................................... 42
FIGURA 2.9 AMBIENTE DE DESENVOLVIMENTO ARDUNO ............................................... 46
FIGURA 2.10 LEITURA/ENVIO DE DADOS UTILIZANDO PORTA SERIAL .......................... 47
FIGURA 2.11 CICLO DE DESENVOLVIMENTO PARA PLATAFORMA ARDUNO .............. 48
FIGURA 2.12 ESTRUTURA DO SKETCH ...................................................................................... 49
FIGURA 2.13 ELEMENTOS DE ESTRUTURA DA LINGUAGEM PROCESSING ..................... 50
FIGURA 2.14 ELEMENTOS DE FUNO DA LINGUAGEM PROCESSING ............................ 50
FIGURA 2.15 VARIVEIS DA LINGUAGEM PROCESSING ...................................................... 51
FIGURA 2.16 XAMPP ...................................................................................................................... 52
FIGURA 3.1 FLUXOGRAMA DO SISTEMA ................................................................................. 59
FIGURA 3.2 DESENHO DO PROJETO NA PROTOBOARD ........................................................ 60
FIGURA 3.3 TRECHO DE CDIGO DO ARDUNO ..................................................................... 63
FIGURA 3.4 TRECHO DO CDIGO NO ARDUNO ..................................................................... 64
FIGURA 3.5 PORTA VIRTUAL COM.......................................................................................... 66
FIGURA 3.6 AJUSTE DA PORTA COM NO CDIGO ............................................................... 67
FIGURA 3.7 AMBIENTE DE DESENVOLVIMENTO ARDUNO ............................................... 68
11
12
LISTA DE QUADROS
QUADRO 01 IDENTIFICAO DE COMPONENTES DO ARDUNO ....................................... 27
QUADRO 02 POSSIBILIDADES DE AES A SEREM EXECUTADAS PELO SISTEMA ...... 57
QUADRO 03 VALORES DE LUMINNCIA DO LDR E LUXMETRO ...................................... 62
QUADRO 04 CDIGOS DE CONTROLE ...................................................................................... 65
13
LISTA DE SIGLAS
AMP OP
AREF
ASP
AVR
BPS
C
C++
CAD
CI
COM
DC
DIP
DTR
E/S
EEPROM
FIFO
FTDI
GND
GNU
GPL
HTML
HTTP
I2C
ICSP
IDE
ISP
JFET
LDR
LGPL
LED
MISO
MOSFET
MOSI
NPN
OSI
PC
PHP
PIR
PIC
PNP
PPM
PWM
RAM
RISC
SCK
SCL
SDA
SMD
SMS
Amplificador Operacional
Analog Reference - Pino de referncia de tenso para entradas analgicas
Active Server Pages
Microcontrolador RISC de chip nico
Bits Por Segundo
Linguagem de programao estruturada;
Linguagem de programao orientada a objeto
Computer-aided design
Circuito Integrado
Porta de comunicao responsvel pela entrada e sada de dados
Direct Current
Dual In-Line Package
Data Terminal Ready
Entrada e Sada de dados
Electrically-Erasable Programmable Read-Only Memory
First In, First Out
Future Technology Devices International
Ground
GNU's Not Unix
General Public License
HyperText Markup Language
Hypertext Transfer Protocol
Inter-Intergrated Circuit
In-Circuit System Programming
Integrated Development Environment
In-System-Programming
Junction Field Effect Transistor
Light Dependent Resistor
Library General Public License
Light Emitting Diode
Master In Slave Out
Metal Oxide Semiconductor Field Effect Transistor
Master Out Slave In
Ligao lgica negativa
Open Systems Interconnection
Personal Computer
PHP: Hypertext Preprocessor
Passive InfraRed Sensor
Programmable Interface Controller
Ligao lgica positiva
Pulse Position Modulation
Pulse-Width Modulation
Random Access Memory
Reduced Instruction Set Computer
Serial Clock
Entrada analgica do Arduno.
Serial Data Line
Surface Mountaing Device
Short Message Service
14
SPI
SQL
SS
STK500
TCP
TTL
TWI
UART
USB
UNIDADES DE MEDIDA
A
KB
Hz
V
W
15
CAPTULO 1 INTRODUO
1.1. APRESENTAO DO PROBLEMA
16
Este trabalho utiliza sensor de iluminao e sensor de presena para identificar o grau
de iluminao do ambiente e a presena de pessoas no local. Dessa forma, torna-se possvel
programar as atividades do sistema de forma que as aes ocorram de forma automtica, sem
necessidade de interveno humana. Os sensores estaro presentes em todos os ambientes em
que o controle de iluminao desejvel.
17
Possibilita ainda uma flexibilidade muito grande com relao mltipla funo de
uma simples tomada, que pode ser para telefone e num momento seguinte funcionar como
ponto de rede, sem a necessidade de passar novos cabos. [07]
18
predileo por este tipo de ferramentas para a execuo deste projeto est diretamente
relacionada filosofia open source, que prega a disponibilizao de recursos (software ou
hardware) para a comunidade internacional a fim de que os mesmos possam estar em
contnua evoluo, independentemente de seu criador abandonar o projeto.
1.3. OBJETIVOS DO TRABALHO
Este projeto tem como objetivo desempenhar estudos de hardware e software para
desenvolver e implementar um controle automatizado de iluminao de ambientes atravs de
interface computadorizada.
Para realizar este projeto, necessrio fazer uso de um dispositivo fsico inteligente,
que, no caso, um ambiente de desenvolvimento integrado de codinome Arduno em
conjunto com sensores de presena, sensores de luminosidade, computador e ambiente grfico
computadorizado desenvolvido em linguagem de programao PHP (PHP: Hypertext
Preprocessor).
19
Microprocessadores,
Circuitos
Eletrnicos,
Arquitetura
de
O setor de automao comercial movimenta uma mdia de R$ 1,4 bilho por ano no
pas, incluindo mais de dois milhes de estabelecimentos que, juntos, empregam 25 milhes
de pessoas. [02]
20
21
Para este projeto construiu-se um circuito para integrao dos componentes eletrnicos
a fim de possibilitar a automao e, para a interface computadorizada, foi desenvolvida uma
interface web para controle/visualizao do sistema.
22
23
24
Apesar de existirem diversas plataformas microcontroladas disponveis no mercado como, por exemplo: Parallax Basic Stamp, Netmedias, Phidgets e MITs Handyboard - a
plataforma Arduno (ilustrada na Figura 2.1) despontou para ser escolhida como crebro deste
projeto devido a sua grande popularidade junto comunidade acadmica e a diversos outros
fatores, como os citados abaixo:
25
26
capaz de executar aproximadamente 300.000 linhas do cdigo fonte C por segundo. A placa
tem 14 pinos digitais de E/S e 6 pinos de entrada analgica. Possui um conector USB para se
comunicar com o computador central e uma interface de alimentao eltrica DC (corrente
contnua) para se conectar a uma fonte de energia externa de 6-20 V - uma bateria de 9 V, por
exemplo. Possui, tambm, um chip da FTDI (Future Technology Devices International)
responsvel pela converso de sinais do protocolo RS-232 para a tecnologia USB, e seis pinos
ICSP (In-Circuit System Programming) para programao do microcontrolador com instrues
AVR. [04].
27
ID
SIGNIFICADO
01
Conector USB
02
Transistor
03
Regulador de tenso
04
05
Pinos de fora
06
Pinos analgicos
07
08
28
09
Boto de Reset
10
ICSP
11
Pinos digitais
12
13
14
29
Cada um dos 14 pinos digitais do Duemilanove pode ser usado como entrada ou sada
usando as funes pinMode(), digitalWrite(), e digitalRead(), da linguagem de programao
Processing. Eles operam com 5 V. Cada pino pode fornecer ou receber um mximo de 40 mA
e tem um resistor pull-up interno (desconectado por padro) de 20-50 k. Alm disso, alguns
pinos tm funes especializadas: [12]
Serial: 0 (RX) e 1 (TX). Usados para receber (RX) e transmitir (TX) dados seriais
TTL (Time To Live). Estes pinos so conectados aos pinos correspondentes do chip
serial FTDI USB-to-TTL;
PWM: 3, 5, 6, 9, 10, e 11. Fornecem uma sada analgica PWM (Pulse-Width
Modulation) de 8-bit com a funo analogWrite();
30
O Duemilanove tem 6 entradas analgicas, cada uma delas est ligada a um conversor
analgico-digital de 10 bits, ou seja, transformam a leitura analgica em um valor dentre 1024
possibilidades (exemplo: de 0 a 1023). Por padro, elas medem de 0 a 5 V, embora seja possvel
mudar o limite superior usando o pino AREF (Analog Reference)e um pouco de cdigo de baixo nvel.
Adicionalmente, alguns pinos tm funcionalidades especializadas: [12]
Referncia
de
tenso
para
entradas
analgicas.
Usados
com
analogReference().[12]
Reset: Envie o valor LOW para reiniciar o microcontrolador. Tipicamente
utilizados para adicionar um boto de reset aos Shields (placas que podem ser
plugadas ao Arduno para estender suas capacidades) que bloqueiam o que h na
placa. [12]
2.3.4. - ALIMENTAO
O Arduno Duemilanove pode ser alimentado pela conexo USB ou por qualquer fonte de alimentao externa. A fonte de alimentao selecionada automaticamente.
[12]
31
A alimentao externa (no-USB) pode ser tanto de uma fonte ou de uma bateria. A
fonte pode ser conectada com um plugue de 2,1 mm (centro positivo) no conector de
alimentao. Cabos vindos de uma bateria podem ser inseridos nos pinos GND (terra) e Vin
(entrada de tenso) do conector de alimentao. [12]
Vin: entrada de alimentao para a placa Arduno quando uma fonte externa for
utilizada. Voc pode fornecer alimentao por este pino ou, se usar o conector de
alimentao, acessar a alimentao por este pino; [12]
5 V: A fonte de alimentao utilizada para o microcontrolador e para outros
componentes da placa. Pode ser proveniente do pino Vin atravs de um regulador
on-board ou ser fornecida pelo USB ou outra fonte de 5 V; [12]
3V3: alimentao de 3,3 V fornecida pelo circuito integrado FTDI (controlador
USB). A corrente mxima de 50 mA; [12]
GND (ground): pino terra. [12]
32
rodando no computador conectado. Uma das linhas de controle de hardware (DTR - Data
Terminal Ready) do FT232RL est conectada ao reset do ATmega328 via um capacitor de
100F. Quando esta linha colocada em nvel lgico baixo, o sinal cai por tempo suficiente
para reiniciar o chip. O software Arduno usa esta caracterstica para permitir carregar o
programa simplesmente pressionando o boto upload no ambiente Arduno. Isto significa
que o bootloader pode ter um timeout mais curto, j que a ativao do DTR (sinal baixo) pode
ser bem coordenada com o incio do upload. [12]
33
Este chip permite comunicaes em srie com uma grande gama de velocidades: 1200,
2400, 4800, 9600, 19200, 38400,57600 e 115200 bps (Bits Por Segundo). Neste projeto, a
comunicao de dados se dar com velocidade de 9600 bps.
2.3.8. - ICSP
34
Arduno com o bootloader. O bootloader ajuda o Arduno a entender seus esboos (Sketches)
e execut-los, uma vez que tiverem sido carregados para o Arduno.
Concluindo, o ICSP pode ser utilizado para programar o Arduno ou para usar o
Arduno como um programador ISP (In-System Programming).
2.3.9. - BOOTLOADER
Para o Arduno, o ISP usado somente uma vez (no momento que fabricado) - para
carregar um pequeno bootloader. Na inicializao, o bootloader executado e comunica-se
35
com o UART serial (Pinos TX e RX). A partir desse momento, o Arduno pode ser
programado atravs dos pinos seriais usando o protocolo STK500. Como os pinos seriais so
conectados ao chip conversor USB para serial da FTDI, o Arduno pode ser programado
atravs da conexo USB. [19]
36
37
38
O LDR, ilustrado na Figura 2.6, um componente que tem uma resistncia que muda
de acordo com a variao de luminosidade incidente sobre ele. A relao entre resistncia e
39
Estes sensores tambm podem ser empregados para medir potncias luminosas desde
micro watts at mili watts, alm de possuir um custo bastante reduzido. Sendo assim, o LDR
o sensor mais empregado na rea de brinquedos eletrnicos e sistemas automticos de
iluminao urbana. [10]
40
Este projeto conta com 04 sensores da fabricante PPA, modelo Sensit Solid, com
infravermelho passivo e rel de estado slido (imune a campos magnticos) idnticos aos
exibidos na Figura 2.7.
Compensao de temperatura;
02 nveis de sensibilidade de deteco;
Lente de Fresnel translcida branca;
Protetor plstico do piroeltrico;
Fabricado com tecnologia SMD (Surface Mountaing Device); [20]
41
2.4.3 - ULN2003A
42
pino 9 a juno dos catodos dos 7 diodos de proteo, reversamente polarizados, caso ele
seja usado para chavear cargas indutivas, como bobinas de rels.
2.4.4. - REL
O tipo mais comum de rel eletromecnico no o que est sendo abordado neste
projeto. o rel de parede que utilizado em interruptores de energia para acender e apagar
lmpadas. A diferena com este tipo de rel de parede que ele necessita de interveno
43
humana para ser acionado, enquanto o rel presente neste projeto no necessita de interveno
humana para ser acionado.
44
dentro de um contexto visual, Processing igualmente evoluiu em uma ferramenta para gerar
trabalho profissional de qualidade em sua forma final. Atualmente, existem dezenas de
milhares de estudantes, artistas, desenhadores, pesquisadores e entusiastas que utilizam a
linguagem Processing para a aprendizagem, a prototipificao e a produo. [21]
45
Primeiramente deve-se baixar o ambiente para o Arduno que pode ser encontrado no
seguinte site: http://www.arduino.cc/en/Main/Software, em download clique em Windows e
baixe o arquivo arduino-0019.zip (ou mais novo). Ser necessrio um programa capaz de
descompactar o arquivo (exemplos: WinZip, WinRAR etc.). Certifique-se de preservar a
estrutura da pasta. D um duplo clique na pasta para abri-la, haver uns arquivos e sub-pastas,
clique no aplicativo arduno, este ser seu ambiente de desenvolvimento. [12]
Conecte a placa ao computador atravs do cabo USB, o LED verde na placa nomeado
por PWR deve ascender, ele indica que a placa est ligada. O arduno seleciona
automaticamente a fonte de alimentao adequada. [12]
46
47
Compilar;
Salvar;
Upload;
Novo;
Abrir;
2.5.4. - LEITURA DA INTERFACE SERIAL
48
49
50
51
2.6.1. - XAMPP
O XAMPP [13] (Figura 2.16), pacote integrado de servidores que incluem o Apache
[25] e o MySQL entre outros, um sistema altamente portvel, que pode ser executado sem a
necessidade de instalao, ou seja, pode ser utilizado at mesmo atravs de um dispositivo de
armazenamento portvel (Pendrive).
52
2.6.2. - PHP
53
Em sua verso mais recente - o PHP5 - foi introduzido um novo modelo de objetos e,
com isso, foram implementadas muitas funes e caractersticas firmando o PHP como
linguagem orientada a objetos, e o colocando a novos nveis de concorrncia com linguagens
mais robustas, como o Java [01].
2.6.3. - HTTP
54
2.6.4. - APACHE
2.6.5. - MYSQL
55
Com uma estrutura robusta, embora simplificada pela ausncia de funes nativas do
aplicativo SQL Server da Microsoft, o MySQL totalmente capaz de responder e atender
solues web de pequeno a grande porte, com a vantagem de utilizar menos recursos do
hardware, em comparao a servidores comercias. Mesmo com essas simplificaes, o banco
implementa a linguagem SQL (Structured Query Language) amplamente utilizada na
realizao de buscas em banco de dados. [18]
2.6.6. REFERNCIAS DAS FUNES PARA O SISTEMA WEB
2.6.6.1 PHP
56
CAPTULO 3 DESENVOLVIMENTO
3.1. APRESENTAO GERAL
57
Atravs da unio destas trs partes, possvel que o operador interaja com o sistema
de automao de forma eficiente. O projeto prev que o sistema seja capaz de executar as
funes de acordo com o exposto no Quadro 02.
QUADRO 02 POSSIBILIDADES DE AES A SEREM EXECUTADAS PELO SISTEMA
Modo de
Operao
Sensor de
presena
Ativado
Modo
Automtico
Desativado
Ativado
Modo Manual
Desativado
Modo Leitura
Ativado
Acionamento
da luminria
Luminria
especfica
Conjunto de
luminrias
Luminria
especfica
Conjunto de
luminrias
Luminria
especfica
Conjunto de
luminrias
Luminria
especfica
Conjunto de
luminrias
Luminria
especfica
Ao
Programar luminria(s) com
temporizador para ligar/desligar a(s)
lmpada(s) em X minutos.
Programar luminria(s) sem
temporizador para ligar/desligar a(s)
lmpada(s) em X minutos.
Acionar luminria(s) com
temporizador para ligar/desligar a(s)
lmpada(s) em X minutos.
Acionar luminria(s) sem
temporizador para ligar/desligar a(s)
lmpada(s) em X minutos.
Leitura de estado da lmpada e
presena no ambiente.
58
Desativado
Conjunto de
luminrias
Aqui apresentado o fluxograma do sistema, que pode ser visualizado na Figura 3.1.
Atravs do fluxograma, possvel observar a coerncia de sua estrutura com as informaes
contidas no Quadro 02. O referido quadro e o fluxograma so essenciais para o
desenvolvimento correto do cdigo de programao inserido no microcontrolador.
59
60
61
O circuito eltrico do projeto est desenhado de tal forma que a(s) lmpada(s) est(o)
conectada(s) ao(s) rel(s) atravs dos contatos COMUM e N/A (Normal Aberto). Desta
forma, quando houver necessidade de ligar uma lmpada, o circuito ser fechado e a mesma
ser ligada. De forma inversa acontecer quando for necessrio desligar uma lmpada o
circuito ser aberto.
Os Rels esto ligados a diodos retificadores que cumprem o papel de evitar que a
corrente volte em sentido contrrio.
A forma de ligao dos sensores nica a todos os sensores. Cada um dos sensores
est ligado de forma serial a um resistor nico (o qual tem sua outra extremidade ligada ao
plo negativo terra do Arduno) e a uma porta analgica especfica do Arduno. A outra
extremidade do sensor est ligada ao plo positivo da fonte de alimentao do Arduno.
62
O LDR, que um transdutor de entrada, tem como principal funo atuar no controle
da passagem de corrente eltrica para o Arduno, de forma que quando o ambiente est
escuro, a resistncia aumenta e passa pouca corrente para o Arduno. Por outro lado, quando o
ambiente recebe muita luz, a resistncia do LDR diminui e passa muita corrente para o
Arduno. O Arduno recebe a corrente eltrica (energia luminosa convertida em energia
eltrica) tratada pelo LDR e de acordo com a quantidade de corrente eltrica recebida executa
uma ao.
Atravs do uso de um aparelho para medio do nvel de luminosidade do ambiente
Luxmetro - foi possvel elaborar um quadro comparativo entre o nvel de luminosidade do
ambiente e o valor de leitura do LDR no momento. Esses dados so de extrema importncia
para referenciar o valor de resistncia do LDR utilizado no cdigo de programao para
determinar em qual momento a lmpada deve ser acesa ou apagada. As informaes
comparativas podem ser visualizadas no Quadro 03.
QUADRO 03 VALORES DE LUMINNCIA DO LDR E LUXMETRO
HORRIO
DESCRIO
12 h ~ 14 h
Luminosidade
alta
17 h ~ 18 h
19 h ~ 20 h
Luminosidade
moderada
Luminosidade
baixa
OBSERVAO
Sol a pino
(sem iluminao
artificial)
(sem iluminao
artificial)
Com iluminao
artificial
LUXMETRO (lx)
LDR (mA)
175 ~ 375
130 ~ 182
105 ~ 135
70 ~ 84
25 ~ 35
35 ~ 45
63
O sensor de presena atuar apenas como dispositivo de leitura, que ser utilizada pelo
Arduno para execuo de comandos.
Os sensores esto ligados nos pinos digitais do Arduno, de nmeros 10, 11, 12 e 13
do Arduno. Da mesma forma que os rels, os sensores de presena esto ligados fonte de
energia de 12 V do Arduno e ao pino terra.
64
Para que o projeto funcione de forma efetiva, necessrio utilizar cdigos de controle
a fim de informar ao hardware qual ao deve ser executada e em qual ambiente. Estes
cdigos encontram-se listados no Quadro 04.
65
CDIGO
DESCRIO
1
L luminosidade do ambiente
L luminosidade do ambiente e desliga ou liga dependendo
2
da luminosidade
3
Liga lmpada
4
Desliga lmpada
5
L luminosidade do ambiente
L luminosidade do ambiente e desliga ou liga dependendo
6
da luminosidade
7
Liga lmpada
8
Desliga lmpada
A
L luminosidade do ambiente
L luminosidade do ambiente e desliga ou liga dependendo
B
da luminosidade
C
Liga lmpada
D
Desliga lmpada
E
L luminosidade do ambiente
L luminosidade do ambiente e desliga ou liga dependendo
F
da luminosidade
G
Liga lmpada
H
Desliga lmpada
$
Liga/Desliga Modo Econmico
AMBIENTE
Ambiente
1
Ambiente
2
Ambiente
3
Ambiente
4
TODOS
66
Especificamente neste caso, a porta criada foi a COM5, mas o sistema operacional
poderia ter atribudo outro nmero para a porta COM, como por exemplo, COM6, COM7 e
assim sucessivamente. De posse da numerao da porta COM, deve-se ajustar o script
67
68
Upload;
69
software Fritzing que um excelente software para desenhar circuitos eletrnicos. Este
software tambm gera automaticamente uma viso esquemtica do circuito. Entretanto, os
resultados visuais no foram satisfatrios para efeito didtico e o esquema do circuito (Figura
3.9) foi redesenhado utilizando o Adobe Photoshop, uma vez que softwares renomados como
o Proteus, Eagle, Multisim, Smartdraw e outros ainda no possuem o Arduno duemilanove
em sua base de dados para aplicao.
70
71
72
Aps realizada a correta ligao do circuito, ser necessrio apenas inserir o cdigo
desenvolvido em linguagem Processing no Arduno e conect-lo a um PC para que o sistema
funcione de forma correta.
73
A interface de gerenciamento remota composta por uma aplicao web, que est
publicada em um servidor. Atravs da internet possvel acessar a interface de gerenciamento
do sistema de iluminao de forma remota. Acessando a interface possvel visualizar as
informaes da residncia.
74
75
Para armazenar as informaes sobre os ambientes que esto sendo controlados, como
por exemplo, nome do ambiente, status de leitura do LDR, status da lmpada etc, utilizado o
banco de dados MySQL, que de fcil entendimento e administrao de dados.
Na Figura 3.12 pode ser visualizado trecho do cdigo desenvolvido em SQL para
criao de uma tabela:
76
77
Na Figura 3.15 possvel observar o status da lmpada. Ou seja: se ela est apagada
ou acesa.
78
Foi muito difcil encontrar literatura oficial sobre a plataforma Arduno em todos os
seus aspectos: hardware, programao, projetos etc. Praticamente no existe literatura oficial
no idioma portugus do Brasil. A grande fonte de informao oficial disponibilizada no
idioma ingls e para documentar o projeto foi necessrio comprar livros em formato digital
(ebooks).
Outro ponto que foi determinante para aumentar as dificuldades encontradas a falta
de software de desenho de esquemas eletrnicos que suportam o hardware do Arduno
Duemilanove.
4.3. AVALIAO DO PROJETO
79
80
O projeto se mostrou eficaz no seu propsito, que foi permitir o gerenciamento remoto
do sistema de iluminao e permitir a reduo do consumo de energia relacionado ao gasto
com iluminao, uma vez que consta no projeto o inovador modo econmico, que prdefine que as lmpadas ficaro acesas somente quando houver movimento no ambiente.
81
medida que o projeto foi sendo desenvolvido, surgiram vrias idias para agregar ao
projeto e foram identificadas tecnologias para faz-lo com o mesmo objetivo, mas utilizando
alguns componentes diferentes.
Uma forma de executar este projeto de forma diferente seria utilizar um shield com
suporte tecnologia Ethernet para configurar um Webserver embarcado no arduno para
eliminar a necessidade de o sistema ficar ligado a um computador de forma contnua, ou
utilizar shields de comunicao sem fio para implementar a conexo entre os dispositivos de
iluminao e o Arduno, eliminando, obviamente, a necessidade de reformas fsicas na
estrutura do ambiente para receber as vrias malhas de fios necessrias para implementao
do projeto.
82
REFERNCIAS BIBLIOGRFICAS
[01] ACHOUR, Mehdi et al.PHP Manual. Disponvel em: <http://www.php.net/manual/en/
index.php>. Acesso em: 10 abr. 2010.
[02] AFRAC. Automao comercial: R$ 1,4 bi no Brasil. Disponvel em: <http://www.baguete.
com.br/noticias/hardware/01/04/2010/automacao-comercial-r-14-bi-no-brasil>. Acesso em: 16 nov.
2010.
[05]
ARDUINO.
Language
Reference.
Disponvel
em:
<http://arduino.cc/en/Reference/
[08] BOLZANI, Caio Augustus Morais. Residncias Inteligentes. 1. ed. So Paulo, Brasil: Editora
Livraria da Fsica, 2004.
[09] BRAGA, Newton C. Curso Bsico de Eletrnica. 5. ed. So Paulo, Brasil: Nova Saber, Julho,
2009. 208p
83
[12] FONSECA, rika Guimares Pereira da Fonseca. BEPPU, Mathyan Motta. Apostila Arduino,
Rio de Janeiro: Universidade Federal Fluminense, Outubro, 2010.
[13] HALL, Mark. Computer World: MySQL Breaks Into the Data Center. Disponvel em:
<http://www.computerworld.com/databasetopics/data/software/story/0,10801,85900,00.html>. Acesso
em: 11 set. 2010.
[14] MANCINI, Ron. Op Amps for Everyone: Design Reference/Advanced Analog Products
(SLOD006B). Estados Unidos da Amrica: Texas Instruments, August, 2002.
[15] MOTOROLA. Motorola MC33269 Datasheet.
[16] NETCRAFT August 2010 Web Server Survey. Disponvel em: <http://news.netcraft.com/
archives/2010/08/11/august-2010-web-server-survey-4.html>. Acesso em: 19 set. 2010.
[19] OXER, Jonathan. BLEMINGS, Hugh. Practical Arduino: Cool Projects for Open Source
Hardware (Technology in Action). Estados Unidos da Amrica: Apress, 2009.
[20] PPA. Manual do Sensor de Presena.
84
[21] REAS, Casey. FRY, Ben. Getting Started with Processing. Estados Unidos da Amrica:
OReilly Media, Junho, 2010. 208p.
[22] SANTOS, Nuno Pessanha. Apostila Introduo ao Arduno, Lisboa, Portugal: Escola Naval:
Departamento de Engenheiros Navais Ramo de Armas e Elctronica. Disponvel em:
<http://www.isegi.unl.pt/docentes/vlobo/escola_naval/MFC/Slides%20 Arduino.pdf>. Acesso em: 15
out. 2010.
[23] STOUT, David. Handbook of Operational Amplifier Circuit Design, Estados Unidos da
Amrica: Editora McGraw-Hill Inc., Junho, 1976
[24] TEXAS INSTRUMENTS. CI 2003A Datasheet. Disponvel em: <http://www.datasheetcatalog
.org/datasheet/texasinstruments/uln2003a.pdf>. Acesso em: 14 out. 2010.
85
86
87
break;
///////////////////////
case 49: // 1
//Efetuo somente a leitura do LDR 1
LeLDR1 = analogRead(lePin1); // Efetua a leitura da Porta do LDR e salva na variavel
PirMov = digitalRead(sensorPin1); // Verifico se existe movimento no amb 1
if (ModoEco)
{
if (PirMov==HIGH)
{
// Existe Alguem no Ambiente
}
}
Serial.println(LeLDR1); // Exibe o valor da variavel
break;
case 50: // 2
//Efetuo a Leitura do LDR e caso escuro liga rele e caso claro desliga rele
LeLDR1 = analogRead(lePin1); // Efetua a leitura da Porta do LDR e salva na variavel
Serial.println(LeLDR1); // Exibe o valor da variavel
if (LeLDR1 < LuxEscuro) // O valor 35 foi considerado um ambiente escuro
{
if (ModoEco)
{
PirMov = digitalRead(sensorPin1); // Verifico se existe movimento no amb 1
if (PirMov==HIGH)
{
// Existe Alguem no Ambiente
88
digitalWrite(ledPin, HIGH); // Liga o Led 13 para dizer que o ambiente est escuro, onde ser
enviado o sinal para ligar a luz se necessrio
digitalWrite(escrevePin1,HIGH); // Liga o Rele
}
}
}
else
{
digitalWrite(ledPin, LOW); // desliga o Led 13 para dizer que o ambiente est escuro, onde ser
enviado o sinal para desligar a luz se necessrio
digitalWrite(escrevePin1,LOW); // Desliga o Rele
}
delay(1000); // Pausa delay(milisegundos)
break;
case 51: // 3
// Somente LIGA o rele independente do LDR
ModoEco = digitalRead(sensorPin1); // Verifico se existe movimento no amb 1
if (ModoEco)
{
PirMov = digitalRead(sensorPin1); // Verifico se existe movimento no amb 1
if (PirMov==HIGH)
{
digitalWrite(escrevePin1,HIGH); // Liga o Rele
digitalWrite(ledPin, HIGH);
}
Serial.println('!');
}
break;
case 52: // 4
// Somente DESLIGA o rele independente do LDR
89
//////////////////
case 53: // 5
//Efetuo somente a leitura do LDR 2
LeLDR2 = analogRead(lePin2); // Efetua a leitura da Porta do LDR e salva na variavel
if (ModoEco)
{
if (PirMov==HIGH)
{
// Existe Alguem no Ambiente
}
}
Serial.println(LeLDR2); // Exibe o valor da variavel
break;
case 54: // 6
//Efetuo a Leitura do LDR 2 e caso escuro liga rele e caso claro desliga rele
LeLDR2 = analogRead(lePin2); // Efetua a leitura da Porta do LDR e salva na variavel
Serial.println(LeLDR2); // Exibe o valor da variavel
if (LeLDR2 < LuxEscuro) // O valor 35 foi considerado um ambiente escuro
{
if (ModoEco)
{
PirMov = digitalRead(sensorPin2); // Verifico se existe movimento no amb 1
if (PirMov==HIGH)
90
{
// Existe Alguem no Ambiente
digitalWrite(ledPin, HIGH); // Liga o Led 13 para dizer que o ambiente est escuro, onde ser
enviado o sinal para ligar a luz se necessrio
digitalWrite(escrevePin2,HIGH); // Liga o Rele
}
}
}
else
{
digitalWrite(ledPin, LOW); // desliga o Led 13 para dizer que o ambiente est escuro, onde ser
enviado o sinal para desligar a luz se necessrio
digitalWrite(escrevePin2,LOW); // Desliga o Rele
}
delay(1000); // Pausa delay(milisegundos)
break;
case 55: // 7
// Somente LIGA o rele 2 independente do LDR
if (ModoEco)
{
if (PirMov==HIGH)
{
digitalWrite(escrevePin2,HIGH); // Liga o Rele 2
digitalWrite(ledPin, HIGH);
}
}
Serial.println('!');
break;
case 56: // 8
// Somente DESLIGA o rele 2 independente do LDR
91
case 65: // A
//Efetuo somente a leitura do LDR 2
LeLDR3 = analogRead(lePin3); // Efetua a leitura da Porta do LDR e salva na variavel
if (ModoEco)
{
if (PirMov==HIGH)
{
// Existe Alguem no Ambiente
}
}
Serial.println(LeLDR3); // Exibe o valor da variavel
break;
case 66: // B
//Efetuo a Leitura do LDR 2 e caso escuro liga rele e caso claro desliga rele
LeLDR3 = analogRead(lePin3); // Efetua a leitura da Porta do LDR e salva na variavel
Serial.println(LeLDR3); // Exibe o valor da variavel
if (LeLDR3 < LuxEscuro) // O valor 35 foi considerado um ambiente escuro
{
if (ModoEco)
{
PirMov = digitalRead(sensorPin3); // Verifico se existe movimento no amb 1
if (PirMov==HIGH)
{
92
93
digitalWrite(ledPin, LOW);
Serial.println('!'); // retorna o ack
break;
///////////////////
case 69: // E
//Efetuo somente a leitura do LDR 2
LeLDR4 = analogRead(lePin4); // Efetua a leitura da Porta do LDR e salva na variavel
if (ModoEco)
{
if (PirMov==HIGH)
{
// Existe Alguem no Ambiente
}
}
Serial.println(LeLDR4); // Exibe o valor da variavel
break;
case 70: // F
//Efetuo a Leitura do LDR 2 e caso escuro liga rele e caso claro desliga rele
LeLDR4 = analogRead(lePin4); // Efetua a leitura da Porta do LDR e salva na variavel
Serial.println(LeLDR3); // Exibe o valor da variavel
if (LeLDR4 < LuxEscuro) // O valor 35 foi considerado um ambiente escuro
{
if (ModoEco)
{
PirMov = digitalRead(sensorPin4); // Verifico se existe movimento no amb 1
if (PirMov==HIGH)
{
94
95
digitalWrite(ledPin, LOW);
Serial.println('!'); // retorna o ack
break;
default:
// Se nao acontecer nenhuma das opes acima cai no default
// default eh opcional
break;
}
}
}
96
$file_entrada = "st_controle.txt";
$file_saida = "ardu_out.txt";
$var_controle = "";
if (filesize ($file_entrada) != 0)
{
$status = fread ($fd, filesize ($file_entrada));
fclose ($fd);
$fp = fopen($file_entrada,"w"); // logo depois de ler zera o arquivo
fwrite($fp,"");
97
fclose($fp);
}
}
else
{
echo "\n\n !!! ARQUIVO NAO EXISTE !!! \n\n";
$var_controle = 'CLOSE';
$status = "";
}
switch ($status)
{
case '1' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'1\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz."!!! \n";
break;
case '2' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'2\n');
sleep(1);
// Efetua a leitura da porta
98
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz."!!! \n";
break;
case '3' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'3\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case '4' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'4\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
99
///////
case '5' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'5\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case '6' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'6\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
100
case '7' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'7\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case '8' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'8\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
///////
case 'A' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
101
fwrite($port,'A\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case 'B' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'B\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case 'C' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'C\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
102
///////
case 'E' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'E\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
103
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case 'F' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'F\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case 'G' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'G\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
case 'H' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
104
fwrite($port,'H\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! \n";
break;
///////
case '$' :
// Escrevo o cdigo do arquivo para efetuar a leitura da luminosidade
fwrite($port,'$\n');
sleep(1);
// Efetua a leitura da porta
$codLuz = fgets($port);
// Agora vou escrever no arquivo para o sistema
$fp = fopen($file_saida,"w"); // abre o arquivo de resposta
fwrite($fp,$codLuz);
fclose($fp);
echo "\n !!! ARDUINO OK - ".$codLuz." !!! $$$\n";
break;
///////
case '0' :
105
$var_controle = 'CLOSE';
//Fecho a porta
echo "\n\n FECHANDO A PORTA \n\n";
fclose($port);
break;
default :
break;
}
sleep(1);
}
echo "\n\n FIM DO SCRIPT \n\n";
?>
<?php
require_once ( 'core.php' );
106
while (1)
{
107
sleep(4);
if (file_exists($file_resposta))
{
$fd = fopen ($file_resposta, "r");
if (filesize ($file_resposta) != 0)
{
$status = fread ($fd, filesize ($file_resposta));
fclose ($fd);
$fp = fopen($file_resposta,"w"); // logo depois de ler zera o arquivo
fwrite($fp,"");
fclose($fp);
}
}
else
{
$status = 99;
}
108
return $status;
}
<script language="javascript">
function show_hide_div(pass)
{
if (show_div)
{
show_div = false;
txt_div = 'hidden';
}
109
else
{
show_div = true;
txt_div = 'visible';
}
</head>
<body>
<!-- skip link navigation -->
<ul id="skiplinks">
110
<?php
set_time_limit(60);
require_once ( 'core.php' );
switch ($_GET['func'])
{
case 'acao' :
$status = info_porta(chr($_GET['op']));
$_GET['func'] = '';
break;
case 'cadastra' :
$n_comodo = $_REQUEST["nome_comodo"];
$h_ligar = $_REQUEST["hora_ligar"];
111
$h_desligar = $_REQUEST["hora_desligar"];
if (($h_ligar == "") || ($h_desligar == ""))
{
$is_timer = 0;
}
else
{
$is_timer = 1;
}
if ($ultimo_id == '')
{
$primeiro_id = 49;
}
else
{
if ($ultimo_id == 53)
{
$primeiro_id = 65;
}
else
{
$primeiro_id = $ultimo_id + 4;
112
}
}
if(mysql_query($query,$mysql_con))
{
echo "<script>alert('Comodo cadastrado com sucesso!!!');</script>";
}
else{
echo "<script>alert('Erro no cadastramento do comodo!!!');</script>";
}
$_GET['func'] = '';
break;
case 'eco' : // Verifico o Status do Modo Economico
$status = info_porta('$');
if (trim($status) == '0')
{
$txt_eco = ""; // Modo Eco Desligado
}
else
{
$txt_eco = "class=\"active\""; // Modo Eco Ligado
}
$status = '';
$_GET['func'] = '';
break;
113
//print_r($arr_comodos_id);
$qtd_comodos = mysql_num_rows($resultado); // Para obter a quantidade de comodos cadastrados;
114
$arr_comodo_txt[$i] = "OFF";
$arr_comodo_op[$i] = $arr_comodos_id[$i] + 2; // Vai somar mais 2 para enviar a
opo de ligar. Ex.: ID[1] + 2 = 3
$arr_comodo_st[$i] = '0';
}
sleep(3);
}
?>
<div class="page_margins">
<div class="page">
<div id="header" role="banner">
<h1>Interface de Gerenciamento de Automação de
Iluminação.</h1>
<span>Projeto de Automação Residêncial</span>
</div>
<!-- begin: main navigation #nav -->
<div id="nav" role="navigation">
<div class="hlist">
<ul>
<li><strong>Página Principal</strong></li>
<li><a href="#"
onclick="show_hide_div('col3');">Cadastro</a></li>
<li><a href="#">Sobre</a></li>
<li <?php echo $txt_eco."> <a
href=\"".$PHP_SELF."?func=eco\">Modo Econômico</a>"; ?> </li>
</ul>
</div>
</div>
115
<td>".$arr_comodos[$i]."</td>
<td
bgcolor=".$arr_comodo_color[$i]."><a href=\"".$PHP_SELF."?func=acao&op=".$arr_comodo_op[$i]."\"
>".$arr_comodo_txt[$i]."</a></td>
</tr>
";
}
?>
</table>
</div>
</div>
<!-- end: #col1 -->
<!-- begin: #col2 second float column -->
<div id="col2" role="complementary">
<div id="col2_content" class="clearfix">
<h2>Sobre</h2>
116
117
</form>
</div>
<div id="ie_clearing"> </div>
<!-- End: IE Column Clearing -->
</div>
<!-- end: #col3 -->
</div>
<!-- end: #main -->
<!-- begin: #footer -->
<div id="footer" role="contentinfo">
Desenvolvido por <b>Gustavo Caetano de Almeida</b>.<br />
</div>
<!-- end: #footer -->
</div>
</div>
<!-- full skip link functionality in webkit browsers -->
<script src="./yaml/core/js/webkit-focusfix.js" type="text/javascript"></script>
</body>
</html>
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
118
-- --------------------------------------------------------
119
break
#define
CONSTANTES
120
HIGH
LOW
pinMode()
FUNES
digitalWrite()
analogRead()
121
DESCRIO
Suspende a execuo do programa pelo tempo (em milisegundos)
especificado como parmetro.
COMUNICAO
DESCRIO
SERIAL
Serial.begin(int
Ajusta o taxa de transferncia em bits por segundo (baud) para
transmisso de dados pelo padro serial. Para comunicao com um
velocidade)
computador use uma destas taxas: 300, 1200, 2400, 4800, 9600, 14400,
19200, 28800, 57600, 115200. Voc pode, entretanto, especificar
outras velocidades por exemplo para comunicao atravs dos pinos 0
e 1 com um componente que requer uma taxa especfica.
int
Obtm o nmero de bytes (caracteres) disponveis para leitura atravs
da porta serial.
Serial.available()
int Serial.read()
Serial.println(data)
122
fclose
fwrite
fgets
file_exists
filesize
L o tamanho do arquivo
sleep
Atrasa a execuo
SQL
ELEMENTOS DE
DESCRIO
FUNO
muda um parmetro de tempo de execuo
SET
CREATE
123