Vous êtes sur la page 1sur 110

UNIVERSIDADE DO SAGRADO CORAO

VINCIUS ROSSI BSCOAAUTOR(ES)

DESENVOLVIMENTO DE UM DISPOSITIVO DE CONTROLE


DE CONSUMO DE ENERGIA ELTRICA APLICADO EM
RESIDNCIAS DE BAIXA RENDA NA REGIO DE
BAURUTTULO DO TRABALHO

BAURU
20142015

VINCIUS ROSSI BSCOA

DESENVOLVIMENTO DE UM DISPOSITIVO DE CONTROLE


DE CONSUMO DE ENERGIA ELTRICA APLICADO EM
RESIDNCIAS DE BAIXA RENDA NA REGIO DE BAURU

Trabalho de concluso de curso apresentado


ao Centro de Cincias Exatas e Sociais
Aplicadas como parte dos requisitos para
obteno do ttulo de Bacharel em Engenharia

de Computao sob orientao do Prof. Me.


Eng. Alexander da Silva Maranho.

BAURU
2014

VINCIUS ROSSI BSCOA


DESENVOLVIMENTO DE UM DISPOSITIVO DE CONTROLE DE
CONSUMO DE ENERGIA ELTRICA APLICADO EM RESIDNCIAS
DE BAIXA RENDA NA REGIO DE BAURU
Trabalho de concluso de curso apresentado ao Centro de Cincias Exatas e
Sociais Aplicadas como parte dos requisitos para obteno do ttulo de Bacharel em
Engenharia de Computao sob orientao do Prof. Me. Eng. Alexander da Silva
Bscoa, Vincius Rossi.
B9169d
Desenvolvimento de um dispositivo de controle de consumo
de energia eltrica aplicado em residncias de baixa renda na
regio de Bauru / Vincius Rossi Bscoa. -- 2014.
86f. : il.
Orientador: Prof. Me. Alexander da Silva Maranho.
Trabalho de Concluso de Curso (Graduao em Engenharia
de Computao) Universidade do Sagrado Corao Bauru
SP.
1. Controle de consumo. 2. Demanda de energia. 3. Energia
eltrica. 4. Dispositivo de controle. I. Maranho, Alexander da Silva.
II. Ttulo.

Maranho

Banca examinadora:

_____________________________
Prof. Dr. Edilson Moura Pinto

Universidade do Sagrado Corao

______________________________
Prof. Esp. Eng. Flvio Tonello Tavares
Universidade do Sagrado Corao

______________________________
Prof. Me. Eng. Alexander da Silva Maranho
Universidade do Sagrado Corao

Bauru, 15 de dezembro de 2014.

Dedico este trabalho a meus pais, Acio


Antnio Bscoa e Sueli Madalena Rossi
Bscoa, pelo apoio dado para a
concretizao de mais esta etapa em
minha vida.

AGRADECIMENTOS

Agradeo primeiramente a Deus, por ter me agraciado com o dom da vida e


me abenoado em todas as etapas da minha vida.
Aos meus pais Acio Antnio Bscoa e Sueli Madalena Rossi Bscoa, que
sempre me deram apoio, confiana e motivao para a realizao dos meus sonhos.
Ao amigo, orientador e professor, Alexander da Silva Maranho, pela pacincia,
dedicao e orientao fundamentais para o desenvolvimento deste trabalho.
Aos demais professores do curso de Engenharia de Computao da
Universidade Sagrado Corao, que, de alguma forma, contriburam com o
esclarecimento de dvidas e me auxiliaram na coleta de dados e documentos.
Ao meu amigo Alexandre Trevisan Cruz por compartilhar seus conhecimentos
em programao.
Aos meus amigos do Grupo de Tecnologia da Universidade Sagrado Corao
- GTUSC, pelo apoio e auxlio na realizao deste trabalho.
Aline de Souza Santos Moreira pelo apoio e conselhos durante todo o
perodo de realizao deste trabalho.
minha amiga Thais Gouveia Pagamicce pelas crticas e ideias que
colaboraram de alguma forma, para a produo deste trabalho.
Universidade Sagrado Corao - USC pelo apoio financeiro, fundamental
para a realizao deste trabalho.

RESUMO
O avano tecnolgico tem proporcionado reduo no preo dos equipamentos
eletroeletrnicos e o consequente aumento de seu uso. Estes equipamentos, por
sua vez, dependem de uma fonte de energia para seu funcionamento e, por se tratar
de uma fonte de fcil transporte, transformao e utilizao. A energia eltrica a
escolhida para este tipo de dispositivo. Apesar do desenvolvimento cada vez maior
de tecnologias que promovem a reduo do consumo de energia eltrica nos
dispositivos eletrnicos, a crescente utilizao dos mesmos, aliada cultura do
desperdcio, vem causando aumento no consumo de energia eltrica no mundo.
medida que a demanda por energia aumenta, preciso aumentar sua gerao.
Porm, para uma maior gerao so necessrios investimentos e, em alguns casos
construes de novas usinas, sejam elas termeltricas, hidreltricas, nucleares ou
elicas. As consequncias disto vo desde impactos ambientais (alterao de curso
das guas, emisso de gs carbnico na atmosfera etc.) a socioeconmicos (com
desapropriao de terras e aumento no custo da energia, por exemplo). Visando
desacelerar o crescimento da demanda por energia eltrica, causado principalmente
pela cultura do desperdcio, prope-se o desenvolvimento de um dispositivo que
realizar a medio e o controle do consumo de energia eltrica em residncias,
principalmente as de baixa renda que podero ser beneficiadas pela tarifao
diferenciada deste setor. Os resultados obtidos mostraram que a utilizao de um
dispositivo que realiza o chaveamento das cargas capaz de reduzir o consumo de
energia eltrica em aproximadamente 28%, equivalente reduo de 11kWh no ms
(de 41kWh para 30kWh), este percentual de reduo, no entanto relativo e varia
de consumidor para consumidor.
Palavras-chave: Controle de consumo. Demanda de energia. Energia eltrica.
Dispositivo de controle.

ABSTRACT
Technological advancement has reduced the price of electronic
equipments and the consequent increase of the use of this devices. These
equipments, by turn, depend on a source of energy for its operation and, since
this is a source of easy transport, transform and use, the electric energy is
chosen for this type of device. Despite the increasing development of
technologies that promote reducing the power consumption in electronic
devices, the increasing use of them, associated with the culture of waste, is
causing the increase of electricity consumption in the world .As the demand
for energy increases, their generation must increase. However, for more
generation, investment is necessary and in some cases construction of new
plants, whether they be thermoelectric, hydroelectric, nuclear or wind farms.
The consequences of this range from environmental (change of course of
water, carbon dioxide emissions in the atmosphere and more) to
socioeconomic (with land acquisition and increase in the cost of energy for
example) impacts. Aiming to slow the growth of electricity demand, caused
mainly by the "culture of waste", is proposed the development of a device that
performs the measurement and control of energy consumption in households,
especially low-income that could be reached by differential pricing of this
sector . The results showed that the use of a device that performs switching of
the loads is able to reduce the consumption of electric energy in about 28%,
equivalent to the reduction of 11kWh month ( 41kWh to 30kWh ) however, this
percentage of reduction is relative and varies from consumer to consumer.
Keywords: Eletric energy. Consumption control. Energy demand. Control device.

LISTA DE FIGURAS
Figura 1 - Curva de carga tpica Residencial...........................................................16
Figura 2 - Consumo final de Combustveis no mundo em 1973 e 2011.....................18
Figura 3 - Consumo de energia eltrica no mundo por setor .....................................19
Figura 4 - Resultados CPFL Paulista (2006 - 2010)...................................................26
Figura 5 - Dispositivos de controle de consumo de energia eltrica. .........................29
Figura 6 - Instalao do sistema Smart Gate-C da Gestal.........................................32
Figura 7 - Organizao do controlador de consumo de energia eltrica ....................36
Figura 8 - Etapas de funcionamento...........................................................................37
Figura 9 - Arduino Mega 2560.....................................................................................38
Figura 10 - IDE Arduino...............................................................................................39
Figura 11 - Sensor de corrente ACS712.....................................................................41
Figura 12 - Mdulo Rel..............................................................................................42
Figura 13 - Arduino TFT Screen..................................................................................42
Figura 14 - Sensor de Tenso: Esquema eltrico.......................................................44
Figura 15 - Sensor de Corrente: Esquema eltrico....................................................45
Figura 16 - Botes: Esquema eltrico.........................................................................45
Figura 17 - Grfico - Comparativo de Consumo/Hora................................................52
Figura 18 - Grfico - consumo de energia dirio: Controlado x Sem controle ...........53
Figura 19 - Grfico - Consumo mensal: Controlado x Sem controle ..........................53

LISTA DE TABELAS
Tabela 1 - Consumo de energia eltrica no mundo entre 2006 e 2010 por regio ....17
Tabela 2 - Consumo final de combustveis no mundo em 1973 e 2011 (em %). .......17
Tabela 3 - 10 maiores pases consumidores de energia eltrica em 2010 (TWh). ....19
Tabela 4 - Consumo energtico por fonte entre 2006 e 2007 (10 tep) ......................21
Tabela 5 - Informaes gerais do Brasil (2012)..........................................................21
Tabela 6 - Consumo total por classe - Brasil (GWh)...................................................22
Tabela 7 - Consumo total por regio geogrfica (GWh).............................................23
Tabela 8 - Consumo de Energia Eltrica por regio e por classe - Regio sudeste . .23
Tabela 9 - Consumo de energia eltrica da regio sudeste por UF (GWh) ...............24
Tabela 10 - Consumo por classe no estado de So Paulo (GWh). ............................24
Tabela 11 - Resultados CPFL Paulista (2006-2010)...................................................25
Tabela 12 - Domiclios com energia eltrica em Bauru..............................................27
Tabela 13 - Descontos programa "Baixa Renda"........................................................29
Tabela 14 - Resultados de Parametrizao................................................................49
Tabela 15 - Consumo de energia com chaveamento.................................................50
Tabela 16 - Consumo do dispositivo...........................................................................51
Tabela 17 - Comparao de consumo dirio: Controlado x Sem controle .................52

LISTA DE ABREVIATURAS E SIGLAS

ANEEL: Agncia Nacional de Energia Eltrica


BEN: Balano Energtico Nacional
CE: Chip Enable
CI: Circuito integrado
EIA: Energy Information Administration
EPE: Empresa de Pesquisa Energtica
GB: Gigabytes
GND: Ground (Terra)
I/O: Input/Output (Entrada/Sada)
IDE: Ambiente de Desenvolvimento Integrado
IEA: International Energy Agency
Kb: Quilobyte
kV: Quilovolt
kWh: Quilowatt hora
LCD: Liquid Crysyal Display (Display de Cristal Lquido)
Part.: Participao
PCH: Pequena Central Hidreltrica
PIB: Produto Interno Bruto
ONS: Operador Nacional do Sistema Eltrico
RTC: Real Time Clock
SCLK: Serial Clock
TEP: Tonelada Equivalente de Petrleo
TFT: Thin-Film Transistor (Transistor de Pelcula Fina)
TWh: Terawatt hora
UF: Unidade da federao
UHE: Usina Hidreltrica
UTE: Usina Termeltrica
Wh: Watt hora

LISTA DE SMBOLOS
%: Variao Percentual
Vcc: Tenso em Corrente Contnua

SUMRIO
1

INTRODUO...............................................................................................12

1.1

OBJETIVO GERAL........................................................................................14

1.2

OBJETIVOS ESPECFICOS..........................................................................14

REVISO BIBLIOGRFICA.........................................................................15

2.1

A ENERGIA ELTRICA.................................................................................15

2.1.1

Panorama mundial.......................................................................................16

2.1.2

Panorama nacional......................................................................................20

2.1.3

Panorama estadual......................................................................................23

2.1.4

Panorama regional.......................................................................................25

2.2

REGIO DE BAURU.....................................................................................26

2.2.1

Gerao, distribuio e consumo..............................................................26

2.2.2

Tipos de Consumidores..............................................................................27

2.2.3

Categorias de Tarifao..............................................................................28

2.2.4

Baixa Renda..................................................................................................28

2.3

INOVAES TECNOLGICAS....................................................................29

2.3.1

Dispositivos Comerciais (CCK Automao).............................................29

2.3.2

Dispositivos comerciais (Schneider Electric)...........................................30

2.3.3

Dispositivos comerciais (GESTAL)............................................................31

2.4

TRABALHOS CORRELATOS........................................................................32
2.4.1

Medidor de demanda de energia eltrica residencial com acesso

remoto...........................................................................................................32
2.4.2

Controlador de demanda e fator de potncia de baixo custo para

unidades consumidoras de energia eltrica.............................................33


3

MATERIAIS E MTODOS.............................................................................35

3.1

FUNCIONAMENTO DO DISPOSITIVO.........................................................35

3.2

COMPONENTES DO SISTEMA....................................................................37

3.2.1

O Arduino......................................................................................................37

3.2.2

IDE Arduino...................................................................................................39

3.2.3

Sensor de Tenso........................................................................................40

3.2.4

Sensor de Corrente ACS712.......................................................................40

3.2.5

Mdulo Rel..................................................................................................41

3.2.6

Arduino TFT Screen.....................................................................................42

3.2.7

Mdulo RTC..................................................................................................43

TESTES E RESULTADOS............................................................................44

4.1

TESTE DO DISPOSITIVO (HARDWARE)....................................................44

4.2

TESTES DO SOFTWARE 2CONBR...........................................................46

4.3

DIFICULDADES ENCONTRADAS................................................................47

4.4

RESULTADOS OBTIDOS..............................................................................48

CONCLUSO................................................................................................54

5.1

PROPOSTAS PARA TRABALHOS FUTUROS.............................................54

REFERNCIAS...........................................................................................................55
APNDICE A ESQUEMA ELTRICO DO DISPOSITIVO......................................58
APNDICE B CDIGO FONTE..............................................................................59
APNDICE C DIAGRAMA DE ATIVIDADES..........................................................86

INTRODUO

O consumo de energia eltrica foi um fator de status para a populao.


Quanto maior o consumo de energia, maior era o poder aquisitivo das famlias.
Com a gerao crescente de energia eltrica e, consequentemente o aumento de
sua oferta, este tipo de energia foi barateado.
Com a reduo do custo de energia eltrica, aliado ao desenvolvimento da
tecnologia e aquecimento da economia, o consumo deste insumo tambm
aumentou, no s em indstrias como tambm nas residncias, nos servios
pblicos, no comrcio etc.
O consumo de energia eltrica, por ser diretamente proporcional ao
aquecimento da economia e ao aumento da populao (LUCON e GOLDEMBERG,
2009), ainda um dos fatores utilizados para medir o ndice de Desenvolvimento
Humano (IDH) de um pas ou regio. Como a economia e a populao mundial tm
aumentado constantemente, o consumo de energia eltrica tambm tem
apresentado crescimento ao longo dos anos.
Entretanto, para suprir a demanda crescente por energia eltrica torna-se
necessrio que a oferta aumente. Em se tratando de energia eltrica, para aumentar
a oferta necessrio aumentar a gerao. Porm, os impactos causados so
grandes, tanto ambientais quanto econmicos, uma vez que, seja qual for a forma
de gerao (Hidreltrica ou termeltrica), investimentos em equipamentos so
necessrios.
Tem-se observado o aumento no consumo de energia no mundo, para todas
as classes consumidoras, residencial, comercial e industrial. Ainda que tenha
ocorrido reduo do consumo entre os anos de 2008 e 2009 - causadas por alguma
instabilidade econmica ou polticas de reduo de consumo em alguns pases - o
quadro geral tem se mostrado ascendente, conforme dados da Energy Information
Administration (EIA, 2013).
Acompanhando o cenrio mundial do aumento de consumo de energia
eltrica, o Brasil tambm apresentou crescimento no consumo desta fonte de
energia, como a maior parte da energia gerada no Brasil proveniente de
hidreltricas, fatores climticos tambm influenciam na gerao e,
consequentemente, no consumo de energia eltrica. Em longos perodos sem
chuva, por exemplo, comum o acionamento das termeltricas para suprir a

10

demanda excedente ou, em casos extremos, cortes no fornecimento como foi o caso
do ocorrido em 2001 (SCHMIDT e LIMA, 2004).
Os prejuzos da falta de chuva e do consequente acionamento das
termeltricas vo desde ambientais - lanamento de poluentes na atmosfera,
gerados pela queima de combustveis - econmicos, uma vez que a produo de
energia eltrica por meios trmicos tem custo elevado e, para arcar com esta
despesa, o consumidor o maior prejudicado. (ROSA, 2007)
O Brasil possui um sistema integrado de energia eltrica, sendo assim, o
aumento do consumo nacional refletido em todos os estados e muncipios.
Consequentemente, os custos extras gerados pelas medidas de segurana que so
tomadas para evitar o corte total de energia eltrica atinge todo o pas, como
consequncia disto o preo do quilowatt hora aumenta para toda a populao.
(ANEEL, 2008a).
Como a populao de baixa renda a mais afetada por essas alteraes no
custo do quilowatt hora, foram criados os programas de tarifao diferenciada para
esta parcela da populao, entretanto para se encaixar neste programa, algumas
regras devem ser seguidas e uma delas se da pelo consumo mdio mensal de
energia eltrica que varia de 0 a 220 kWh/ms (BASIL, 2010), obtido pela mdia
mvel dos ltimos 12 meses.
Este projeto prope a reduo do consumo residencial individual de energia
eltrica utilizando um prottipo de controlador de demanda de energia eltrica que
faz a aferio da demanda atual, estima o consumo mensal final baseado em dados
anteriores e compara com a demanda mxima definida pelo consumidor com um
valor mximo de 220 kWh/ms - dependendo da categoria de tarifao a que se
enquadra a unidade consumidora. O algoritmo desenvolvido baseia-se nas
prioridades das cargas, efetuando o desligamento das mesmas de tal forma que as
de menor prioridade so as primeiras a serem desligadas, enquanto que as de
prioridade crtica no sero desligadas.

1.1

OBJETIVO GERAL

11

O objetivo deste trabalho consiste no desenvolvimento de um dispositivo


interativo que realize o controle do consumo de energia eltrica atuando na reduo
da demanda local por energia eltrica, contribuindo, se aplicado em larga escala,
para a reduo global do consumo de energia.
1.2

OBJETIVOS ESPECFICOS

1. Levantar e quantificar dados referentes ao consumo de energia


eltrica no mundo;
2. Levantar e quantificar dados referentes ao consumo de energia
eltrica no Brasil;
3. Levantar e quantificar dados referentes ao consumo de energia
eltrica no estado de So Paulo;
4. Estimar o consumo de energia eltrica residencial na cidade de
Bauru;
5. Apresentar as categorias de tarifao para cobrana de energia
eltrica no Brasil;
6. Descrever o funcionamento de alguns dispositivos disponveis no
mercado;
7. Projetar e testar um dispositivo eletrnico capaz de realizar o
controle do consumo de energia eltrica em residncias;
8. Analisar e avaliar os resultados obtidos com os testes do
dispositivo;
9. Quantificar e comparar o consumo de energia eltrica antes e aps
a implantao do dispositivo.

12

REVISO BIBLIOGRFICA
2.1

A ENERGIA ELTRICA
Para Creder (2012, p.14),

Energia tudo aquilo capaz de produzir calor, trabalho mecnico, luz,


radiao etc.[...] Poderia ser definida como essncia bsica de todas as
coisas, responsvel por todos os processos de transformao, propagao
e interao que ocorrem no universo.

Assim, energia eltrica um tipo especial de energia [...] usada para


transmitir e transformar a energia da fonte geradora em outras formas de energia
que usamos em nossas residncias (CREDER, 2012, p.14). Em suma, eletricidade
uma energia intermediria entre a fonte produtora e a aplicao final. uma das
formas mais convenientes de energia devido sua facilidade de transporte e
transformao, alm de ser silenciosa e no poluidora.
Ainda segundo Creder (2012) em 2005 um projeto federal orientava as
concessionrias de energia eltrica e seus usurios para que o consumo fosse o
mnimo possvel. Essas medidas evitariam o desperdcio no consumo individual dos
usurios (diminuio das despesas) e minimizariam os investimentos das
concessionrias na gerao, transmisso e distribuio.
Para a classe residencial o maior consumo de energia eltrica dado por
refrigerao, iluminao e aquecimento de gua, Figura 1. O pico do consumo de
aquecimento de gua em torno das 19h, onde o uso do chuveiro eltrico, maior
responsvel pelo pico do consumo residencial, mximo. Logo, uma das medidas
que reduziria o consumo referente ao aquecimento de gua seria a utilizao por
menor tempo.
Quanto iluminao, alm da utilizao de lmpadas mais econmicas, outra
possibilidade est em dividir os circuitos de modo que as lmpadas junto s janelas
possam ser ligadas ou desligadas por meio de circuitos com elementos sensveis
luz (fotossensveis).
Segundo Eskeland e Mideska (2010), a demanda residencial est diretamente
ligada ao conforto trmico e tecnolgico da populao, uma vez que os

13

equipamentos que promovem este conforto utilizam eletricidade como fonte de


energia e, portanto as alteraes climticas tambm influenciam demanda.
Figura 1 - Curva de carga tpica Residencial

Fonte: Creder (2012, p.28)

De acordo com Berndt (1991) o consumo de energia eltrica dos


equipamentos que possuem longo tempo de durao - mquinas de uma indstria,
por exemplo - tm seu consumo definido na fabricao, permanecendo fixo durante
toda a vida til do equipamento, sendo assim, a demanda s ser alterada se a
utilizao do equipamento tambm for ou se o equipamento for substitudo. Com
isso a demanda industrial pode ser vista como uma minimizao dos recursos para
tentar manter a produo constante.
Portanto o consumo de energia eltrica derivado da necessidade de se
fazer um determinado aparelho eltrico ou uma determinada mquina funcionar
(SCHMIDT; LIMA, 2004, p.71).
2.1.1 Panorama mundial
De acordo com os dados da U.S Energy Information Administration (EIA),
relacionados conforme a Tabela 1 e publicados no Anurio Estatstico de Energia
Eltrica 2013 da Empresa de Pesquisa Energtica (EPE), vinculada ao Ministrio de
Minas e Energia pode-se notar que o consumo de energia eltrica mundial vem
aumentando ao longo dos anos.
Nota-se que houve um aumento gradativo no consumo de energia eltrica ao
longo dos anos, principalmente quando analisados os dados referentes s Amricas
do Sul e Central. A edio de 2013 do Key World Statistics da International Energy

14

Agency (IEA) compara o ano de 1973 com o ano de 2011, Tabela 2 e Figura 2, e
revela um grande aumento no consumo total de energia. O consumo praticamente
dobrou nesses 28 anos, saltando de 4.674 milhes de toneladas equivalentes de
petrleo (tep) em 1973 para 8.918 milhes de tep em 2011. Desse total o consumo
de eletricidade tambm praticamente dobrou passando de 9,4% em 1973 para
17,7% em 2011.
Tabela 1 - Consumo de energia eltrica no mundo entre 2006 e 2010 por regio
(TWh).
2006

2007

2008

2009

2010

Part. %

Mundo

16.391,5

17.151,4

17.445,0

17.360,3

18.466,5

(2010/09)
6,4

mundial
100,0

sia &

5.490,6

6.000,2

6 198,5

6.473,9

7.052,7

8,9

38,2

Oceania
Amrica do

4.543,9

4.630,5

4.601,9

4.422,4

4.599,6

4,0

24,9

Norte
Europa

3.306,4

3.345,1

3.378,2

3.219,0

3.369,7

4,7

18,2

Amrica do

806,1

844,6

874,3

877,6

929,7

5,9

5,0

Sul e Central
Oriente

557,2

582,9

622,6

656,2

709,2

8,1

3,8

Mdio
frica
493,2
521,4
525,8
530,0
559,6
5,6
3,0
Fonte: U.S. Energy Information Administration (EIA); Elaborao: EPE (2013, p.53).

Tabela 2 - Consumo final de combustveis no mundo em 1973 e 2011 (em %).


leo
Outros
Eletricidade
Carvo/turfa
Gs Natural
Biocombustveis e dejetos

1973

2011

48,1
1,6
9,4
13,7
14,0
13,2

40,8
3,4
17,7
10,1
15,5
12,5

Fonte: IEA (2013).


Nota: Adaptado pelo autor

Segundo a IEA (2013, p.35), no comparativo realizado entre o ano de 1973 e


o ano de 2011 para consumo final de energia eltrica no mundo, nota-se que houve
um aumento significativo da participao residencial e comercial quanto utilizao
de eletricidade. Em contrapartida os dados apresentados na Figura 3 revelam a

15

diminuio da participao do setor industrial e a quase constncia de consumo para


o setor de transportes.
Verificando-se os 10 maiores pases consumidores de energia do mundo,
nota-se que os pases pertencentes ao BRIC (Brasil, Rssia, ndia e China) ocupam
as primeiras posies, segundo a EPE (2013, p.53).
Figura 2 - Consumo final de Combustveis no mundo em 1973 e 2011

Fonte: IEA (2013).


Nota: Traduo do autor

Dos 30 pases desenvolvidos pertencentes Organizao para Cooperao e


Desenvolvimento Econmico (OCDE), que so os maiores consumidores de energia
no mundo, cinco deles (Alemanha, Canad, Estados Unidos, Frana e Japo)
encontram-se listados na Tabela 3. Entretanto sua participao no total mundial tem
recuado ao longo do tempo. Isso tambm pode ser verificado uma vez que tais
pases apresentam variaes negativas no consumo de energia eltrica entre alguns
anos.
Para os pases em desenvolvimento, segundo a Agncia Nacional de Energia
Eltrica (Aneel), a participao relativa, ainda que pouco expressiva, tem aumentado
ao longo dos anos. (2008, p.41).
Dos chamados membros do BRIC (Brasil, Rssia, ndia e China), segundo a
BP Global (2014), a Rssia, apresentou crescimento ininterrupto na gerao de
energia eltrica de 2003 at 2008. Entretanto, em 2009, houve queda no consumo

16

de 1040,0 TWh em 2008 para 993,1 TWh em 2009. De 2010 a 2012 este consumo
voltou a aumentar e, entre 2012 e 2013, permaneceu com volume consumido
praticamente estvel (-0,5%). ndia e China apresentaram crescimento constante,
sendo que entre 2012 e 2013 as variaes no consumo foram de, respectivamente,
4,8% e 7,6%. No Brasil, o aumento do consumo se mostrou constante at 2008
permanecendo praticamente estvel em 2009. Em 2010 o consumo torna a subir at
2013, sendo que a variao entre 2012 e 2013 foi de 1,2%.
Figura 3 - Consumo de energia eltrica no mundo por setor
em 1973 e 2011

Fonte: IEA (2013).


Nota: Traduo do autor.

Tabela 3 - 10 maiores pases consumidores de energia eltrica em 2010 (TWh).


2006
Mundo
Estados
Unidos
China
Japo
Rssia
ndia
Alemanha
Canad
Frana
Brasil
Coreia do

2007

2009

2010

Part. %

16.391,5 17.151,4 17.445,0


3.816,8 3. 890,2 3 865,2

17.360,3
3 723,8

18.466,5
3 886,4

(2010/09)
6,4
4,4

mundial
100,0
21,0

2.525,0
985,3
816,2
532,0
550,1
529,3
445,6
390,0
364,6

3.271,2
938,2
818,3
661,0
515,0
493,4
444,2
426,1
408,5

3.633,8
1.002,4
861,5
698,8
549,1
499,9
471,0
464,8
449,5

11,1
6,8
5,3
5,7
6,6
1,3
6,0
9,1
10,0

19,7
5,4
4,7
3,8
3,0
2,7
2,6
2,5
2,4

2.874,1
1.010,5
844,5
591,3
550,9
536,6
447,5
412,2
386,2

2008

3.054,1
965,9
857,8
617,3
548,2
529,1
460,0
428,3
402,1

17

Sul
Fonte: U.S. Energy Information Administration (EIA); Para o Brasil, dados do Balano Energtico
Nacional (BEN). 2013; Elaborao: EPE (2013, p.53).

Percebe-se tambm que na maioria dos pases citados houve queda no


consumo entre os anos de 2008 e 2009. A mesma queda pde ser verificada no
mbito mundial.
2.1.2 Panorama nacional
Para a Aneel (2008), desenvolvimento econmico e crescimento populacional
comparao entre as taxas de natalidade e mortalidade alm da medio de fluxos
migratrios so fatores que determinam o consumo de energia. Isso talvez
justifique o aumento do consumo de energia eltrica no mundo ao longo dos anos.
De acordo com Lucon e Goldemberg (2009, p.121) a atividade econmica est
intimamente ligada ao consumo de energia, portanto com o aquecimento da
economia, a tendncia que a energia consumida aumente.
No Brasil, apesar da queda na taxa de crescimento populacional, que teve
variao mdia anual de 1,46% entre 2000 e 2005 (EPE, 2007), o consumo de
energia para o mesmo perodo apresentou crescimento de 13,93%.
Segundo Aneel (2008a), a exemplo do que ocorre no mercado mundial, o
desempenho da economia o responsvel mais provvel, isto verificado atravs
do Produto Interno Bruto (PIB) brasileiro que, neste mesmo perodo, apresentou
crescimento acumulado de 14,72%, os dados so do Instituto de Pesquisa
Econmica Aplicada (Ipea). Alm disso, atravs da srie histrica constante do
Balano Energtico Nacional (BEN) de 2008, do Ministrio de Minas e Energia,
possvel verificar que no perodo compreendido entre 1970 e 2007 a tendncia foi de
expanso do consumo global de energia - derivados de petrleo, gs natural,
energia eltrica, entre outros.
Quando confrontados os anos de 2006 e 2007, Tabela 4, esta expanso fica
evidente, principalmente com relao ao lcool Etlico (variao de 34,7%), bagao
de cana (com variao de 10,5%), e gs natural (variao de 8,1%). Nota-se
tambm que o consumo de eletricidade foi o maior (35 milhes de tep) dentre as

18

fontes citadas, ainda que sua variao entre esses anos no tenha sido to
expressiva.
De acordo com a EPE (2013), quando relacionados populao total e
consumo de energia eltrica no Brasil, Tabela 5, verifica-se que, do total de clientes
do pas (aproximadamente 72 milhes), mais da metade (aproximadamente 62
milhes) so residenciais e seu consumo mdio de 158,9 kWh/ms (quilowatt hora
por ms).
Tabela 4 - Consumo energtico por fonte entre 2006 e 2007 (10 tep)
Fonte
Eletricidade
leo diesel
Bagao de cana
Lenha
Gs natural
Gasolina*
lcool etlico
Gs liquefeito de
petrleo
Outras fontes**

2006
33.536
32.816
24.208
16.414
13.625
14.494
6.395
7.199

2007
35.443
34.836
26.745
16.310
14.731
14.342
8.612
7.433

Variao (%)
5,7%
6,2%
10,5%
-0,6%
8,1%
-1,0%
34,7%
3,2%

39.887
42.957
* Inclui apenas gasolina A (automotiva).

7,7%

** Inclui lixvia, leo combustvel, gs de refinaria, coque de carvo mineral e carvo


vegetal, entre outros.
Fonte: Aneel (2008,p.44).

Tabela 5 - Informaes gerais do Brasil (2012)


Caracterstica
Populao
Consumo na rede
Consumo per capita
Carga de energia
Clientes totais
Clientes residenciais
Consumo total mdio
Consumo residencial mdio

Quantidade
194.684 mil
448.117 GWh
2.545 kWh/ano
62.056 MW mdio
72.377 mil
61.697 mil
516,0 kWh/ms
158,9 kWh/ms

Fonte: EPE (2013, p.83)


Nota: Adaptado pelo autor

Apesar da participao majoritria da classe industrial no consumo de energia


eltrica (40,9% do total no Brasil), a Tabela 6 revela que houve diminuio desse

19

consumo entre 2011 e 2012. Fica evidente, tambm, o crescimento nas outras
classes consumidoras. Destacam-se as classes: rural e comercial, que
apresentaram as maiores variaes percentuais frente s outras. Do consumo total
tem destaque, tambm, a classe residencial responsvel por 26,3% do total de
energia eltrica consumida no pas, ficando atrs apenas da classe industrial.
Apesar da grande diferena na participao nacional, todas as regies
apresentaram variaes positivas entre os anos de 2011 e 2012, Tabela 7. O
destaque vai para as regies Centro-Oeste e Nordeste, pois foram as regies que
apresentaram o maior crescimento nos anos citados. A regio Sudeste, que
apresentou menor variao, ainda a que tem maior participao no cenrio
nacional sendo responsvel por 52,5% do consumo total do pas.
Tabela 6 - Consumo total por classe - Brasil (GWh)
2008

2009

2010

2011

2012

Part. %

Brasil

388.47

384.306

415.683

433.034

448.117

(2012/11)
3,5

(2012)
100,0

Residencial
Industrial

2
94.746
175.83

100.776
161.799

107.215
179.478

111.971
183.576

117.646
183.475

5,1
-0,1

26,3
40,9

Comercial
Rural
Poder Pblico
Iluminao

4
61.813
17.941
11.585
11.429

65.255
17.304
12.176
11.782

69.170
18.906
12.817
12.051

73.482
21.027
13.222
12.478

79.238
22.952
14.077
12.916

7,8
9,2
6,5
3,5

17,7
5,1
3,1
2,9

Pblica
Servio Pblico
Prprio

12.853
2.270

14.525
3.288

3,9
-0,2

3,2
0,7

12.898
13.589
13.983
2.319
2.456
3.295
Nota: consumo cativo + livre
Fonte: EPE (2013, p.87).

Entretanto, quando se separa o consumo por classe e por regio, Tabela 8,


nota-se que o aumento para a classe residencial mais acentuado na regio Norte.
Fica claro, tambm, que o consumo para classe rural maior na regio Nordeste.
Esse crescimento mais acentuado para estas classes nestas regies,
segundo a EPE, est alicerada tanto na expanso do consumo mdio por
domiclios, em funo do aumento de renda e de programas sociais de
transferncia de recursos do Governo Federal (em especial o Bolsa Famlia)
quanto na evoluo do nmero de domiclios atendidos, em funo do

20

Programa Luz para Todos, tambm do Governo Federal (ANEEL, 2008a,


p.47, grifo nosso).

Na regio Sudeste, regio com a maior participao nacional no consumo de


energia eltrica, a classe com maior variao em consumo foi a comercial, Tabela 8,
mesmo tendo a classe residencial a segunda maior participao percentual no
consumo total da regio, precedida apenas pela classe industrial.
Tabela 7 - Consumo total por regio geogrfica (GWh)

Brasil
Norte
Nordeste
Sudeste
Sul
CentroOeste

2008

2009

388.472
23.873
65.103
209.944
65.900
23.652

2010

2011

2012

384.306
24.083
65.244
204.555
65.528

(2012/11)
415.683 433.034 448.117
3,5
26.237
27.777
29.049
4,6
71.197
71.194
75.610
5,1
222.005 230.668 235.237
2,0
69.934
74.470
77.503
4,1

24.896

26.310

28.205

30.718

8,9

Part. %
(2012)
100,0
6,5
16,9
52,5
17,3
6,9

Fonte: EPE (2013, p.86)


Nota: consumo cativo mais livre

Tabela 8 - Consumo de Energia Eltrica por regio e por classe - Regio


sudeste
2008
Brasil

388.472

Total
Residencial
Industrial
Comercial
Rural
Poder Pblico
Iluminao Pblica
Servio Pblico

209.944
51.477
98.515
34.685
6.000
5.215
5.375
7.356

Prprio

1.319

2009

2010

2011

384.306 415.683 433.034


Regio Sudeste
204.555 222.005 230.668
54.415
56.680
59.349
88.534
100.506 102.381
36.381
38.156
40.466
5.764
6.465
6.685
5.513
5.686
5.902
5.459
5.497
5.707
7.269
7.721
8.006
1.220
1.294
2.173
Fonte: EPE (2012).
Nota: Adaptado pelo autor

2.1.3 Panorama estadual

2012

Part. %

(2012/11)

(2012)

448.117

3,5

100

235.237
61.595
100.787
43.312
7.080
6.221
5.859
8.235

2,0
3,8
-1,6
7,0
5,9
5,4
2,7
2,9

52,5
26,2
42,8
18,4
3,0
2,6
2,5
3,5

2.149

-1,1

0,9

21

Acompanhando o ritmo mundial, nacional e regional, o cenrio estadual no


poderia ser diferente. Verifica-se que o consumo de energia eltrica para as
unidades de federao (UF) da regio sudeste, Tabela 9, tambm possui aumento
gradativo ao longo dos anos (2008 a 2012).
A Tabela 9 revela tambm que, durante o perodo em que o consumo de
energia eltrica apresentou queda em todo o mundo (entre os anos de 2008 e 2009),
o estado de So Paulo foi o que apresentou a menor variao percentual (-0,65%)
para o consumo total de energia no estado.
Nota-se, inclusive, o aumento gradativo para as classes residencial, comercial
e poder pblico, Tabela 10, que apresentaram, no estado de So Paulo, as maiores
variaes para os anos de 2011 e 2012.
Tabela 9 - Consumo de energia eltrica da regio sudeste por UF (GWh)
2008
Sudeste
Minas Gerais
Esprito Santo
Rio de Janeiro
So Paulo

2009

2010

2011

2012

209.944 204.555
222.005
230.668
235.237
48.659
45.091
51 313
53.611
53.407
8.602
7.970
9 386
9.768
10.060
33.723
33.311
35.801
37.008
38.050
118.960 118.182
125.505
130.282
133.721
*Participao do estado na regio em que se encontra.

Part. %

(2012/11)
2,0
-0,4
3,0
2,8
2,6

(2012)*
52,5**
22,7
4,3
16,2
56,8

**Participao da regio no consumo de energia eltrica nacional


Fonte: EPE (2013, p.95)
Nota: Adaptado pelo Autor

Isso talvez se deva ao aumento de consumidores residenciais beneficiados


por programas sociais de transferncia de recursos do Governo Federal (em
especial o Bolsa Famlia) e de domiclios atendidos pelo Programa Luz para Todos,
tambm do Governo Federal. (ANEEL, 2008a).
Os setores, industrial e de consumo prprio, mostraram variaes negativas
no mesmo perodo. A maior utilizao de equipamentos energeticamente eficientes,
tanto por parte das indstrias, quanto pelas concessionrias de energia eltrica,
provavelmente a principal causa da reduo do consumo para estas classes.
Tabela 10 - Consumo por classe no estado de So Paulo (GWh).
2008

2009

2010

2011

2012

%
(2012/11)

22

Residencial
Industrial
Comercial
Rural
Poder Pblico
Iluminao Pblica
Servio Pblico
Prprio*

31.301
54.033
20.744
2.635
2.574
2.867
4.534
271

32.871
50.611
21.751
2.478
2.718
2.929
4.604
221

34.214
54.780
22.867
2.848
2.822
2.938
4.803
232

35.918
55.989
24.253
2.883
2.940
3.008
5.026
265

37.680
55.628
25.871
2.974
3.107
3.072
5.171
217

4,9
-0,6
6,7
3,2
5,6
2,1
2,9
-17,9

*Consumo prprio das concessionrias


Fonte: EPE (2013, p.103-118).

2.1.4 Panorama regional


A Companhia Paulista de Fora e Luz (CPFL Energia) opera no segmento
de distribuio de energia eltrica por meio de oito concessionrias, localizadas nos
estados de So Paulo, Minas Gerais, Paran e Rio Grande do Sul. Juntas atendem
6,7 milhes de clientes em 569 municpios. (CPFL, [2011?], p.11)
Uma destas distribuidoras a CPFL Paulista que responsvel pela
distribuio de energia eltrica em 234 municpios do interior do estado de So
Paulo, dentre eles Bauru. Segundo o relatrio anual de 2010 da CPFL Energia,
Tabela 11 e Figura 4, os principais resultados referentes energia vendida no
perodo de 2006 a 2010 revelam aumento gradativo, acompanhando, portanto o
cenrio global descrito anteriormente.
Nota-se tambm, que houve reduo, ainda que pouco expressiva, da venda
de energia eltrica entre os anos de 2008 e 2009, reduo esta causada pela
diminuio do consumo livre (consumidores que precisam de mais de 3 mil
quilowatts). Entretanto, o consumo cativo de energia (consumidores comuns)
revelou crescimento entre todos os anos citados.
Tabela 11 - Resultados CPFL Paulista (2006-2010).
Principais Resultados

2006

2007

2008

2009

2010

Nmero de Clientes (Milhares)


Energia Vendida (GWh)
Cativo
Consumidores livres
Municpios Atendidos

3 332
23 065
18 295
4 770
234

3 415
24 437
18 868
5 569
234

3 500
25 288
19 544
5 743
234

3 566
25 267
19 977
5 290
234

3 660
26 988
20 649
6 339
234

Fonte: CPFL Energia ([2011?], p.13).

23

Figura 4 - Resultados CPFL Paulista (2006 - 2010).

Fonte: CPFL... ([2011?], p.13)


Nota: Elaborado pelo autor

2.2

REGIO DE BAURU

2.2.1 Gerao, distribuio e consumo


Segundo Creder (2012) e Aneel (2008) a gerao de energia eltrica atravs
de hidreltricas (que utiliza a fora da gua dos rios), no Brasil, corresponde 75%
do total da capacidade instalada no pas. Em Bauru, tanto a gerao como a
distribuio de energia eltrica de responsabilidade da CPFL, sendo esta dividida
em CPFL Gerao e CPFL Distribuio.
A CPFL Gerao possui:
8 usinas hidreltricas (UHE) em operao;
Uma usina termeltrica movida a biomassa de cana-de-acar (UTE
Baldin);
Uma usina movida a leo em operao (UTE Termonordeste);
34 PCHs (Pequena Central Hidreltrica);
Atuao nos estados de So Paulo, Santa Catarina, Rio Grande do Sul,
Gois, Tocantins, Minas Gerais, Mato Grosso, Paraba e Rio Grande do
Norte;
2.309 MW de potncia instalada;
1.157 MW mdios de energia assegurada;
8 parques elicos;
1 UTE a leo em construo (UTE Termoparaba).(CPFL, [2011?], p.8).

24

Como o setor eltrico composto pelo Sistema Interligado Nacional (SIN) onde
uma grande rede de transmisso permite o trnsito de energia por todo o Brasil e
pelos Sistemas Isolados localizados principalmente na regio Norte (ANEEL, 2008,
p.7), no h, portanto, uma fonte geradora nica para Bauru.
A distribuio realizada por meio de oito concessionrias em quatro estados
(So Paulo, Minas Gerais, Paran e Rio Grande do Sul), sendo a CPFL Paulista
responsvel pela distribuio da energia eltrica para vrios muncipios do interior
de So Paulo, dentre eles Bauru. (CPFL..., [2011?]).
Considerando o consumo mdio residencial brasileiro de 158,9 kWh/ms e
sabendo-se que, o nmero de domiclios que possuem energia eltrica na cidade de
Bauru, Tabela 12, de 109.715 domiclios (IBGE, 2010), estima-se que o consumo
de energia eltrica no municpio foi de aproximadamente 17,5 GWh/ms em 2010.
Tabela 12 - Domiclios com energia eltrica em Bauru
Residncia
Quantidade

Com energia eltrica

Sem energia

Total

109.715

eltrica
160

109.875

Fonte: IBGE, Censo demogrfico 2010.


Nota: Adaptado pelo autor

2.2.2 Tipos de Consumidores


De acordo com a Aneel (2005), para efeito de aplicao da tarifao, os
consumidores so divididos em classes, so elas: Residencial; Industrial; Comercial,
Servios e Outras Atividades; Rural; Poder Pblico; Iluminao Pblica; Servio
Pblico e Consumo Prprio.
Na classe Residencial se enquadram, tambm, os consumidores residenciais
de baixa renda.
A classe Industrial composta por unidades consumidoras que realizam
atividade industrial, incluindo transporte de matria prima, insumo ou produto.
A terceira classe citada engloba os servios de transporte, comunicao e
telecomunicao e outros afins.
Atividades de agropecuria, cooperativa de eletrificao rural, indstria rural e
outras atividades consideradas rurais so inseridas na classe Rural.

25

Nas classes rotuladas como pblicas esto includos servios de iluminao


de ruas, praas e outros ambientes pblicos de uso comum (Iluminao Pblica),
bem como servios de gua e esgoto (Servio Pblico) e atividades dos Poderes
Pblicos: Municipal, Distrital, Federal ou Estadual.
A ltima classe de consumidor refere-se ao consumo destinado prpria
empresa de distribuio.
2.2.3 Categorias de Tarifao
Os consumidores de energia eltrica, segundo a Aneel (2005), so divididos
em grupos e subgrupos conforme a demanda necessria, grupo A para
consumidores em alta tenso e grupo B para consumidores em baixa tenso (inferior
a 2,3 kV). Os subgrupos do grupo A so divididos com base no nvel de tenso: A1
(nvel de tenso de 230 kV ou mais), A2 (de 88 a 138 kV), A3 (69 kV), A3a (de 30 a
44 kV), A4 (de 2,3 a 24 kV), AS (para sistema subterrneo). Enquanto que os
subgrupos do grupo B so divididos em classes: B1(classe residencial e sublcasse
residencial baixa renda), B2 (classe rural), B3 (outras classes), B4 (classe
iluminao pblica).
2.2.4 Baixa Renda
Alm das categorias de tarifao convencionais para o grupo B h o
programa Baixa Renda que consiste em uma categoria de tarifao diferenciada
para a parcela da populao que possui menores condies econmicas. O
programa consiste em descontos, Tabela 13, que variam de 10% a 65% (ANEEL,
2005).
Para CPFL... ([2008]), a concesso do programa baixa renda segue os
seguintes critrios: as unidades consumidoras devero ser residenciais e atendidas
em circuito monofsico onde o consumo mdio mensal de at 79 kWh/ms, sem
necessidade de comprovao da inscrio no Bolsa Famlia, ou o consumo mdio
mensal - mdia mvel dos ltimos doze meses - est entre 80 e 220 kWh/ms,
nesse caso, para receber o benefcio, o responsvel pela unidade consumidora
dever comprovar junto a CPFL, a inscrio no programa Bolsa Famlia.

26

Tabela 13 - Descontos programa "Baixa Renda"


Faixa de Consumo
0 - 30 kWh
31 - 100 kWh
101 220 kWh

Desconto Tarifrio (%)


65%
40%
10%
Fonte: Aneel (2005, p.15).

2.3

INOVAES TECNOLGICAS

Com o objetivo de mudar o cenrio do aumento desenfreado de consumo de


energia e visando o consumo eficiente, confivel e ecolgico de energia eltrica,
bem como a reduo das despesas com este insumo (CCK..., [c2006?]a), algumas
empresas desenvolveram equipamentos comerciais, Figura 5, que realizam o
controle da demanda, consumo e correo do fator de potncia para indstrias e
residncias.
Figura 5 - Dispositivos de controle de consumo de energia eltrica.

Fonte: GESTAL (c2014); Schneider Electric (c2014); CCK (c2014);


Nota: Adaptado pelo autor

2.3.1 Dispositivos Comerciais (CCK Automao)

A CCK Automao uma empresa que integra atividades de pesquisa,


desenvolvimento, fabricao e aplicao do SISTEMA CCK DE GERENCIAMENTO
DE ENERGIA E UTILIDADES, sendo pioneira no Brasil no gerenciamento de
energia eltrica atravs de microcomputadores (CCK..., [c2006?]a).

27

A soluo proposta por ela e cujo foco so as indstrias, busca o consumo


eficiente de energia eltrica. Para atingir esta meta, realizado o acompanhamento
do consumo de energia eltrica que tem como objetivo conhecer os detalhes das
despesas mensais, verificar sua evoluo e identificar aes que devem ser
adotadas para reduzir os dispndios com este insumo, a curto e longo prazo com a
reduo ou eliminao de perdas motivadas por diversos fatores tais como: cultura
do desperdcio, descontrole na medio do consumo energtico, penalidades por
contratos de energia mal elaborados, sobrecarga nos transformadores e cabos de
energia, entre outros.
Os principais produtos da CCK para pequenas aplicaes so: CCK 7160 e o
CCK 6700 e suas variaes que podem incluir dispositivos opcionais de
gerenciamento de energia. Seus componentes bsicos consistem em atuadores nas
cargas desejadas; Sensores para realizar o acompanhamento do consumo realizado
pela concessionria e o corao do sistema que so os microcontroladores que
realizam os clculos e testes condicionais necessrios para o correto funcionamento
do sistema.
Os dispositivos da CCK realizam o controle preditivo da demanda, fazendo a
projeo da demanda, ento, os componente de controle faro o chaveamento
correto das cargas previamente selecionadas antes do intervalo de 15 minutos
(entre leituras), evitando, portanto que a demanda contratada seja ultrapassada, o
que pode gerar penalidades no contrato de energia que, em alguns casos
representa prejuzos para a empresa. (CCK..., [c2006?]b).
2.3.2 Dispositivos comerciais (Schneider Electric)
A Schneider Electric (c2014) uma empresa especialista global na gesto de
energia, que apresenta solues para ambas as classes consumidoras (residencial
e industrial) que consiste basicamente em servios que representam benefcios para
usurios finais. Por proporcionar a automatizao residencial, que a torna mais
confortvel e energeticamente eficiente, consegue obteno de custos de
eletricidade reduzidos, aumento do conforto e dedicao ambiental.
Seus principais produtos consistem em medidores de energia cujo
funcionamento se assemelha ao dos dispositivos da CCK, ou seja, medidores de

28

energia junto concessionria, associados a um sistema microcontrolado robusto e


atuadores que podem ser contatores ou moduladores de corrente. Alm dos
dispositivos, a Schneider Electric tambm conta com o software PowerLogic ION
EEM 3.95 - Gerenciamento Corporativo de Energia - Enterprise Energy
Management da Schneider Electric possui diversas funes de relatrios,
armazenamento de dados, indicadores, anlise de tendncias, anlise de qualidade
de energia entre outras poderosas funes de monitoramento do consumo e
demanda de energia eltrica para empresas, possibilitando o controle financeiro
cerca deste insumo.(Schneider..., c2014).
Os componentes aliados ao software de gerenciamento forma uma poderosa
ferramenta de gerenciamento de consumo de energia eltrica, cujas aplicaes vo
desde indstrias at edifcios.
2.3.3 Dispositivos comerciais (GESTAL)
A GESTAL - Gesto de Energia e Utilidades (c2014) uma empresa 100%
brasileira fundada em 1997 cuja misso fornecer solues inteligentes no
segmento de Gerenciamento e Controle de Energia Eltrica. Seus produtos so
direcionados para pequenas aplicaes e dispensam o uso de microcomputadores
para realizar o gerenciamento de energia, mas permitem a instalao de um
software em um microcomputador para potencializar a gesto eficiente da energia.
A base de funcionamento de seus sistemas segue o mesmo padro dos
citados anteriormente: o dispositivo principal (no caso o Smart Gate-C) ligado entre
a medio da concessionria e os atuadores - que realizaro a medio e o controle
do consumo de energia, Figura 6. Este componente tambm ligado internet
epermitindo que os dados - provenientes das leituras - sejam armazenados em um
servidor e/ou acessados remotamente por um gestor de energia possibilitando o
monitoramento e gerenciamento do consumo de maneira remota. A utilizao de
servidores para armazenar os dados permite, entre outras atividades, que previses
de consumo sejam realizadas de maneira precisa e eficiente.
As estratgias de controle adotadas pela Gestal consistem no controle de
demanda preditivo, adaptativo, por mdia mvel, por valor acumulado, controle de
fator de potncia (til apenas para indstrias) e controle de consumo. O primeiro
mtodo realiza a projeo da demanda e assim reduz o nmero de chaveamento

29

(liga/desliga) nas cargas. No segundo mtodo medida que a demanda aumenta o


sistema realiza o chaveamento das cargas, com base nas prioridades pr-definidas.
O ltimo mtodo realiza o controle do consumo baseado em horrios programados
para o funcionamento e desligamento das cargas.
Figura 6 - Instalao do sistema Smart Gate-C da Gestal.

Fonte: Gestal (c2014).

2.4

TRABALHOS CORRELATOS

2.4.1 Medidor de demanda de energia eltrica residencial com acesso remoto


Gilberto Jos de Paula em seu trabalho intitulado Medidor de demanda de
energia eltrica residencial com acesso remoto, publicado em 2013 pela UniCEUB
em Braslia DF, prope o desenvolvimento de um medidor eletrnico de energia
eltrica que possibilita ao consumidor realizar o monitoramento e o gerenciamento
do consumo de energia eltrica de sua residncia atravs da uma interface web.
Utilizando a plataforma de prototipagem Arduino, um shield ethernet (mdulo
que permite conexo com a internet) e um sensor de corrente ACS712 da Allegro
Micro Systems.
O sistema realiza a medio e coleta dos dados e os disponibiliza, atravs da
internet, os dados para que o consumidor realize o monitoramento e o

30

gerenciamento do consumo de energia eltrica, entretanto o controle de


responsabilidade do consumidor sendo que o dispositivo responsvel apenas pela
coleta e disponibilizao dos dados.
As semelhanas entre o trabalho publicado em 2013 e o presente projeto
esto em alguns materiais que sero utilizados - Arduino e sensor de corrente e
em algumas tcnicas aplicadas para a medio do consumo de energia eltrica.
Entretanto o este trabalho prope o desenvolvimento de um dispositivo que efetue o
controle autnomo do consumo de energia eltrica enquanto que, o projeto de Paula
tem como objetivo o monitoramento e gerenciamento do consumo de energia
eltrica por parte do consumidor.
2.4.2 Controlador de demanda e fator de potncia de baixo custo para
unidades consumidoras de energia eltrica
Andr Luiz Andreoli prope em seu trabalho, intitulado Controlador de
demanda e fator de potncia de baixo custo para unidades consumidoras de energia
eltrica, publicado em 2005 pela UNESP em Bauru SP, o desenvolvimento de um
dispositivo eletrnico de controle de demanda mxima e de fator de potncia em
instalaes eltricas.
Utilizando um micro controlador da famlia PIC18 e um medidor eletrnico de
energia baseado no circuito integrado ADE7758, da Analog Devices, que realiza a
medio dos parmetros eltricos da instalao que so utilizados como parmetros
de entrada do sistema de controle.
Da mesma forma que os dispositivos industriais disponveis no mercado, o
algoritmo realiza a coleta das medies provenientes do sensor e, baseado na
filosofia das cargas de menor prioridade, atua nas sadas, efetuando o controle da
demanda, programada atravs da interface homem-mquina (geralmente um LCD
com teclado alfanumrico).
Aps a aplicao do dispositivo, os resultados obtidos foram satisfatrios uma
vez que o consumo de energia eltrica no ultrapassou o limite previamente
definido, efetuando, portanto o controle da demanda.
O modo de funcionamento do projeto publicado por Andreoli se assemelha
com o presente trabalho, entretanto os materiais que sero utilizados so diferentes,
de forma que seja possvel verificar se a aplicao das mesmas tcnicas em outros

31

componentes resultar em desempenho diferente (maior ou menor reduo no


consumo).
Portanto este trabalho utilizar componentes semelhantes aos utilizados no
trabalho intitulado Medidor de demanda de energia eltrica residencial com acesso
remoto de Paula, porm utilizando tambm algumas das tcnicas presentes no
trabalho intitulado Controlador de demanda e fator de potncia de baixo custo para
unidades consumidoras de energia eltrica de Andreoli tais como desligamento de
cargas e parmetros de entrada.

32

MATERIAIS E MTODOS

O sistema proposto de fcil instalao junto ao quadro de energia eltrica,


aproveitando os parmetros do medidor instalado pelas companhias. De maneira
resumida, o dispositivo visa realizar o controle do consumo de energia atravs da
automatizao de medidas de combate ao desperdcio que envolve o desligamento
de cargas selecionadas.
A plataforma Arduino utilizada para obter os dados das leituras de tenso e
corrente para que realize os clculos necessrios e efetue o acionamento dos rels
que possibilitaro o ligamento ou desligamento das cargas.
Os sensores de tenso e corrente so necessrios para captar a leitura de
tenso e corrente em valores elevados para o Arduino e reduza para valores
capazes de serem lidos pelo microcontrolador sem danific-lo.
O display de cristal lquido (Liquid Crystal Display - LCD), em conjunto com as
teclas, utilizado para realizar a interao com o usurio, permitindo de maneira
intuitiva: o ajuste de data, hora, prioridade das cargas e limite de demanda.
Os rels so os dispositivos pelos quais ser realizado o desligamento e
religamento das cargas dadas as condies previamente definidas.
A placa MicroSD utilizada para realizar o armazenamento de dados de
maneira automtica, um item opcional mas que facilita a coleta de dados para o
aprimoramento do sistema.
3.1

FUNCIONAMENTO DO DISPOSITIVO

O funcionamento do dispositivo dividido em trs etapas, so elas:


configurao (por parte do consumidor) da prioridade das cargas, ou seja, quais
cargas sero as primeiras a serem desligadas e quais no podero ser desligadas, a
segunda etapa consiste na coleta, clculo e armazenamento dos dados da leitura no
quadro e, por fim, na terceira etapa ocorrem os chaveamentos das cargas em ordem
(menor prioridade maior prioridade, respeitando as que no podero ser
desligadas).
Por ser um dispositivo de aplicao residencial, inicialmente fixa, sua
instalao dever ser realizada junto ao quadro de energia onde a ligao para
circuito de iluminao seja separado do circuito de uso geral. Para o chuveiro, que

33

ter tratamento especial (com a utilizao de chaveamento baseado em tempo),


tambm dever, no momento da aplicao do dispositivo, estar ligado de maneira
fixa para o correto funcionamento do dispositivo.
Conforme ilustra a Figura 7, o dispositivo divido em quatro partes: Medio
de energia eltrica que consiste dos sensores de tenso e corrente; Monitoramento,
onde se encontra a comunicao com o usurio; Controle de consumo de energia
composto por rels e o Software que realizar o chaveamento das cargas.
Figura 7 - Organizao do controlador de consumo de energia eltrica

Nota: Elaborado pelo autor.

Primeiramente o usurio realiza a definio das prioridades das cargas


utilizando os botes e com o auxlio do LCD, estes dados so armazenados no
carto micro SD.
O funcionamento do software se d em quatro etapas divididas em: Leitura,
Clculo, Comparao e Atuao, conforme ilustra a Figura 8. Na fase de Leitura
ocorre a obteno dos dados do consumo provenientes dos sensores de corrente e
tenso. Na fase de Clculo, os dados lidos (corrente e tenso) so utilizados, como
variveis para a obteno da potncia consumida obtida pelo produto entre tenso

34

e corrente. Na terceira etapa, fase de Comparao, o valor de potncia consumida


anteriormente obtido confrontado com as condies previamente definidas e
baseadas nas condies do Programa Baixa Renda, por fim, na fase de Atuao
ocorre o desligamento das cargas, realizados de forma que as de menor prioridade
so as primeiras a serem desligadas.
Figura 8 - Etapas de funcionamento

Nota: Elaborado pelo autor

3.2

COMPONENTES DO SISTEMA

Os dispositivos disponveis comercialmente acabam se tornando inviveis


para aplicaes em baixa tenso dado o seu custo relativamente elevado para o
consumidor residencial de baixa renda. Uma vez que o trabalho visa o
desenvolvimento de um dispositivo para aplicaes em residncias de baixa renda,
portanto elementos de custo reduzido so necessrios.
3.2.1 O Arduino
Segundo Banzi (2011), o Arduino formado por dois componentes principais:
a placa Arduino (hardware) e o ambiente de desenvolvimento integrado (Integrated
Development Environment IDE) do Arduino (software). A filosofia do Arduino
facilitar a criao e modificao de prottipos, uma vez que reduz, e at elimina, a
necessidade de soldas nos projetos.
Seu hardware, ainda segundo Banzi (2011, p.34), constitudo de um
pequeno circuito que contm um computador inteiro dentro de um pequenino chip (o

35

microcontrolador). Este chip o elemento essencial da placa, que possui todos os


componentes necessrios para o correto funcionamento do microcontrolador e que
permitem a comunicao com o computador.
Banzi (2011) completa dizendo que a placa Arduino possui muitas verses,
entretanto algumas caractersticas essenciais so preservadas independentemente
da verso da placa, so elas: pinos digitais de entrada/sada que podem ser
utilizados como entradas ou sadas, especificadas via software, alguns destes pinos
digitais podem ser usados como sada analgica so as chamadas portas PWM
(Pulse With Modulation ou Pulso Com Modulao); pinos de entrada analgica
(rotulados como Analog In) que recebem valores analgicos (leituras de tenso de
um sensor, por exemplo) e convertem em um nmero entre 0 e 1023; Entrada USB
utilizada tanto para alimentao (5V) quanto para o envio do programa para o
microcontrolador; A alimentao tambm pode ser fornecida atravs de uma
alimentao externa de at 12 volts.
Alm destas caractersticas, o Arduino Mega 2560, Figura 9, possui 54 pinos
de entrada/sada digital, das quais 15 fornecem sada PWM; 16 portas de entrada
analgica; 3 portas para alimentao (5V) e 5 para ligao ao terra (GND).
Figura 9 - Arduino Mega 2560

Fonte: ARDUINO (c2014a).

A placa Arduino Mega 2560 conta com microcontrolador Atmega2560, alm


de uma capacidade de 256KB de memria flash (para armazenamento do programa)
dos quais 8KB so utilizados para iniciar o funcionamento do software. (ARDUINO,
c2014a).
3.2.2 IDE Arduino

36

O IDE Arduino, Figura 10, um ambiente para criar, verificar e carregar


programas para o microcontrolador.
Figura 10 - IDE Arduino

Fonte: ARDUINO (c2014b)

O IDE traduz o cdigo (geralmente escrito em C) para uma linguagem que o


microcontrolador capaz de entender (geralmente Assembly), verifica se a estrutura
do programa est correta e carrega para o Arduino.
Quando detectado algum erro de escrita ou na forma de utilizao das
funes no programa o ambiente gera um erro e interrompe o processo de envio ao
microcontrolador, protegendo, portanto, o Arduino de falhas. As funes essenciais
para o funcionamento do programa no microcontrolador so:

setup(): funo utilizada para definir os parmetros do programa quando o


microcontrolador ligado e;
loop(): funo responsvel pela repetio das rotinas programadas definidas
ou aguardar a interrupo do dispositivo.
3.2.3 Sensor de Tenso
Para a medio da tenso eltrica, como o Arduino j utiliza sinais eltricos

para interagir com o mundo (BANZI, 2011), para obter esta grandeza, basta reduzir a

37

tenso da rede eltrica que se deseja obter a leitura para um valor que no danifique
o Arduino (geralmente de 0 a 5V); retificar de forma que a tenso seja transmitida
de maneira digital e, ento, atravs do software efetuar os clculos de
proporcionalidade.
Para realizar a medio da tenso, a utilizao de um optoacoplador com
sada de fototransistor com conexo de base. Neste componente a intensidade
luminosa de um led realiza o controle da tenso de sada de um fototransistor, com
isso possvel realizar a leitura da tenso alternada e traduzi-la para o Arduino em
faixas menores (de 0 a 5V), possibilitando a realizao, via software, dos clculos da
tenso real da rede.
3.2.4 Sensor de Corrente ACS712
um dispositivo eletrnico capaz de realizar a medio de corrente eltrica
utilizando um Circuito Integrado de efeito Hall, que converte o campo magntico,
gerado pela corrente que atravessa um condutor de cobre, em tenso proporcional
(ALLEGRO, c2013), possibilitando a leitura pela placa Arduino sem danific-la.
Alm do circuito integrado ACS712-30A a montagem da placa de circuito
impresso, Figura 11, possui bornes para ligao na rede eltrica de onde ser
retirada a leitura da corrente e os pinos para comunicao com o Arduino.
O pino de alimentao (Vcc) utilizado para alimentar o sensor com os 5V
em corrente contnua fornecidos pelo Arduino, o pino de referncia, terra ou ground
(GND) utilizado para fechar o circuito para que haja o correto funcionamento do
sensor e o pino de sada (Out) fornece a leitura obtida e a envia para uma das portas
de entrada analgica do Arduino.
Por se tratar de um sensor de corrente, sua instalao deve ser realizada em
srie carga, ou seja, podem-se ligar os pinos 1 e 2, ligados eletricamente carga
ou os pinos 3 e 4 tambm ligados eletricamente carga. Aps selecionados os
pinos, os outros devero ser ligados de forma que o circuito seja fechado e assim a
corrente gerada.

38

Figura 11 - Sensor de corrente ACS712

Fonte: Laboratrio de Garagem (c2012).

3.2.5 Mdulo Rel


O Rel, Figura 12, um atuador, - um dispositivo atravs do qual o Arduino
altera o mundo - um interruptor eletromecnico que converte sinais eltricos
(enviados pelo Arduino). Segundo Creder (2012) o funcionamento do rel (contator
magntico) baseia-se em dois circuitos, o primeiro (de comando) fornece a corrente
que, ao fluir atravs de uma bobina, cria um campo magntico que atrai uma
alavanca, esta alavanca proporciona a abertura ou fechamento do segundo circuito
(de fora).
Para o acionamento ou desligamento das cargas sero utilizados mdulos
rel, sendo um para cada carga, como a aplicao se restringe a um ambiente
residencial as cargas podem ser entendidas como as tomadas. A utilizao de um
mdulo deste tipo para o prottipo dar-se- pela facilidade de montagem e utilizao
do componente.
A ligao eltrica neste tipo de componente dividida em dois circuitos o
circuito que ser acionado (de fora) e o circuito acionador (de controle), para o
circuito de fora basta realizar a ligao da fase no rel e do neutro na outra
extremidade da carga (tomadas ou interruptores). No circuito de controle basta ligar
o pino Vcc do mdulo alimentao 5V do Arduino, o pino GND ao GND do Arduino
e o pino de sinal (S) qualquer sada do Arduino.
Quando o sinal da porta de sada (S) for baixo, o rel permanece desligado e
a carga em funcionamento, se o sinal for alto, o rel aciona e corta o circuito,
desligando a carga.

39

Figura 12 - Mdulo Rel

Fonte: ROBOCORE (c2014).

3.2.6 Arduino TFT Screen


O Arduino TFT (Thin-Film Transistor ou Transistor de Pelcula Fina) Screen,
Figura 13, um componente que possui funcionalidade de dois componentes
distintos em um nico dispositivo: Display LCD (sada de dados) e Placa micro SD
(armazenamento).
A tela do Arduino TFT Screen possui 1,77 polegadas com uma resoluo de
160x128 pixels, conta com um slot para carto micro SD que permite, alm do
armazenamento de dados relevantes (leitura do consumo), armazenar imagens para
exibio no LCD. (HUANAN..., [2012]).
Para armazenar os dados, o Arduino TFT Screen possui um slot para cartes
SD que permite o armazenamento de at 2 GB (gigabytes), possibilitando a coleta
de dados mais rpida e fcil, caso necessrio.
Compatvel com Arduino Duemilanove, e outras plataformas, a manipulao
da tela acessvel por software atravs da biblioteca TFT, e o slot micro SD atravs
da biblioteca SD
Figura 13 - Arduino TFT Screen

Fonte: ARDUINO (c2014c).

40

3.2.7 Mdulo RTC


O mdulo Real Time Clock (RTC) DS1302 realiza a contagem de tempo real e
transmite esses dados para o microcontrolador, enquanto tiver energia (proveniente
da bateria ou do Arduino) a contagem de tempo do RTC no para, conferindo maior
preciso na obteno da data e hora.
O DS1302 possui 31 bytes de memria RAM esttica e seu clock possui
frequncia de 32.768 kHz. Os pinos utilizados para comunicao com o Arduino so:
Chip Enable (CE) que habilita o envio dos dados para o RTC; Entrada/Sada
(Input/Output - I/O) que realiza a leitura e escrita dos dados de data e hora e Serial
Clock (SCLK) responsvel por sincronizar o envio dos dados tanto na leitura como
na escrita (MAXIM INTEGRATED, c2008).

41

4
4.1

TESTES E RESULTADOS

TESTE DO DISPOSITIVO (HARDWARE)

A fase de testes do dispositivo tem como objetivo realizar as medies de


corrente e tenso que so realizadas em regime de corrente alternada (CA ou AC
Alternating Current) e convertidas para o regime de corrente contnua (CC ou DC
Direct Current) para que o Arduino consiga realizar a leitura desses dados. O sensor
de tenso, Figura 14, que utiliza um optoacoplador cuja sada um fototransistor
com conexo de base alm de resistores e capacitores para a converso de
corrente alternada em corrente contnua, este esquema eltrico foi criado utilizando
o software Proteus.
Figura 14 - Sensor de Tenso: Esquema eltrico

Nota: Elaborado pelo autor

O sensor de corrente utiliza o mesmo princpio de funcionamento do sensor de


tenso, convertendo o sinal analgico em digital, para que o Arduino possa realizar a
leitura deste sensor. O sensor de corrente eltrica, Figura 15, utiliza um sensor de
efeito Hall (Captulo 3.2.4, pgina 40), que capta o campo magntico criado pelo
fluxo de corrente atravs de um condutor e converte para um nvel de tenso entre 0
e 5V. Por se tratar de um sensor bidirecional, a tenso de sada do ACS712 30A
representa correntes lidas de -30A a 30A.

42

Figura 15 - Sensor de Corrente: Esquema eltrico

Fonte: ALLEGRO (c2013).

O mtodo de leitura dos botes, que realizam a interao do usurio com o


dispositivo, tambm utiliza a leitura analgica para tratamento do boto que foi
pressionado. O esquema eltrico do mdulo de botes, Figura 16, criado utilizando o
software Proteus, possui cinco botes interligados atravs de resistores, com isso,
cada boto que pressionado retorna um nvel de tenso diferente ao Arduino,
sendo possvel tratar a funcionalidade de cada boto utilizando apenas uma entrada
analgica do Arduino e no 5 portas digitais.
Figura 16 - Botes: Esquema eltrico

Nota: Elaborado pelo autor.

43

Os sensores, o mdulo de botes, os rels, a tela TFT e o mdulo microSD


foram ligados ao Arduino conforme ilustra o esquema eltrico (Apndice A).
4.2

TESTES DO SOFTWARE 2CONBR

O nome 2ConBR surgiu da composio dos termos que descrevem o


principal objetivo do dispositivo Controle de Consumo (2Con) aplicado em
residncias de Baixa Renda (BR).
Esta fase teve como objetivo verificar e calibrar as leituras de corrente e
tenso corretamente, validar o correto funcionamento dos botes, das informaes
que seriam exibidas na tela e armazenadas no dispositivo bem como validar os
resultados dos clculos de consumo de energia eltrica e se o chaveamento das
cargas estava ocorrendo conforme o esperado.
O software (Apndice B), ao ser carregado para o Arduino, realiza duas
etapas bem definidas: a primeira a de configurao, executada uma nica vez
quando o Arduino iniciado; a segunda a etapa de loop, nesta o Arduino executar
indefinidamente a rotina definida conforme diagrama de atividades (Apndice C).
Na etapa configurao (setup) ocorrem os preparativos para o correto
funcionamento do dispositivo, que so:

Sincronizao do horrio atual originado do mdulo RTC;


Leitura dos dados armazenados no carto de memria: consumo total do

ms, limite de consumo mensal e prioridade das cargas;


Organizao das cargas em ordem decrescente de prioridade e;
Inicializao da tela para recebimento das informaes.

Na etapa de repetio (loop), as rotinas so executadas na seguinte ordem:

Atualiza-se o horrio;
Realizam-se as leituras dos sensores;
Calcula-se o consumo instantneo (C) atravs da equao 1, calculando-se a
potncia atravs do produto entre a tenso e a corrente (lidos), convertendose em kWh:
C=

1
.(
(V.I
)
1000
3600 )

(1)

44

Onde V a tenso medida em Volts e I a corrente eltrica medida em


Ampres.

Estima-se o consumo at o final do dia pela equao 2, convertendo o


consumo instantneo em consumo horrio, ento multiplicado pelo total de
horas restantes at o final do dia:

(2)

Sendo Ed a estimativa de consumo para o final do dia, C o consumo


calculado da equao 1 e ha a hora atual sincronizada no dispositivo.
Calcula-se o limite de consumo dirio (l d) utilizando a equao 3, subtraindose consumo total atual do limite mensal definido e ento dividindo este
resultado pelo restante de dias at o trmino do ms:

( )
( )

(3)

Em que lm o limite mensal definido pelo usurio, C T o consumo total do


ms at o horrio atual, Td o total de dias do ms atual e da o dia atual que se

encontra o dispositivo;
Realizam-se as comparaes de data e hora para que os dados sejam

gravados no arquivo;
Realizam-se as comparaes e o chaveamento das cargas.
4.3

DIFICULDADES ENCONTRADAS

As principais dificuldades encontradas no desenvolvimento do dispositivo


foram, inicialmente a pouca memria de programa disponvel na primeira verso do
Arduino utilizado (Revolution), que contava com 32.720 bytes de memria para
armazenamento do programa. Para solucionar este problema optou-se pela
substituio pela verso Mega 2560 da plataforma que conta com 258.048 bytes de
memria de programa.

45

Na realizao da calibrao dos sensores que precisavam fazer a leitura e


traduzi-las para valores reais. Empiricamente foi encontrado o valor de calibrao
ideal para os sensores na obteno dos valores mais prximos dos reais.
O sensor por efeito Hall mostrou ser suscetvel a interferncias causadas pela
rede eltrica que alterava o consumo medido pelo dispositivo. Como soluo, os
condutores foram montados de maneira que ficassem paralelos entre si.
4.4

RESULTADOS OBTIDOS

A coleta de resultados se deu em um ambiente simulado em que foram


utilizadas duas lmpadas de filamento incandescentes de 25 W para simular o
consumo de energia eltrica e o limite de consumo mensal foi definido em 7 kWh.
Como o chaveamento das cargas precisava ocorrer em um intervalo de
alguns dias, optou-se pela utilizao do limite de consumo dirio para uma
residncia que consome 220 kWh/ms faixa limtrofe para obteno da tarifa
diferenciada (Captulo 3.2.4, pginas 27 e 28) este limite foi obtido atravs da
diviso do consumo pelo perodo de 30 dias (um ms) - aproximadamente 7 kWh como limite de consumo mensal do dispositivo.
Os dados foram adquiridos em trs fases distintas: a primeira sem a utilizao
do chaveamento das cargas, simulando uma situao de consumo sem a presena
do dispositivo, a segunda com o chaveamento ativo, ou seja, quando o controle
estava sendo realizado. Na terceira fase foi realizada a coleta dos dados de
consumo do dispositivo isolado.
Na primeira etapa, para coletar os resultados de parametrizao, Tabela 14,
as cargas permaneceram ligadas pelo perodo de um dia sem a execuo da rotina
de chaveamento, nota-se que o consumo de energia eltrica foi constante durante o
perodo analisado.
Na etapa de chaveamento das cargas, para realizar a coleta dos dados com
uso do dispositivo, Tabela 15, as cargas foram ligadas e a rotina de chaveamento
ativada.
O algoritmo desenvolvido baseia-se na previso para o consumo at o
trmino do dia para realizar o desligamento das cargas, como a estimativa do
consumo total nas primeiras horas do dia ultrapassava o limite de consumo dirio
calculado pelo algoritmo, as cargas permaneceram desligadas durante as primeiras

46

horas. O acionamento das mesmas se deu de maneira gradual medida que as


horas passaram.
Tabela 14 - Resultados de Parametrizao
Horrio

Data
24/10/201

Consumo

00:59

4
24/10/201

5,956 x10-2

4
24/10/201

6,000 x10-2

4
24/10/201

5,982 x10-2

4
24/10/201

6,002 x10-2

4
24/10/201

6,007 x10-2

4
24/10/201

6,042 x10-2

4
24/10/201

5,977 x10-2

4
24/10/201

5,882 x10-2

4
24/10/201

5,832 x10-2

4
24/10/201

5,892 x10-2

4
24/10/201

5,781 x10-2

4
24/10/201

5,799 x10-2

4
24/10/201

5,562 x10-2

4
24/10/201

5,502 x10-2

4
24/10/201

5,433 x10-2

4
24/10/201

5,458 x10-2

5,601 x10-2

01:59
02:59
03:59
04:59
05:59
06:59
07:59
08:59
09:59
10:59
11:59
12:59
13:59
14:59
15:59
16:59

Unidade
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh

47

24/10/201
17:59
18:59
19:59
20:59
21:59
22:59
23:59
TOTAL

kWh

4
24/10/201

5,594 x10-2

4
24/10/201

5,722 x10-2

4
24/10/201

5,622 x10-2

4
24/10/201

5,655 x10-2

4
24/10/201

5,655 x10-2

4
24/10/201

2,534 x10-2

4
24/10/201

5,760 x10-2

kWh
kWh
kWh
kWh
kWh
kWh
kWh
1,3525
Nota: Elaborado pelo autor.

Em alguns momentos ocorreram oscilaes na leitura dos sensores, o que


ocasionou um aumento no consumo lido pelo dispositivo, este aumento provocou
desligamento das cargas.
Aps as 17:00 quando o algoritmo identificou que a estimativa no
ultrapassaria o limite dirio calculado mesmo aps religar uma das cargas, esta
carga foi religada, provocando o aumento do consumo a partir deste horrio.
Quando foi identificado que o consumo no ultrapassaria o limite mesmo com
as duas cargas ligadas simultaneamente, o dispositivo religou a segunda carga (s
19:00 o que provocou, mais uma vez o aumento no consumo.
Na terceira etapa em que somente o dispositivo permaneceu ligado como
uma carga essencial do ambiente, os consumo do mesmo, Tabela 16, pode-se
perceber que com o dispositivo em funcionamento o consumo ainda apresentou
reduo.
Tabela 15 - Consumo de energia com chaveamento
Horrio

Data
22/10/201

Consumo

00:59*
01:59*

4
22/10/201

2,933 x10-2
3,059 x10-2

Unidade
kWh
kWh

48

4
22/10/201
02:59*
03:59*
04:59*
05:59*
06:59*
07:59*
08:59
09:59
10:59
11:59*
12:59
13:59
14:59
15:59
16:59**
17:59**
18:59**
19:59**
20:59**
21:59***

kWh

4
22/10/201

4,207 x10-2

4
22/10/201

7,170 x10-2

4
22/10/201

7,542 x10-2

4
22/10/201

7,757 x10-2

4
22/10/201

7,892 x10-2

4
22/10/201

3,686 x10-2

4
22/10/201

6,813 x10-3

4
22/10/201

6,733 x10-3

4
22/10/201

6,655 x10-3

4
22/10/201

1,687 x10-2

4
22/10/201

6,854 x10-3

4
22/10/201

8,594 x10-3

4
22/10/201

8,832 x10-3

4
22/10/201

9,043 x10-3

4
22/10/201

1,121 x10-2

4
22/10/201

1,496 x10-2

4
22/10/201

1,370 x10-2

4
22/10/201

2,872 x10-2

4
22/10/201

2,949 x10-2
5,600 x10-2

kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh

49

4
22/10/201
22:59***
23:59***
TOTAL

kWh

4
22/10/201

5,757 x10-2

4
22/10/201

5,810 x10-2

7,8262 x10-1

kWh
kWh
Nota: Elaborado pelo autor

*Oscilao na leitura de corrente


**Apenas uma das cargas foi acionada novamente
***Ambas as cargas foram acionadas novamente.

Comparando as trs tabelas (Tabelas 14, 15 e 16) atravs do grfico de


consumo/hora, Figura 17, pode-se notar que, no perodo apontado, houve reduo
no consumo final aps a aplicao do dispositivo. Nestas condies, a reduo do
consumo para o perodo analisado foi de 28,42%, entretanto este percentual varia
conforme a quantidade de cargas essenciais (que nunca desligaro) e o limite de
consumo, esses parmetros so definidos pelo usurio e, portanto variam de
residncia para residncia.
Tabela 16 - Consumo do dispositivo
Horrio
00:59
01:59
02:59
03:59
04:59
05:59
06:59
07:59
08:59
09:59
10:59
11:59
12:59
13:59
14:59
15:59
16:59
17:59
18:59
19:59

Data
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014

Consumo
7,725 x10-3
7,736 x10-3
7,845 x10-3
7,835 x10-3
7,711 x10-3
7,747 x10-3
7,681 x10-3
7,671 x10-3
7,543 x10-3
7,522 x10-3
7,606 x10-3
7,702 x10-3
7,627 x10-3
7,389 x10-3
7,324 x10-3
7,310 x10-3
7,433 x10-3
7,407 x10-3
7,327 x10-3
7,162 x10-3

Unidade
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh
kWh

50

20:59
21:59
22:59
23:59
TOTAL

12/11/2014
12/11/2014
12/11/2014
12/11/2014
12/11/2014

7,186 x10-3
7,706 x10-3
8,970 x10-3
1,030 x10-2
1,8546 x10-1

kWh
kWh
kWh
kWh
kWh

Nota: Elaborado pelo autor.

Analisando-se o grfico, possvel perceber que, enquanto as cargas


permaneceram ligadas sem realizar o chaveamento das cargas, o consumo foi
praticamente constante. Aps a realizao do chaveamento das cargas, o consumo
se deu de maneira gradual ao longo do dia.
Comparando-se os consumos das trs etapas, Tabela 17 e Figura 18, pode-se
verificar que, mesmo com o dispositivo realizando o chaveamento e consumindo a
energia necessria para seu funcionamento, houve reduo no consumo de energia
eltrica.
Figura 17 - Grfico - Comparativo de Consumo/Hora

Comparativo - Consumo/Hora
0.100
0.080
0.060
0.040
0.020
Sem Chaveamento0.000
Comsumo (kWh)

Com Chaveamento

Horrio

Nota: Elaborado pelo autor.

Tabela 17 - Comparao de consumo dirio: Controlado x Sem controle


Consumo sem

Consumo

Consumo Controlado com

51

TOTAL

Controle
1,352

Controlado
7,826 x10-01

dispositivo
9,681 x10-01

(kWh)
Nota: Elaborado pelo autor.

Relacionando estes dados em um grfico, Figura 18, possvel visualizar as


diferenas entre os consumos, percebe-se que a variao entre o consumo
controlado puro (sem considerar o consumo do dispositivo, coluna verde) e o
consumo controlado com o consumo do dispositivo (coluna azul) menor do que a
variao entre este ltimo e o consumo sem controle (coluna vermelha).
Portanto verifica-se que mesmo com a utilizao do dispositivo que consome
energia eltrica obtm-se a reduo do consumo de energia eltrica residencial.
Figura 18 - Grfico - consumo de energia dirio: Controlado x Sem controle

Comparativo de consumo de energia eltrica

kWh

1.5000

Consumo sem
Controle

1.0000

Consumo
Controlado

0.5000

Consumo
Controlado com
dispositivo

0.0000
Consumo
Nota: Elaborado pelo autor.

Com base no perodo analisado possvel prever o consumo mensal (C M),


equao 4, nas situaes descritas.

(4)

Sendo Cd o consumo dirio.


Em termos absolutos, para o consumo de energia sem controle, se o
consumo dirio permanecer constante durante todo ms, ter-se-ia um consumo
mensal de aproximadamente 41kWh. Enquanto que, com o controle de consumo em

52

atividade o consumo mensal seria de aproximadamente 30kWh, Figura 19, uma


reduo de 28,42%.
Figura 19 - Grfico - Consumo mensal: Controlado x Sem controle

Comparativo de consumo mensal de energia e


45.00

40.00

35.00

30.00

Consu

25.00

Consu

Total (kWh)
20.00

15.00

10.00

5.00

0.00
Consumo

Nota:elaborado pelo autor.

53

CONCLUSO

Conclui-se que a utilizao deste tipo dispositivo promove a reduo no


consumo de energia eltrica nas residncias, entretanto, como o limite de consumo
mensal varivel de acordo com as preferncias do usurio, o percentual de
reduo varia conforme o ambiente em que aplicado o dispositivo.
Pde-se perceber uma reduo de 28,42% no consumo de energia eltrica,
equivalente a reduo de 11kWh no ms (de 41kWh para 30kWh), dadas as
condies utilizadas no teste. Entretanto, diversos fatores influenciam no percentual
de reduo, tais como: quantidade de cargas essenciais (que no podem ser
desligadas); limite de consumo mensal alto; tempo de utilizao das cargas; dentre
outros.
Com o dimensionamento correto, tanto na seleo dos sensores quanto na
configurao realizada pelo consumidor e dado seu custo no muito elevado, o
dispositivo mostrou ser uma alternativa vivel para a reduo do consumo de
energia eltrica evitando o desperdcio e contribuindo para o uso eficiente da energia
eltrica.
5.1

PROPOSTAS PARA TRABALHOS FUTUROS

Tm-se como possibilidades para projetos futuros a otimizao das funes


presentes no dispositivo, desde melhoria na preciso e calibrao dos sensores
melhorias no design.
Tambm possvel ampliar as funcionalidades do dispositivo, tais como operar
em faixas de horrio definidas pelo usurio, aplicao mais sensores para realizar o
chaveamento inteligente das cargas, baseando no apenas nas prioridades, mas
tambm no consumo de cada carga, utilizao de outros tipos de sensores para
ampliar as reas de aplicao do dispositivo.

54

REFERNCIAS
ACS712: Fully Integrated, Hall-Effect-Based Linear Current Sensor Ic With 2.1 Kvrms
Voltage Isolation And A Low-Resistance Current Conductor. Allegro microsystems,
c2006-2013. Disponvel em: <http://www.allegromicro.com/en/products/currentsensor-ics/zero-to-fifty-amp-integrated-conductor-sensor-ics/acs712.aspx>. Acesso
em: 03 maio 2014.
Agncia Nacional de Energia Eltrica (Brasil) (ANEEL). Atlas de energia eltrica do
Brasil. 3. ed. Braslia: ANEEL, 2008a. Disponvel em:
<http://www.aneel.gov.br/arquivos/PDF/atlas3ed.pdf >. Acesso em: 01 mar. 2014.
Agncia Nacional de Energia Eltrica (Brasil) (ANEEL). Por dentro da conta de luz:
informao de utilidade pblica. 4. ed. Braslia: ANEEL, 2008b. 32p.
Agncia Nacional de Energia Eltrica (Brasil) (ANEEL). Tarifas de fornecimento de
energia eltrica. Braslia : ANEEL, 2005. 30p. Disponvel em:
<http://www.aneel.gov.br/arquivos/pdf/caderno4capa.pdf>. Acesso em:
ANDREOLI, A. L.. Controlador de demanda e fator de potncia de baixo custo
para unidades consumidoras de energia eltrica. 2005. 217 f. Dissertao
(Mestrado em Engenharia Industrial) - Faculdade de Engenharia. Universidade
Estadual Paulista, Bauru, SP, 2005.
ARDUINO Mega 2560. Arduino, c2014a. Disponvel em:
<http://arduino.cc/en/Main/arduinoBoardMega2560>. Acesso em: 10 out. 2014.
ARDUINO Development Environment. Arduino, c2014b. Disponvel em:
<http://arduino.cc/en/Guide/Environment>. Acesso em: 04 maio 2014.
ARDUINO TFT Screen. Arduino, c2014c. Disponvel em: <
http://arduino.cc/en/Main/GTFT>. Acesso em: 18 jul. 2014.
BANZI, M. Primeiros passos com Arduino. 1 ed. [So Paulo]: Novatec, 2011.

55

BERNDT, E. R.. The demand for electricity: structural and time series approaches. In:
______. The practice of Econometrics: classic and contemporary. [S.I.] AddisonWesley Publishing Company, 1991. Cap 7, p.306-337, 702p.
BICALHO, R.. A energia dos BRICs. Blog Infopetro, c2013. Disponvel em:
http://infopetro.wordpress.com/2013/01/07/a-energia-dos-brics/. Acesso em: 01 mar.
2014.
BP GLOBAL. BP Statistical Review of World Energy June 2014, c1996-2014.
Disponvel em: < http://www.bp.com/content/dam/bp/pdf/Energyeconomics/statistical-review-2014/BP-statistical-review-of-world-energy-2014electricity-section.pdf>. Acesso em: 18 jul. 2014.

BRASIL. Ministrio de Minas e Energia. Plano Nacional de Energia 2030. Braslia:


MME: EPE, 2007. Disponvel em: < http://www.epe.gov.br/PNE/20080512_1.pdf>.
Acesso em: 19 jun 2014.
BRASIL. Ministrio de Minas e Energia. Anurio estatstico de energia eltrica
2013. Rio de Janeiro: MME: EPE, 2013. Disponvel em:
<http://www.epe.gov.br/AnuarioEstatisticodeEnergiaEletrica/20130909_1.pdf>.
Acesso em: 20 fev. 2014.
CCK Automao Ltda. Aplicao. CCK Automao, [c2006?]b. Disponvel em: <
http://www.cck.com.br/sistema/demanda.php>. Acesso em: 06 abr. 2014.
CCK Automao Ltda. Empresa. CCK Automao, [c2006?]a. Disponvel em:
<http://www.cck.com.br/home/empresa.php>. Acesso em: 06 abr. 2014.
CPFL Energia. Informativo: Programa Baixa Renda. Campinas, SP: CPFL
Energia, [2008]. Disponvel em:
<http://www.cpfl.com.br/Portals/2/pdf/Informativo_Baixa_renda_31709.pdf>. Acesso
em: 13 abr. 2014.

56

CREDER, H. Instalaes eltricas. 15 ed. Rio de Janeiro: LTC, 2012.


DS1302: Trickle-Charge Timekeeping Chip. Maxim Integrated, c2008. Disponvel
em: <http://www.hobbytronics.co.uk/datasheets/DS1302.pdf>. Acesso em: 26 out.
2014.
ESKELAND, G. S.; MIDEKSA, T.K. Electricity demand in a changing climate. Mitig
Adapt Strateg Glob Change, v.15, p.877-897, 2010.
ESPECIALISTA global na gesto de energia. SCHNEIDER ELECTRIC. Disponvel
em: <http://www.schneider-electric.com.br/sites/brasil/pt/empresa/perfil/quemsomos/quem-somos.page>. Acesso em: 06 ABR. 2014.
GESTAL GESTO DE ENERGIA E UTILIDADES. GESTAL. Disponvel em:
<http://www.gestal.com/new>. Acesso em: 06 abr. 2014.
SPECIFICATION FOR LCD MODULE. Huanan Electronic Technology Co.,Ltd,
[2012]. Disponvel em: <http://arduino.cc/en/uploads/Main/HTF0177SN-01-PEC.pdf>.
Acesso em: 18 jul. 2014.
INSTITUTO BRASILEIRO DE GEOGRAFIA E ESTATSTICA. IBGE. Resultados do
censo demogrfico 2010. Disponvel em: <
http://www.censo2010.ibge.gov.br/painel/>. Acesso em: 13 abr. 2014.
International Energy Agency. Energy Statistics of NON-OECD Countries. Paris,
Frana, 2012. 750f. Disponvel em:
<http://www.iea.org/media/training/presentations/statisticsmarch/StatisticsofNonOEC
DCountries.pdf>. Acesso em: 27 fev. 2014.
International Energy Agency. Key World Energy Statistics 2013. Paris, Frana,
2013. 80f. Disponvel em:
<https://www.iea.org/publications/freepublications/publication/kwes.pdf>. Acesso em:
27 fev. 2014.

57

LABORATRIO DE GARAGEM. Sensor de corrente ACS712. Laboratrio de


Garagem, c2012. Disponvel em: <http://www.labdegaragem.org/loja/sensor-decorrente-acs712.html>. Acesso em: 23 maio 2014.
LUCON, O. ; GOLDEMBERG, J.. Crise financeira, energia e sustentabilidade no
Brasil. Estudos avanados, So Paulo, v.23, n.65, p.121-130, 2009.
NEGRISOLI, M. E. M. Instalaes eltricas: projetos prediais em baixa tenso. 3
ed. So Paulo: Edgard Blcher, 1987.
NISKIER, J. ; MACINTYRE, A. J. Instalaes Eltricas. 5 ed. Rio de Janeiro: LTC,
2008.
OPTOCOUPLER, Phototransistor Output, with Base Connection. Vishay
Semiconductors, [c2014?]. Disponvel em:
<http://www.vishay.com/docs/83725/4n25.pdf>. Acesso em: 03 maio 2014.
PAULA, G. J. de. Medidor de demanda de energia eltrica residencial com
acesso remoto. 2013. 62 f. Monografia (Bacharelado em Engenharia de
Computao) Faculdade de Tecnologia e Cincias Sociais Aplicadas. Centro
Universitrio de Braslia, Braslia, DF, 2013.
RELATRIO anual 2010. CPFL Energia, [2011?]. Disponvel em: <
http://mrm.comunique-se.com.br/arq/160/arq_160_219076.pdf>. Acesso em: 15 mar.
2014.
ROBOCORE. Mdulo Rel. Robocore, c2014. Disponvel em:
<https://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=258>. Acesso
em: 23 maio 2014.
ROSA, L. P.. Gerao hidreltrica, termeltrica e nuclear. Estudos avanados, So
Paulo, v.21 n.59, p.39-58, 2007.

58

SHIMIDT, C. A. J. ; LIMA, M. A. M. A Demanda por Energia Eltrica no Brasil. RBE,


Rio de Janeiro, v.58, n.1, p.67-98, 2004.

59

APNDICE A ESQUEMA ELTRICO DO DISPOSITIVO

60

APNDICE B CDIGO FONTE


//################################################
############################//#
UNIVERSIDADE DO SAGRADO CORAO
//#
//#

CENTRO DE CINCIAS EXATAS E SOCIAIS APLICADAS


CURSO DE ENGENHARIA DE COMPUTAO

//#===============================================
============================
//# PROGRAMA - CONTROLE DE CONSUMO DE ENERGIA ELTRICA
//# ORIENTADOR: ALEXANDER DA SILVA MARANHO
//# AUTOR: VINCIUS ROSSI BSCOA
//################################################
############################
//Incluso das bibliotecas
#include <Time.h>
#include <SD.h>
#include <SPI.h>
#include <TFT.h>
#include <DS1302RTC.h>
//################################################
############################
//Definir Constantes
//Pinos de entrada dos sensores
#define pin_tensao A0
#define pin_corrente A1
#define button_pin A5
#define qtde_amostras 1000
//Pinos do microSD e da tela TFT
#define miso

50

#define sck

52

#define mosi

51

#define sd_cs

#define lcd_cs

10

61

#define dc

#define rst

#define bl

//Pinos do DS1302
#define RST

#define DAT

#define CLK

22

//################################################
############################
//Declarao das variveis globais
int info_cargas[5][3] = {};

//Vetor que armazena informaes de cada


carga:porta

//prioridade (de 0 a 3) e estado (0 - Desligado ou 1 - Ligado)


//Clculo e comparao
float corrente = 0.0, tensao = 0.0, valor = 0.0, limite = 0.0, limite_dia = 0.0,
est_con_ant = 0.0, est_con_dia = 0.0, est_con_hora = 0.0, total_cargas = 0.0;
float kwhDia = 0.0, kwHora = 0.0, kwhMes = 0.0, max_tensao, min_tensao;
float consumo_carga[5] = {0.0, 0.0, 0.0, 0.0, 0.0};
bool desligou = false, mudou_hora = false, mudou_dia = false, ligou = false;
//Variveis manipulao de vetores.
int prioridade = -1, minimo, temp0, temp1, temp2, c_loop = 4, param = 1, indice
= 0, cont = 0, cont_ant = 0,qtde_ligada = 0;
//Manipulao de tempo
int ano, dia, mes, hora, minutos, ano_a, dia_a, mes_a, hora_a, minuto_a,
total_dias;
//Potencia consumida
double kwhTotal, kwhParcD, kwParcH, kwhInst = 0.0, kwhInst2 = 0.0;
//Temporizadores do Arduino
time_t horario_atual, horario_anterior;
unsigned long intervalo;

62

//Manipulao de menus/botes
int botao, leitura, menu_cont = 0, select_button = 0;
//String para armazenar o texto a ser mostrado na TFT
String txt_tela = String();
//Arquivos
File conf, totalkwh, tempfile;
//Tela
TFT tela = TFT(lcd_cs, dc, rst);
//RTC - Real Time Clock
DS1302RTC RTC(RST, DAT, CLK);
//Variveis para calculo de corrente
const unsigned long sampleTime = 100000UL;

// Amostragem

durante 100ms, nmero exato de ciclos para fontes de 50Hz e 60 Hz


const unsigned long numSamples = 1000UL;

// nmero de

amostras para dividir sampleTime exatamente, mas baixo o suficiente para ADC
manter salvo
const unsigned long sampleInterval = sampleTime/numSamples;

//

Intervalo de amostragem, deve ser mais longo que o tempo de converso do ADC
const int adc_zero = 509;

// Zero digital relativo do

sinal de entrada do ACS712 no arduino (sem auto ajuste)


//################################################
############################
//Declarao das funes
void desliga_carga(int carga);

//Ativa rel (desliga


Carga)

void liga_carga (int carga);

//Desativa rel (liga


Carga)
void limpa_menu();
void trata_botao2();

63

void trata_botao_prioridade();
void pisca_prioridade(int indice);
void pisca_parametro(int parametro);
void ordena();

//Ordena o vetor info_cargas

void trata_botao();

//Aguarda at o boto ser


solto para realizar a leitura

void atualiza_menu();

//Atualiza menu com base


nas leituras dos botes

void menus();

//Mostra menu
correspondente

void mostra2digitos(int numero);

//Mostra dois digitos

na tela (para valores <10)


void grava2digitos (int numero);

//Grava dois digitos no

arquivo (para valores < 10)


void mostra_data();

//Mostra data completa na


tela (formato: dd/mm/aaaa hh:mm)

void gravar_dados(String arquivo, float dado);


long readVcc();
void trata_botao3();
//Fim declarao das funes
// FUNES PRINCIPAIS DO ARDUINO
//Parametros iniciais do Arduino (executada aps ligar/reiniciar o
microcontrolador)
void setup() {
tela.begin();

//Inicia Tela

tela.background(195, 195, 195);

//Define plano de fundo


na cor cinza

analogReference(EXTERNAL);

//Define a referencia analogica como externa (no


circuito, 5V)

pinMode (4, OUTPUT);

//Define pino 4 (SD)


como Sada

setSyncProvider(RTC.get);

//Sincroniza o tempo
do RTC com o do Arduino

64

if (timeStatus() == timeNotSet) {

//Testa se o tempo

est definido, se no estiver


tela.background(0, 0, 0);

//Muda o plano de fundo


para preto
}

if (!SD.begin(sd_cs)) {

//Evita parada do

programa caso o SD no seja encontrado


return;

//Requer reinicializao caso


um SD for inserido
}
if (SD.exists("limite.txt")) {
File lim = SD.open("limite.txt", FILE_READ);
String limite_tmp = String();
while (lim.available()) {
limite_tmp += lim.read() - '0';
}
char a_limite_tmp[limite_tmp.length() + 1];
limite_tmp.toCharArray(a_limite_tmp, sizeof(a_limite_tmp));
limite = atof(a_limite_tmp);
}
else {

//se no existir

File lim = SD.open("limite.txt",FILE_WRITE); //cria arquivo em modo de escrita


if(lim){

//se criou
limite = 220;

lim.print(limite);
lim.close();

//grava valor 220

//fecha e salva o arquivo


}
}

//Carrega dados do SD para a memria do ARDUINO


// Testa se o arquivo "config.csv" existe no carto SD.
if (SD.exists("config.csv")) {

//Se existir

//inicia a leitura dos dados do SD


conf = SD.open("config.csv", FILE_READ);
"config.csv"

//Abre arquivo

65

int linha = 0;

//declara varivel controle de


linhas

int coluna = 0;

//declara varivel controle


de colunas

char caract;

//declara varivel controle


de dados (caractere lido)
String cp_lida = String ();

while (conf.available()) {

//Loop de leitura do

arquivo (caracter por caracter)


caract = conf.read();

//Le o caracter do arquivo


"config.csv"
//testa o conteudo da varivel

if (caract == '\n') {

//Se for '\n' (nova linha)


cp_lida = "";

if (linha < 4) {

//e linha for menor que 2

linha++;

//incrementa 1 linha
}

else {

//se a linha for maior que 2

linha = 0;

//reseta contagem das linhas;


}

coluna = 0;

//reseta a contagem de
colunas a cada nova linha
}

else if (caract == ';') {

//Se for ';'


cp_lida = "";

if (coluna < 2) {

//e a coluna for menor que


4

coluna++;

//incrementa 1 coluna
}

else {

//Se a contagem de colunas for


maior que 4

coluna = 0;

//reseta contagem de
colunas);
}
}
else {

66

if (caract != '\r') {

//Se no for '\r' (enter)


cp_lida += caract;

char a_cp_lida [cp_lida.length() + 1];


cp_lida.toCharArray(a_cp_lida, sizeof(a_cp_lida));
info_cargas[linha][coluna] = atoi(a_cp_lida);

//armazena o

valor do caracter-48 (tabela ascii) no vetor


}

//info_cargas nos indices linha e


coluna;
}
}

conf.close();

//Fecha o arquivo aps


leitura
}

else {

//Se o arquivo no existir

conf = SD.open("config.csv", FILE_WRITE);

//Cria o arquivo

de configurao
if (conf) {
int carga_novo = 30;
for (int l = 0; l < 5; l++) {
info_cargas[l][0] = carga_novo;
info_cargas[l][1] = 0;
carga_novo++;
}
for (int i = 0; i < 5; i++) {
conf.print(info_cargas[i][0]);
conf.print(";");
conf.print(info_cargas[i][1]);
conf.print('\n');
}
conf.close();

//Fecha o arquivo para salvar


}

//menu_p();

//Inicia o menu de
configurao
}

67

//Define os pinos dos sensores de corrente e tenso e dos botes como entrada
de dados.
pinMode (pin_corrente, INPUT);
pinMode (pin_tensao, INPUT);
pinMode (button_pin, INPUT);
//Define o pino de cada carga lida do SD como sada
for (int i = 0; i < 5; i++) {
pinMode(info_cargas[i][0], OUTPUT);
}
//Reseta o estado de cada carga para "ligado"
for (int aux = 0; aux < 5; aux++) {
liga_carga(info_cargas[aux][0]);
}
//Ordena as cargas a partir das prioridades definidas.
ordena();
//Carregar o valor total armazenado no SD
if (SD.exists("totalkwh.txt")) {

//Se o arquivo
existir

//inicia a leitura dos dados do SD


totalkwh = SD.open("totalkwh.txt", FILE_READ);
arquivo "totalkwh.txt"
if (totalkwh) {
String aux = String();
char digito;
while (totalkwh.available()) {
digito = totalkwh.read();
aux += digito;
}
char kw_h[aux.length() + 1];
aux.toCharArray (kw_h, sizeof(kw_h));
kwhTotal = (double)atof(kw_h);

//Abre

68

//kwhTotal = (totalkwh.read() - '0');

//Converte para

numero
}
totalkwh.close();

//Fecha arquivo aps a


leitura
}

else {

//Se o arquivo no existir

totalkwh = SD.open("totalkwh.txt", FILE_WRITE);

//Cria

arquivo "totalkwh.txt"
if (totalkwh) {
totalkwh.print("0.0");

//Insere o valor 0.0

totalkwh.close();

//E fecha para salvar


}
}

horario_atual = RTC.get();

//armazena hora

atual na varivel horario_atual


}// fim setup
//Funo de repetio do arduino que ser executada indefinidamente at que o
mesmo seja reiniciado/desligado
void loop() {
analogReference(EXTERNAL);
leitura = analogRead(button_pin);
atualiza_menu();
//Calcula o tempo desde a ltima medio:
horario_anterior = horario_atual;

//Atualiza a varivel

horario_anterior para horario_atual


horario_atual = RTC.get();

//Atualiza a varivel

horario_atual para o horario atual do arduino


intervalo = horario_atual - horario_anterior;
corrente = 0.0;
tensao = 0.0;
//Separa horario atual e anterior em dia, mes, ano, hora e minutos
ano = year(horario_atual);
dia = day(horario_atual);
mes = month(horario_atual);

69

hora = hour (horario_atual);


minutos = minute(horario_atual);
ano_a = year(horario_anterior);
dia_a = day(horario_anterior);
mes_a = month(horario_anterior);
hora_a = hour (horario_anterior);
minuto_a = minute(horario_anterior);
//Testa mes e ano para determinar a quantidade total de dias do mes
if (ano % 4 == 0 && mes == 2) {
total_dias = 29;
}
else if (ano % 4 != 0 && mes == 2) {
total_dias = 28;
}
else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
total_dias = 30;
}
else total_dias = 31;
//fim testa dia_mes_ano
//Calculo de corrente e tenso
unsigned long currentAcc = 0;

//cria e inicializa a varivel "currentAcc"


com valor zero

unsigned int count = 0;

//cria e inicializa o contador

unsigned long prevMicros = micros() - sampleInterval ; //cria e inicializa a


variavel prevMicros
//loop enquanto contador for menor que o numero de amostras
while (count < numSamples)
{
if (micros() - prevMicros >= sampleInterval)

//se for maior que o intervalo

de amostragem
{
tensao += analogRead(pin_tensao);

//le o pino de tenso e incrementa o

valor varivel

70

long adc_raw = analogRead(pin_corrente) - adc_zero; //le o pino da corrente,


subtrai 509
currentAcc += (unsigned long)(adc_raw * adc_raw); //corrente
++count;

//incrementa 1 ao
contador

prevMicros += sampleInterval; //incrementa o intervalo de amostragem


varavel
}
}
// valor rms da corrente e faz o ajuste com base nos parametros do sensor
(datasheet)
corrente = sqrt((float)currentAcc/(float)numSamples) * (75.7576 / 1024.0);
tensao = (tensao / numSamples); //faz a mdia do valor de tenso lido nas
amostras (1000)
tensao = tensao / 2.605;

//realiza o
ajuste na tenso

//Calcula o consumo em kWh


kwhInst2 = tensao * corrente;

//calcula potencia

instantanea (em W)
kwhInst = ((kwhInst2 / 1000.0) * (1.0 / 3600.0)); //calcula o consumo
instantaneo (em kWh)
kwhTotal += kwhInst;

//Armazena o consumo total


at o final do ms

kwhParcD += kwhInst;

//armazena o consumo total at o


final do dia

kwParcH += kwhInst;

//armazena o consumo total at o


final da hora

est_con_hora = kwhInst * 3600.0;

//estima o consumo da
hora

est_con_dia = est_con_hora * (24 - hora);

//estima o consumo do

dia
//verifica se alguma carga foi desligada/ligada
//se foi desligada
if (desligou) {

71

if (c_loop < 4) {
cont = c_loop +1;

//se c_loop for menor que 4 atribui c_loop+1


ao contador
}

else cont = c_loop;

//senao atribui c_loop ao contador

//consumo da carga na posio (contador) = est_con_ant est_con_dia


consumo_carga[cont] = est_con_ant - est_con_dia;
if (consumo_carga[cont] < 0) {

//se o consumo da carga for


negativo

consumo_carga[cont] = consumo_carga[cont] * -1;

//inverte o sinal da

carga
}
est_con_ant = 0.0;

//zera a estimativa de consumo


anterior

desligou = false;

//muda estado de "desligou" para


falso
}
//se foi ligada
else if (ligou) {
if (c_loop > 0){

cont = c_loop - 1;

//se c_loop for maior que zero atribui c_loop1 ao contador


}

else cont = 0;

//senao contador = c_loop

consumo_carga[cont] = 0.0;

//consumo da carga na posio (contador)


zerada

est_con_ant = 0.0;

//zera a estimativa de consumo


anterior

ligou = false;

//muda flag "ligou" para false


}
//se nao foi ligada nem desligada
else{

cont = c_loop;

//contador recebe c_loop

consumo_carga[cont] = 0.0;
posio (contador) zero

//consumo da carga na

72

est_con_ant = 0.0;

//zera a estimativa de consumo


anterior
}
//se mudou o minuto atual
if (minutos != minuto_a) {

totalkwh = SD.open("totalkwh.txt", FILE_WRITE);

//Abre o arquivo

"totalkwh.txt" no
//modo de escrita
if (totalkwh) {

//Testa se o arquivo foi aberto


corretamente

unsigned long posicao = tempfile.position();

//armazena a posio

atual do cursor
for (int i = posicao; i >= 0; i--) {

//para cada

posio do cursor
totalkwh.seek(i);

//move cursor para a


posio

totalkwh.write("");

//apaga o contedo
}

totalkwh.seek(0);

//retorna posio 0

totalkwh.print(kwhTotal, DEC);

//grava o valor
de kwhTotal
}

totalkwh.close();

//fecha e salva o
arquivo
}

//Testa se a hora atual mudou, se sim grava dados no arquivo


if (hora != hora_a) {
kwHora = kwParcH;

//Armazena consumo
atual na varivel kwHora

//est_con_dia = kwHora * (24 - hora_a);


String arquivo = String();
//arquivo = "PH_";

//Armazena dados sem


chaveamento
arquivo = "RH";

73

arquivo += String(dia_a);
arquivo += String(mes_a);
arquivo += ".txt";
gravar_dados(arquivo, kwHora);
kwParcH = 0;
}//fim hora_mudou
//Testa se o dia atual mudou, se sim grava dados no arquivo
if (dia != dia_a) {
kwhDia = kwhParcD;

//Armazena o consumo atual na


varivel kwhDia
String arquivo = String();
arquivo = "RD";
arquivo += String (mes_a);
arquivo += String (ano_a);
arquivo += ".txt";
gravar_dados(arquivo, kwhDia);
kwhParcD = 0;
}//fim dia_mudou

//Testa se o ms mudou, se sim grava dados no arquivo e zera o consumo total


if (mes != mes_a) {
kwhMes = kwhTotal;

//Armazena consumo atual na


varivel kwhMes
String arquivo = String();
arquivo = "RM";
arquivo += String(ano_a);
arquivo += ".txt";
gravar_dados(arquivo, kwhMes);
kwhMes = 0;
kwhTotal = 0;
}//fim mes_mudou

//liga todas as cargas com prioridade 0 que esto desligadas (caso haja
alterao pelo usurio em tempo de execuo)
for (int i; i < 5; i++) {
if (info_cargas[i][1] == 0 && info_cargas[i][2] == 0) {

74

liga_carga(info_cargas[i][0]);
}
if (info_cargas[i][1] != 0 && c_loop < i && info_cargas[i][2] == 1){
desliga_carga(info_cargas[i][0]);
consumo_carga[i] = 0.0;
}
}//fim ligar cargas com prioridade 0
//Estima o limite de consumo do dia
if ((limite - kwhTotal > 0) && (total_dias - dia <= 0)) {
limite_dia = limite - kwhTotal;
}
else if ((limite - kwhTotal > 0) && (total_dias - dia > 0)) {
limite_dia = (limite - kwhTotal) / (total_dias - dia);
}
else {
limite_dia = 0.0;
}// fim estimativa
int i = c_loop;
// Teste para limite de consumo
if (est_con_dia >= limite_dia) {

//Se o consumo for maior que o limite

est_con_ant = est_con_dia;
//Se a prioridade da carga atual for diferente de 0
if (info_cargas[c_loop][1] != 0 && info_cargas[c_loop][2] == 1)
{

desliga_carga(info_cargas[c_loop][0]);

//Desliga

a carga atual
desligou = true;
}
c_loop--;

//decrementa 1 de
c_loop

if (c_loop <= 0) {

//Testa se o c_loop
0e

c_loop = 0;
}
}
//se diferenca do consumo + consumo atual for maior que o limite

75

else if (consumo_carga[i+1] + est_con_dia >= limite_dia) {


return;
}
else {

//se nenhuma das condies anteriores


for satisfeita

c_loop++;

//Incrementa 1 ao c_loop

if (c_loop >= 4) {

//Se c_loop for 4


c_loop = 4;
}

if (info_cargas[c_loop][1] !=0 && info_cargas[c_loop][2] == 0){


liga_carga(info_cargas[c_loop][0]);

//liga a carga

atual
ligou = true;
}
}
}// fim loop
/
*################################################
##########################*/
/*#

FUNES UTILIZADAS NO PROGRAMA


#*/
/

*################################################
##########################*/
// Funo para ativar rel (desligar carga)
void desliga_carga(int carga) {
for (int i = 0; i < 5; i++) {
if (info_cargas[i][0] == carga) {
digitalWrite (carga, HIGH);
info_cargas[i][2] = 0;
}
}
}//fim desliga_carga

76

// Funo para desativar rel (ligar carga)


void liga_carga (int carga) {
for (int i = 0; i < 5; i++) {
if (info_cargas[i][0] == carga) {
digitalWrite(carga, LOW);
info_cargas[i][2] = 1;
}
}
}//fim liga_carga
//Funo ordena matriz carga_prioridade [fixo]
void ordena() {
for (int i = 0 ; i < 5; i++)
{
minimo = i;
for (int j = (i + 1); j <= 4; j++)
{
if (info_cargas[j][1] < info_cargas[minimo][1])
{
minimo = j;
}//if
}//for
temp0 = info_cargas[i][0];
temp1 = info_cargas[i][1];
temp2 = info_cargas[i][2];
info_cargas[i][0] = info_cargas[minimo][0];
info_cargas[i][1] = info_cargas[minimo][1];
info_cargas[i][2] = info_cargas[minimo][2];
info_cargas[minimo][0] = temp0;
info_cargas[minimo][1] = temp1;
info_cargas[minimo][2] = temp2;
}//for
}// fim ordena()
/* Funo de Manipulao de Menus*/
void atualiza_menu() {

77

if (leitura > 660 && leitura <= 690) {

//Se for apertado o

boto de seleo
select_button = 1;
}
else if (leitura > 710 && leitura <= 740) {

//se for pressionado o

boto "baixo"
menu_cont++;

//incrementa 1 ao
contador de menus
}

else if (leitura > 835 && leitura <= 865) {

//se for pressionado o

boto "cima"
menu_cont--;

//decrementa 1 ao
contador de menus
}

trata_botao();

//aguarda boto ser solto

menus();

//exibe os menus na tela


}//fim atualiza_menu

//Funo de exibio e manipulao de menus


void menus() {
//testa o menu atual
if (menu_cont == 0) {
limpa_menu();

//funo para limpar os

dados existentes na tela antes de montar o menu atual


txt_tela = "";
txt_tela = "Monitor de Consumo\n";

//armazena texto na

variavel
txt_tela += " ";
txt_tela += String(kwhTotal, DEC);

//converte o valor da varivel

kwhTotal para string


txt_tela += " kWh";

//concatena texto na
varivel
txt_tela += "\n Corrente\n";
txt_tela += " ";
txt_tela += String (corrente, DEC);

78

txt_tela += " A";


txt_tela += "\n Tensao\n";
txt_tela += " ";
txt_tela += String (tensao, DEC);
txt_tela += " V";
txt_tela += "\n Estimativa de Consumo\n";
txt_tela += " ";
txt_tela += String(est_con_dia, DEC);
txt_tela += " kWh";
txt_tela += "\n Limite de Consumo Diario\n";
txt_tela += " ";
txt_tela += String(limite_dia, DEC);
txt_tela += " kWh";
txt_tela += "\n Limite de Consumo Mensal\n";
txt_tela += " ";
txt_tela += String(limite, DEC);
txt_tela += " kWh";
if (timeStatus() != timeNotSet) {

//se o horrio foi

configurado exibe tambm data e hora


txt_tela += "\n\n";

//concatena texto na
varavel
txt_tela += " ";

mostra_data();

//chama funo para


exibio de data
}

char a_txt_tela[txt_tela.length() + 1];

//cria variavel vetor

de caracteres com o tamanho da string


txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));

//converte a

varivel string para vetor de caracteres


tela.text(a_txt_tela, 5, 10);

//exibe texto do array


de caracteres na tela

if (select_button == 1) {

//se o boto de seleo


for apertado

select_button = 0;

//retorna estado para 0


}//fim if
}//fim menu_cont = 0

79

else if (menu_cont == 1) {
limpa_menu();
txt_tela = "Prioridades\n\n";

//armazena texto na
variavel

if (select_button == 1) {

//testa se o botao de
seleo foi pressionado

while (select_button == 1) {

//enquanto o boto

no for pressionado novamente


leitura = analogRead(button_pin);

//le porta dos

botes
limpa_menu();
txt_tela = "Prioridades\n\n";

//armazena texto na
variavel

txt_tela += "|Carga |\t|Prioridade|\n";

//concatena a

matriz de prioridade/carga na string txt_tela


txt_tela += " -------------------";
for (int i = 0; i < 5; i++) {
txt_tela += "\n| ";
txt_tela += String(info_cargas[i][0]);
txt_tela += " |\t|

";

txt_tela += String(info_cargas[i][1]);
txt_tela += "

|\n";

txt_tela += " -------------------";


}
char a_txt_tela[txt_tela.length() + 1];
caracteres

//cria vetor de

txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));

//converte a

varivel txt_tela para vetor


tela.stroke(0, 0, 0);

//define a cor da linha para


preto - RGB(0,0,0)

tela.text(a_txt_tela, 5, 10);

//mostra texto na
tela

trata_botao_prioridade();

//funo que aguarda o boto ser


pressionado

if (leitura > 710 && leitura <= 740) {


pressionado

//Se boto "baixo" for

80

tela.background(195, 195, 195);


indice++;

//incrementa 1 ao indice

if (indice > 4) {

//se o indice for maior


que 4

indice = 0;

//retorna ao primeiro
indice (0)
}
}

else if (leitura > 835 && leitura <= 865) {

//Se o boto "cima" for

pressionado
tela.background(195, 195, 195);
indice--;

//decrementa 1 do indice

if (indice < 0) {

//se o ndice for menor


que zero

indice = 4;

//salta para o ltimo


ndice
}
}

else if (leitura > 910 && leitura <= 940) {

//se o boto "direita" for

pressionado
tela.background(195, 195, 195);
info_cargas[indice][1]++;

//incrementa 1 ao nvel de

prioridade da carga
if (info_cargas[indice][1] > 3) {

//se a prioridade da carga for

maior que 3
info_cargas[indice][1] = 0;

//salta a prioridade para 0


}
}

else if (leitura > 770 && leitura <= 800) {

//se o boto "esquerda for

pressionado
tela.background(195, 195, 195);
info_cargas[indice][1]--;

//decrementa 1 ao nivel de

prioridade da carga
if (info_cargas[indice][1] < 0) {

//se o nvel de prioridade for

menor que zero


info_cargas[indice][1] = 3;

//salta a prioridade para 3

81

}
}
else if (leitura > 660 && leitura <= 690) {

//Se for apertado o

boto "confirma"
select_button = 0;

//inverte o estado do
boto de seleo

trata_botao();

//funo que aguarda o


boto ser solto

ordena();

//ordena o vetor
atualizado

if (SD.exists("config.csv")) {

//verifica a existencia do arquivo


"config.csv"

SD.remove("config.csv");

//se existir, remove o


arquivo

conf = SD.open("config.csv", FILE_WRITE);

//cria novamente o

arquivo
for (int i = 0; i < 5; i++) {

//para cada posio


da matrz

conf.print(info_cargas[i][0]);

//grava no arquivo a carga (porta do


rel)

conf.print(";");

//ponto-e-virgula
separao em colunas

conf.print(info_cargas[i][1]);

//nvel de prioridade da

carga em questo
conf.print('\n');

//nova linha
}

conf.close();

//fecha arquivo para


salvar
}

//Se no existir cria o arquivo para gravao e executa os mesmos


procedimentos
else {
conf = SD.open("config.csv", FILE_WRITE);
for (int i = 0; i < 5; i++) {
conf.print(info_cargas[i][0]);
conf.print(";");

82

conf.print(info_cargas[i][1]);
conf.print('\n');
}
conf.close();
}
tela.background(195, 195, 195);

//limpa a tela

}//fim if confirma
}//fim while
}//fim if select_button
char a_txt_tela[txt_tela.length() + 1];

//cria vetor de

caracteres
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela)); //converte a varivel
txt_tela para vetor
tela.stroke(0, 0, 0);

//define a cor da linha para


preto - RGB(0,0,0)

tela.text(a_txt_tela, 5, 10);

//mostra texto na tela


}//fim menu_cont 1

else if (menu_cont == 2) {
limpa_menu();

//limpa o menu
txt_tela = "Data/Hora\n\n\n";
char a_txt_tela[txt_tela.length() + 1];

txt_tela.toCharArray (a_txt_tela, sizeof(a_txt_tela));


tela.stroke(0, 0, 0);
tela.text (a_txt_tela, 5, 10);
if (select_button == 1) {

//se acessou o menu


"data/hora"

while (select_button == 1) {

//enquanto no salvar a
data/hora atual

leitura = analogRead(button_pin);
limpa_menu();

//le boto
//limpa a tela

txt_tela += "Data/Hora\n\n\n\n\n\n";

//exibe titulo do

menu
mostra_data();

//mostra a data atual

char a_txt_tela[txt_tela.length() + 1];


caracteres

//converte para vetor de

83

txt_tela.toCharArray (a_txt_tela, sizeof(a_txt_tela));

//e exibe

informaes na tela
tela.stroke(0, 0, 0);
tela.text (a_txt_tela, 5, 10);
//pisca_parametro(param);
trata_botao2();

//aguarda boto ser


pressionado

if (param == 1) {

//se o parametro for 1


(dia)

leitura = analogRead(button_pin);
trata_botao2();

//le boto
//aguarda boto ser

pressionado
if (leitura > 910 && leitura <= 940 ) {

//se boto

pressionado for "direita"


tela.background(195, 195, 195);
param++;

//limpa tela
//incrementa 1 ao

parametro
if (param > 5) {

//se parametro maior


que 5

param = 1;

//retorna ao primeiro
parametro
}
}

else if (leitura > 770 && leitura <= 800) {

//se boto

pressionado for "equerda"


tela.background(195, 195, 195);
param--;

//limpa tela
//decrementa 1 do

parametro
if (param < 1) {

//se parametro for


menor que 1

param = 5;

//salta ao ultimo
parametro
}
}

else if (leitura > 660 && leitura <= 690) {


"confirma" for pressionado

//se boto

84

setTime(hora, minutos, 0, dia, mes, ano);

//atualiza data/hora do

arduino
RTC.set(now());

//ajusta horrio
atualizado ao rtc

select_button = 0;

//muda estado do boto de seleo para voltar


seleo de menus

trata_botao();

//aguarda boto ser


solto

tela.background(195, 195, 195);

//limpa tela
}

else if (leitura > 835 && leitura <= 865) {

//se boto

pressionado for "cima"


tela.background(195, 195, 195);
dia++;

//incrementa 1 a variavel
dia

//Faz todos os testes para limites da quantidade de dias dependendo do


mes/ano
if (mes == 2 && ano % 4 != 0) {
if (dia > 28) {
dia = 1;
}
}
else if (mes == 2 && ano % 4 == 0) {
if (dia > 29) {
dia = 1;
}
}
else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
if (dia > 30) {
dia = 1;
}
}
else if (dia > 31) {
dia = 1;
}
}//fim dos teste

85

else if (leitura > 710 && leitura <= 740) {

//se o boto

pressionado for "baixo"


tela.background(195, 195, 195);
dia--;

//decrementa 1 ao dia

//Faz todos os testes para limites da quantidade de dias dependendo do


mes/ano
if (mes == 2 && ano % 4 != 0) {
if (dia < 1) {
dia = 28;
}
}
else if (mes == 2 && ano % 4 == 0) {
if (dia < 1) {
dia = 29;
}
}
else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
if (dia < 1) {
dia = 30;
}
}
else if (dia < 1) {
dia = 31;
}
}
}//fim param 1
//se o parametro for 2 (mes)
//realiza os mesmos procedimentos para o menu do dia
else if (param == 2) {
leitura = analogRead(button_pin);
trata_botao2();
if (leitura > 910 && leitura <= 940 ) {
tela.background(195, 195, 195);
param++;
if (param > 5) {
param = 1;

86

}
}
else if (leitura > 770 && leitura <= 800) {
tela.background(195, 195, 195);
param--;
if (param < 1) {
param = 5;
}
}
else if (leitura > 660 && leitura <= 690) {
setTime(hora, minutos, 0, dia, mes, ano);
RTC.set(now());
select_button = 0;
trata_botao();
tela.background(195, 195, 195);
}
else if (leitura > 835 && leitura <= 865) {
tela.background(195, 195, 195);
mes++;
if (mes > 12) {
mes = 1;
}
}
else if (leitura > 710 && leitura <= 740) {
tela.background(195, 195, 195);
mes--;
if (mes < 1) {
mes = 12;
}
}
}//fim param 2
//se o parametro for 3 (ano)
//realiza os mesmos procedimentos anteriores
else if (param == 3) {
leitura = analogRead(button_pin);
trata_botao2();

87

if (leitura > 910 && leitura <= 940 ) {


tela.background(195, 195, 195);
param++;
if (param > 5) {
param = 1;
}
}
else if (leitura > 770 && leitura <= 800) {
tela.background(195, 195, 195);
param--;
if (param < 1) {
param = 5;
}
}
else if (leitura > 835 && leitura <= 865) {
tela.background(195, 195, 195);
ano++;
if (ano > 2037) {
ano = 1970;
}
}
else if (leitura > 710 && leitura <= 740) {
tela.background(195, 195, 195);
ano--;
if (ano < 1970) {
ano = 2037;
}
}
}// fim param 3
//se o parametro for 4 (hora)
//realiza os mesmos procedimentos anteriores
else if (param == 4) {
leitura = analogRead(button_pin);
trata_botao2;
if (leitura > 910 && leitura <= 940 ) {
tela.background(195, 195, 195);

88

param++;
if (param > 5) {
param = 1;
}
}
else if (leitura > 770 && leitura <= 800) {
tela.background(195, 195, 195);
param--;
if (param < 1) {
param = 5;
}
}
else if (leitura > 660 && leitura <= 690) {
setTime(hora, minutos, 0, dia, mes, ano);
RTC.set(now());
select_button = 0;
trata_botao();
tela.background(195, 195, 195);
}
else if (leitura > 835 && leitura <= 865) {
tela.background(195, 195, 195);
hora++;
if (hora > 23) {
hora = 0;
}
}
else if (leitura > 710 && leitura <= 740) {
tela.background(195, 195, 195);
hora--;
if (hora < 0) {
hora = 23;
}
}
}// fim param 4
//se o parametro for 5 (minutos)
//realiza os mesmos procedimentos anteriores

89

else if (param == 5) {
leitura = analogRead(button_pin);
trata_botao2();
if (leitura > 910 && leitura <= 940 ) {
tela.background(195, 195, 195);
param++;
if (param > 5) {
param = 1;
}
}
else if (leitura > 770 && leitura <= 800) {
tela.background(195, 195, 195);
param--;
if (param < 1) {
param = 5;
}
}
else if (leitura > 660 && leitura <= 690) {
setTime(hora, minutos, 0, dia, mes, ano);
RTC.set(now());
select_button = 0;
trata_botao();
tela.background(195, 195, 195);
}
else if (leitura > 835 && leitura <= 865) {
tela.background(195, 195, 195);
minutos++;
if (minutos > 59) {
minutos = 0;
}
}
else if (leitura > 710 && leitura <= 740) {
tela.background(195, 195, 195);
minutos--;
if (minutos < 0) {
minutos = 59;

90

}
}
}// fim param 5
//se no for nenhum dos anteriores (segurana)
else {
leitura = analogRead(button_pin);
trata_botao2();

//le boto
//aguarda boto ser solto

if (leitura > 910 && leitura <= 940 ) {

//se boto

"direita" for pressionado


tela.background(195, 195, 195);
param++;

//incrementa 1 ao
parametro

if (param > 5) {

//se parametro for maior


que 5

param = 1;

//retorna parametro a 1
}
}

else if (leitura > 770 && leitura <= 800) {

//se boto "esquerda" for

pressionado
tela.background(195, 195, 195);
param--;

//dencrementa 1 ao
parametro

if (param < 1) {

//se parametro for menor


que 1

param = 5;

//salta parametro a 5
}
}

else if (leitura > 660 && leitura <= 690) {

//se boto "confirma" for

pressionado
setTime(hora, minutos, 0, dia, mes, ano);

//atualiza data/hora do

arduino
RTC.set(now());

//ajusta RTC

select_button = 0;

//altera estado do boto

de seleo para 0 (sair do loop)


trata_botao();

//aguarda boto ser solto


tela.background(195, 195, 195);

91

}
txt_tela += "\n\n\n";
mostra_data();
char a_txt_tela[txt_tela.length() + 1];

//cria vetor de

caracteres txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));

//converte a

varivel txt_tela para vetor


tela.text(a_txt_tela, 5, 10);

//mostra texto na
tela
}//fim param 0
}//fim while

}// fim if (select_button)


limpa_menu();
txt_tela = "Data/Hora\n\n\n";
txt_tela.toCharArray (a_txt_tela, sizeof(a_txt_tela));
tela.stroke(0, 0, 0);
tela.text (a_txt_tela, 5, 10);
}// fim if menu 2
else if (menu_cont == 3) {
limpa_menu();
txt_tela = "Limite de Consumo\n\n";

//armazena

texto na variavel
if (select_button == 1) {

//testa se o botao de
seleo foi pressionado

while (select_button == 1) {

//enquanto o boto

no for pressionado novamente


leitura = analogRead(button_pin);

//le porta dos

botes
limpa_menu();
txt_tela = "Limite de Consumo \n\n";

//armazena

texto na variavel
txt_tela += String(limite);
txt_tela += " kWh/mes";
char a_txt_tela[txt_tela.length() + 1];

//cria vetor de

caracteres com o tamanho da string txt_tela+1


txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
varivel txt_tela para vetor de caracteres

//converte a

92

tela.stroke(0, 0, 0);

//define a cor da linha


para preto - RGB(0,0,0)

tela.text(a_txt_tela, 5, 10);

//mostra texto na
tela

trata_botao3();

//funo que aguarda o


boto ser pressionado

if (leitura > 710 && leitura <= 740) {

//Se boto

"baixo" for pressionado


tela.background(195, 195, 195);
limite = limite-1;

//dencrementa 1
do limite

if (limite < 0) {

//se o limite for maior


que 0

limite = 220;

//salta para 220


}
}

else if (leitura > 835 && leitura <= 865) {

//Se o boto

"cima" for pressionado


tela.background(195, 195, 195);
limite = limite+1;

//incrementa 1
ao limite

if (limite > 220) {

//se o limite for maior


que 220

limite = 0;

//reseta limite
}
}

else if (leitura > 910 && leitura <= 940) {

//se o boto

"direita" for pressionado


tela.background(195, 195, 195);
limite = limite+10;

//incrementa 1
ao limite

if (limite > 220) {

//se o limite for maior


que 220

limite = 0;

//reseta limite
}
}

93

else if (leitura > 770 && leitura <= 800) {

//se o boto

"esquerda for pressionado


tela.background(195, 195, 195);
limite = limite-10;

//dencrementa 1
do limite

if (limite < 0) {

//se o limite for maior


que 0

limite = 220;

//salta para 220


}
}

else if (leitura > 660 && leitura <= 690) {

//Se for

apertado o boto de seleo "confirma"


select_button = 0;

//inverte o estado do
boto de seleo

trata_botao();

//funo que aguarda o


boto ser solto

if (SD.exists("limite.txt")) {

//verifica a existencia

do arquivo "limite.txt"
SD.remove("limite.txt");

//se existir, remove


o arquivo

conf = SD.open("limite.txt", FILE_WRITE);

//cria

novamente o arquivo
conf.print(limite);
conf.close();

//fecha arquivo para


salvar
}

//Se no existir cria o arquivo para gravao e executa os mesmos


procedimentos
else {
conf = SD.open("limite.txt", FILE_WRITE);
conf.print (limite);
conf.close();
}
tela.background(195, 195, 195);
}//fim if confirma
}//fim while

//limpa a tela

94

}//fim if select_button
char a_txt_tela[txt_tela.length() + 1];

//cria vetor de

caracteres com o tamanho da string txt_tela+1


txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));

//converte a

varivel txt_tela para vetor de caracteres


tela.stroke(0, 0, 0);

//define a cor da linha


para preto - RGB(0,0,0)

tela.text(a_txt_tela, 5, 10);

//mostra texto na tela


}//fim menu_cont 3

//se o contador do menu for -1


else if (menu_cont == -1) {
menu_cont = 3;

//salta ao menu 2
}

//se o contador do menu for 4


else if (menu_cont == 4) {
menu_cont = 0;

//retorna ao menu 0
}
}//fim menus

//funo que realiza tratamento dos botes


void trata_botao2() {
while (leitura < 100) {

//aguarda boto ser pressionado

leitura = analogRead(button_pin);
if (leitura > 100) {
break;
}
pisca_parametro(param);

//Mantem o parametro
atual piscando

leitura = analogRead(button_pin);
}
}//fim trata_botao
//Funo que aguarda boto ser solto
void trata_botao() {
while (leitura != 0 ) {

//le boto

95

leitura = analogRead(button_pin); //aguarda boto ser solto


}
}
//Funo que espera o boto ser pressionado no menu prioridades
void trata_botao_prioridade() {
while (leitura < 100) {

//aguarda boto ser


pressionado

leitura = analogRead(button_pin);
if (leitura > 100) {
break;
}
pisca_carga_prioridade(indice);

//mantem prioridade

atual piscando
leitura = analogRead(button_pin);
}
}
//Aguarda boto ser pressionado (para o menu de configurao do limite)
void trata_botao3(){
while (leitura < 100){

// aguarda boto ser


pressionado

leitura = analogRead(button_pin);
if (leitura > 100){
break;
}
}
}
//Funo para exibir o numeral 0 antes de numeros que possuem 1 digito
void mostra2digitos(int numero) {
if (numero >= 0 && numero < 10)

//se o parametro passado for

menor que 10 e maior que zero


txt_tela += "0";

//concatena 0 antes de exibir o numero

txt_tela += String(numero);
}//fim mostra2digitos

//exibe o numero

96

//Funo para gravar o numeral 0 antes de numeros que possuem 1 digito


void grava2digitos(int numero) {
if (numero >= 0 && numero < 10) {

//se o parametro passado for

menor que 10 e maior que zero


tempfile.print("0");

//grava no arquivo o valor 0 antes de

gravar o numero (ver funo gravar_dados


}
}//fim grava2digitos
//Funo utilizada para exibir data/hora atual na tela
void mostra_data() {
mostra2digitos(dia);

//exibe o parametro com dois digitos

txt_tela += "/";
mostra2digitos(mes);
txt_tela += "/";
txt_tela += String(ano);
txt_tela += " ";
mostra2digitos(hora);
txt_tela += ":";
mostra2digitos(minutos);
}//fim mostra_data
//Funo que realiza a gravao de dados no arquivo
void gravar_dados (String nome_arquivo, float dado) {
char tmp[nome_arquivo.length() + 1];

//cria

vetor de caracteres "tmp"


nome_arquivo.toCharArray(tmp, sizeof(tmp));
//converte a string "nome_arquivo" para vetor de caracteres e armazena em
"tmp"
//Gravar o consumo do ms
/*if (SD.exists(tmp)) {
SD.remove(tmp);
}*/
tempfile = SD.open(tmp, FILE_WRITE);
//abrir arquivo em modo de escrita

97

if (tempfile) {

//se arquivo foi


aberto com sucesso

grava2digitos(hora_a);

//grava
hora (com dois digitos)

tempfile.print(hora_a, DEC);
tempfile.print(":");

//dois pontos

grava2digitos(minuto_a);

//grava
minutos com 2 digitos

tempfile.print(minuto_a, DEC);
tempfile.print(";");

//ponto-evirgula

grava2digitos(dia_a);

//grava o dia
com 2 digitos

tempfile.print(dia_a, DEC);
tempfile.print("/");

//barra

grava2digitos(mes_a);

//grava o
mes com 2 digitos
tempfile.print(mes_a, DEC);

tempfile.print("/");

//barra

tempfile.print(ano_a, DEC);

//grava
ano (4 digitos)

tempfile.print(";");

//ponto-evirgula

tempfile.print(dado, DEC);

//grava o

dado (consumo do dia/mes ou hora)


tempfile.print(" kWh");

//unidade de
medida de consumo "kWh"

tempfile.println(";");

//ponto-evirgula e nova linha


//fechar arquivo (salvar)
tempfile.close();
}
}

//funo para limpar a tela na troca de menus


void limpa_menu() {

98

tela.stroke (195, 195, 195);

//muda cor do texto para cinza


(195,195,195)

char a_txt_tela[txt_tela.length() + 1];

//cria vetor de caracteres

txt_tela.toCharArray (a_txt_tela, sizeof(a_txt_tela)); //converte string


atualmente na tela para vetor de caracteres e armazena no vetor criado
tela.text(a_txt_tela, 5, 10);

//mostra texto atual na tela, porm

na cor do plano de fundo


txt_tela = "";

//limpa o conteudo da varavel "txt_tela"

que contem as informaes atualmente exibidas na tela


tela.stroke(0, 0, 0);

//atualiza a cor de exibio do texto


para preto (0,0,0)
}//fim limpa_menu

//pisca o parametro atual selecionado


void pisca_parametro(int parametro) {
//se parametro for 1 pisca dia
if (parametro == 1) {
txt_tela = "";
mostra2digitos(dia);
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
leitura = analogRead(button_pin);
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 0, 58);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 0, 58);
delay (250);
}
//se for 2 pisca mes
if (parametro == 2) {
txt_tela = "";
mostra2digitos(mes);
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);

99

tela.text(a_txt_tela, 18, 58);


delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 18, 58);
delay (250);
}
//se for 3 pisca ano
if (parametro == 3) {
txt_tela = "";
txt_tela += String(ano);
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 36, 58);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 36, 58);
delay (250);
}
//se for 4 pisca hora
if (parametro == 4) {
txt_tela = "";
mostra2digitos(hora);
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 66, 58);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 66, 58);
delay (250);
}
//se for 5 pisca minutos
if (parametro == 5) {
txt_tela = "";
mostra2digitos(minutos);

100

char a_txt_tela [txt_tela.length() + 1];


txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 84, 58);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 84, 58);
delay (250);
}
}//fim pisca_parametro
//funo para piscar a prioridade selecionada
void pisca_carga_prioridade(int index) {
//se o indice for 0
//pisca prioridade da carga situada no indice 0 do vetor
if (index == 0) {
txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 42);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 42);
delay (250);
}
//se o indice for 1
//pisca prioridade da carga situada no indice 1 do vetor
if (index == 1) {
txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 58);

101

delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 58);
delay (250);
}
//se o indice for 2
//pisca prioridade da carga situada no indice 2 do vetor
if (index == 2) {
txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 74);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 74);
delay (250);
}
//se o indice for 3
//pisca prioridade da carga situada no indice 3 do vetor
if (index == 3) {
txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 90);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 90);
delay (250);
}
//se o indice for 4
//pisca prioridade da carga situada no indice 4 do vetor
if (index == 4) {

102

txt_tela = "";
txt_tela += info_cargas[index][1];
char a_txt_tela [txt_tela.length() + 1];
txt_tela.toCharArray(a_txt_tela, sizeof(a_txt_tela));
tela.stroke (195, 195, 195);
tela.text(a_txt_tela, 90, 106);
delay(250);
tela.stroke (0, 0, 0);
tela.text(a_txt_tela, 90, 106);
delay (250);
}
}
//##-=- FIM -=-##

103

APNDICE C DIAGRAMA DE ATIVIDADES

Vous aimerez peut-être aussi