Engenharia Electromecânica
Trabalho realizado na Universidade Jean Piaget de Angola, no período entre Janeiro de 2018 a Março de
2019
EPÍGRAFE
«Nunca alguém tão grande se fez tão pequeno para nos ensinar as mais
importantes lições da vida!»
I
DEDICATÓRIA
Dedico este trabalho à minha família, especialmente aos meus pais, Txipati
Delfino Samakimba e Fausta António Teixeira, que contribuíram muito na minha
formação, dando-me conselhos e por me terem dado apoio e terem depositado
confiança em mim durante os longos anos de formação.
II
AGRADECIMENTOS
III
DECLARAÇÃO DO AUTOR
Declaro que este trabalho escrito foi levado a cabo de acordo com
os regulamentos da Universidade Jean Piaget de Angola (UniPiaget) e em
particular das Normas Orientadoras de Preparação e Elaboração do Trabalho
de Fim de Curso, emanadas pelo Departamento de Altos Estudos e Formação
Avançada (DAEFA). O trabalho é original excepto onde indicado por
referência especial no texto. Quaisquer visões expressas são as do autor e não
representam de modo nenhum as visões da UniPiaget. Este trabalho, no todo
ou em parte, não foi apresentado para avaliação noutras instituições de ensino
superior nacionais ou estrangeiras. Mais informo que a norma seguida para a
elaboração do trabalho foi a:
IV
ABREVIATURAS, SIGLAS E SÍMBOLOS
A: Amperes
d: Diâmetro
E: Energia eléctrica
EPROM: Erasable Programable Read Only Memory (Memória apagável somente de leitura)
h: Altura
I: Corrente eléctrica
V
PDA: Personal Digital Assistant (Assistente digital pessoal)
Q: Carga eléctrica
r: Raio
R: Resistência eléctrica
t: Tempo
U: Tensão eléctrica
V: Voltagem
W: Watts
VI
Wh: Watts hora
Ω: Ómega
VII
RESUMO
VIII
ABSTRACT
The project involves the possibility of controlling and managing the consumption of
electricity and water in residential installations. Since ENDE is a national company
responsible for the distribution of electricity in the communities, it is currently installing
electricity meters with a prepaid system in some homes in Angolan communities and also
because it uses water reservoirs (famous water tanks), the need arose to create a system of
remote control in its consumption, a situation that generated a curiosity about it. In recent
years, with advances in the development of microcontrollers, the Arduino has appeared, and
with it the PZEM004T and A6 GSM / GPRS modules, the Ultra-Sonic sensor and others that
allowed the creation of a control system in the consumption of electric energy and water.
After the searches and set up the system, desired results were obtained, such as telephone
messages informing the available and spent quantities. With the development of
microcontrollers, today it is possible to create several projects that aim to make life easier for
the population. This project helps in the management of the consumption of electricity and
water, since by having information of the available quantities, allows making use of rational
way. The main components used in this project are the Arduino families, applied in Domotics
concepts. Arduino considered as a microcontroller, invented in Italy by Massimo Banzi and
David Cuartielles in the year 2005 allows the creation of several automation projects mainly
in the two areas of Residential and Industrial Automation.
ÍNDICE
IX
EPÍGRAFE................................................................................................................................................................I
DEDICATÓRIA.......................................................................................................................................................II
AGRADECIMENTOS............................................................................................................................................III
DECLARAÇÃO DO AUTOR................................................................................................................................IV
ABREVIATURAS, SIGLAS E SÍMBOLOS..........................................................................................................V
RESUMO.............................................................................................................................................................VIII
ABSTRACT............................................................................................................................................................IX
INTRODUÇÃO........................................................................................................................................................1
IDENTIFICAÇÃO DO PROBLEMA......................................................................................................................1
OBJECTIVOS DO ESTUDO...............................................................................................................................2
Objectivo geral.................................................................................................................................................2
Objectivos específicos......................................................................................................................................2
IMPORTÂNCIA DO ESTUDO...........................................................................................................................2
DELIMITAÇÃO DO ESTUDO...........................................................................................................................3
1.1. AUTOMAÇÃO.............................................................................................................................................4
1.1.3.1.Equipamentos..................................................................................................................................8
A- Sistemas autónomos.........................................................................................................................10
1.2.1.3.Microcontrolador...........................................................................................................................15
X
1.2.1.4.Tipos e quantidades de memória disponíveis................................................................................17
A- Memória flash...................................................................................................................................17
B- Memória SRAM...............................................................................................................................17
C- Memória EEPROM..........................................................................................................................18
1.2.1.6.Portas analógicas...........................................................................................................................18
1.2.2.5.Serial Monitor................................................................................................................................23
1.2.4.1.Shields............................................................................................................................................25
1.2.4.2.Sensores.........................................................................................................................................26
1.2.4.3.Pré-actuadores...............................................................................................................................27
A- Relés.................................................................................................................................................27
B- Contactor..........................................................................................................................................27
1.2.4.4.Actuadores.....................................................................................................................................28
1.2.6.3.Módulo A6 GSM/GPRS................................................................................................................31
1.2.6.4.LCD...............................................................................................................................................32
XI
1.4.2. Corrente eléctrica...............................................................................................................................33
4.3. CONCLUSÕES...........................................................................................................................................53
Objectivos específicos....................................................................................................................................53
4.4. RECOMENDAÇÕES..................................................................................................................................54
5. REFERÊNCIAS BIBLIOGRÁFICAS...........................................................................................................55
ÍNDICE DE FIGURAS
XII
Figura: 1. 1 – Exemplo de processo produtivo automatizado…………………………. 4
XIII
XIV
ÍNDICE DE TABELAS
XV
INTRODUÇÃO
Para tal criou-se uma ideia de controlar o consumo da energia eléctrica e da água
por intermédio destes componentes.
Identificação do problema
1
(5.) Esquecimento de lâmpadas ligadas durante o dia bem como torneiras de água.
OBJECTIVOS DO ESTUDO
Objectivo geral
Objectivos específicos
IMPORTÂNCIA DO ESTUDO
2
estudado evitaremos situações como esquecimento de uma carga ligada sem necessidade,
evitaremos torneiras ligadas sem fechar por esquecimento, etc.
DELIMITAÇÃO DO ESTUDO
Arduíno
Electrónica
Circuito Integrado
3
1. FUNDAMENTAÇÃO TÉCNICO-CIENTÍFICA
APLICÁVEL AO PROJECTO
1.1. AUTOMAÇÃO
4
funcionamento, efectuando medições e introduzindo correcções, com a mínima ou nenhuma
interferência do homem».
Automação encontra-se dividida por níveis, conforme apresenta a figura 2.1, cada
nível exerce um papel fundamental no processo de produção. Sendo que:
Este último é considerado como o nível dos accionistas, aqui acontece a tomada
das principais decisões dos processos.
5
A automação está também dividida em áreas, que são:
Automação industrial;
Automação comercial e predial;
Automação residencial.
(SILVA, 2007, p. 3)
6
indispensáveis no processo fabril porque cada camada desempenha uma função específica no
processo fabril.
7
A Automação Predial, responsável pelo controlo das tarefas comuns aos
condóminos de um edifício residencial ou comercial, trata de assuntos tais como:
elevadores, iluminação, área de lazer e trabalho cooperado, entre outros».
(TEZA, 2002, p. 25)
Hoje em dia é notada a vantagem que a mesma traz aos supermercados entre
outros lugares similares, facilidade em encontrar produto, se tem disponível o produto na loja
ou noutra loja instalada noutro ponto da cidade ou país.
Sendo este o tipo de automação visado neste trabalho, será explicado com mais
detalhes como a seguir se expõe.
1.1.3.1. Equipamentos
8
a) Pré-actuadores: Controlam os equipamentos da residência como a luz,
portão automático e irrigação;
9
domésticas, controlo de acesso, áudio e vídeo, som ambiente, telefonia, TV por assinatura,
irrigação, aspiração central, climatização, aquecimento de água, bombas e outros (TEZA,
2002).
A- Sistemas autónomos
10
Há somente um único controlador para todos os equipamentos de automação da
residência, podendo controlar qualquer cómodo de qualquer lugar da casa.
Neste projecto foi utilizado o sistema integrado com controlo centralizado porque,
de certa forma, utilizar o sistema autónomo gasta-se muito pelas centrais. Pois neste sistema
cada cómodo ou compartimento utiliza uma central independente. Em termos de vantagem no
uso, o sistema autónomo torna-se vantajoso porque em caso de defeito numa das centrais os
outros cómodos continuariam a funcionar normalmente.
O sistema de automação complexo, esse tem sido difícil utilizar devido as suas
exigências, pois o mesmo exige um acompanhamento desde a construção da residência até à
sua implementação.
11
ii. Outras recomendações
12
inventados, já são disponibilizados, pelos seus fabricantes, com os programas de testes e as
suas bibliotecas, possibilitando, apenas, aos seus outros utilizadores (programadores) fazerem
alterações dos programas para os adequarem às suas necessidades ou associarem outros
módulos e sensores para darem outras funcionalidades.
O Arduíno, como qualquer computador, está constituído pela parte física que será
vista detalhadamente adiante.
De acordo (PEREZ et al., 2013), escreve que, no universo Arduíno existem várias
placas, e que todas utilizam a mesma linguagem para serem programadas ou serem criada a
logica de funcionamento, sendo a mais utilizada o Arduíno UNO, entre varias existentes
conforme a lista abaixo:
13
Arduíno UNO (detalhes na tabela 2.2);
Arduíno Ethernet;
Arduíno BT;
Arduíno Leonardo;
Arduíno LilyPad;
Arduíno Nano;
Arduíno Mega;
Arduíno Due;
Arduíno Explora;
Arduíno Mini;
Arduíno ProMini;
Arduíno Pro;
Arduíno Fio;
Arduíno Micro.
14
O Arduíno possui:
Entradas;
Saídas;
Microcontrolador (responsável pelos cálculos e tomada de decisão);
Memória RAM (utilizada para guardar dados e instruções, volátil);
Memória Flash (utilizada para guardar o software, não volátil);
Temporizadores (TÓFOLI, 2014).
1.2.1.3. Microcontrolador
15
«Um microcontrolador, ao contrário de um microprocessador, é desenhado e construído
de forma a integrar diversos componentes num único circuito integrado, evitando, assim,
a necessidade de adicionar componentes externos ao microcontrolador, que permitiriam
as suas funcionalidades».
(SANTOS, 2009, p. 9)
16
1.2.1.4. Tipos e quantidades de memória disponíveis
A- Memória flash
B- Memória SRAM
17
seja trabalhando ou não no mesmo. Nesse momento é utilizado este tipo de memória para
manter aberto o aplicativo ou programa até que seja fechado ou retirada a energia eléctrica no
dispositivo (MENEZES et al., 2010).
C- Memória EEPROM
Tanto as entradas como as saídas, ambas são identificadas por dígitos e são
representados em valores de 0 e 1, sendo os mesmos interpretados como, sinal lógico um (1)
ligado e sinal lógico zero (0) desligado; quando tratados como níveis de tensão, são
interpretados de 5V ligado e 0V desligado. Vale lembrar que isto é assim quando se trata de
entrada ou saída digital (TÓFOLI, 2014).
18
PWM, consiste em manipular um sinal digital que oscila entre 0V e 5V com
determinada frequência, para os diferentes tipos de Arduíno é de 500Hz, conhecido com um
funcionamento tipo clock, variando os tempos em que o sinal permanece em 0V e 5V. Com
isso varia também o valor fornecido na entrada ou na saída. A figura a seguir ilustra melhor
esse conceito (PENIDO et al., 2013).
SANTOS (2009, p. 13) escreve que as portas analógicas podem ser entendidas
matematicamente como se segue abaixo:
T
1
Buscando o conceito: V med . sens .ult = ∫ V ( t ) dt (1. 0)
T 0
V pulso ⇒0 ≤ t ≤t p
Considerando que:V (t )= { 0⇒ t p <t ≤T
tp T
V med . sens .ult =(∫ V impulso dt +∫ 0 dt )
0 tp
Assim fica:
tp
V med . sens .ult = × V impulso
T
19
escala para a qual o sensor analógico pode variar o valor da sua leitura, quer para cima, quer
para baixo.
Nas saídas analógicas, para se programar o valor de saídas, tem-se como valor de
dados 255, correspondendo a 5V. Caso se pretenda variar o valor da saída, pode ser deduzida
conforme mostra a figura a seguir ou pela escolha do programador, claro que deve-se ter em
conta os princípios apresentados na figura (PENIDO et al., 2013):
O Arduíno pode ser alimentado com uma tensão de 7 a 12V ou 20V porque possui
internamente um regulador de tensão que vai estabilizar o valor adequado à placa. Mas,
apesar de ter o regulador de tensão internamente, não se aconselha alimenta-lo com 20V de
tensão eléctrica. Na ausência de uma fonte de tensão eléctrica pode ser substituída por uma
bateria ou pilha desde que a tensão esteja dentro dos valores estabelecidos.
20
5V - Tensão eléctrica fornecida pelo Arduíno exercendo a função
de positivo; serve para alimentar dispositivos externos utilizados na programação, tais como
os módulos e os sensores ligados ao Arduíno.
3,3V - Tensão eléctrica fornecida pelo Arduíno pelo chip do
fabricante FTDI, com corrente máxima de 50 mA.
GND - Tensão eléctrica fornecida pelo Arduíno, exercendo a
função de pino terra ou massa (TÓFOLI 2014).
21
1.2.2.1. Ferramentas do IDE Arduíno
Toolbar: É onde se encontram as definições, está dividido em duas partes que são:
Sketch: É a tela onde se programa tudo que se deseja ter no programa ou seja é
onde se encontra a lógica de todo funcionamento do circuito no físico.
22
Fonte: PEREZ et al., 2013, p. 16
«A função loop é como se fosse a main da placa. O programa escrito dentro da função
loop é executado indefinidamente, ou seja, ao terminar a execução da última linha desta
função, o programa inicia novamente a partir da primeira linha da função loop e
continua a executar até que a placa seja desligada ou o botão de reset seja
pressionado».
(ERUS, 2012, p. 7)
Já no loop é o contrário do Setup, enquanto no Setup as funções são lidas uma
única vez, no loop são várias vezes até que a placa é desligada da alimentação eléctrica, e é
onde se define a sequência das ordens das funções: se vai ligar ou desligar uma determinada
porta, se espera uma determinada condição quando for verdadeira ou falsa, ou se espera um
determinado tempo para ligar ou desligar a porta, entre muitas outras instruções desejadas.
23
ERUS (2012, p. 8) refere que o serial monitor «é usado para que se possa
comunicar a placa com o computador, mas também é muito útil para a depuração do
programa. Basicamente conecta-se a placa no computador e através desta tela podem-se ver
as informações enviadas pela placa».
No projecto em causa não serão descritos todos os comandos; os mais usados para
a criação de simples projectos com Arduíno são:
24
No projecto em causa foi utilizado o Arduíno UNO, cujos componentes, tais como
processador, memórias, entradas e saídas, possuem as seguintes características conforme se
mostra na tabela a seguir.
1.2.4.1. Shields
25
numa rede Ethernet, via USB com um celular Andróide, e alguns módulos possuem circuitos
integrados (TÓFOLI, 2014).
1.2.4.2. Sensores
26
1.2.4.3. Pré-actuadores
A- Relés
B- Contactor
27
Os contactores são os dispositivos electromecânicos accionados a distância, é
onde são ligados os condutores eléctricos que accionam os actuadores. São constituídos
basicamente por uma bobina com a alimentação AC ou DC com valores de tensão de 24VDC,
220VAC ou mesmo 380VAC, uma mola, estrutura ferromagnética, contactos de comando e
de força e uma estrutura exterior normalmente de materiais isolantes. Também são ainda
caracterizados pelas capacidades ou classes de acordo à escolha das funções que exercerão.
1.2.4.4. Actuadores
Sobre actuadores FRANCISCO (2007, p. 386) escreve que «quer seja eléctricos,
pneumáticos ou hidráulicos, são os elementos responsáveis pela execução das acções da
parte operativa do automatismo, são os órgãos de potência. Os mais utilizados são o motor
eléctrico e o cilindro pneumático».
Os actuadores executam dois tipos de movimentos mais comuns nos processos
industriais, respectivamente movimento linear e rotativo. O funcionamento do sistema
hidráulico não é diferente do pneumático, a principal diferença está no fluido de trabalho, mas
ambos servem para criar pressões altas nas saídas. Já os motores eléctricos convertem energia
eléctrica em mecânica, proporcionando o movimento rotativo no sistema. São também
actuadores os cilindros que proporcionam o movimento linear. Lembrar que antes dos
actuadores colocam-se os chamados pré-atuadores, que são as válvulas solenóides, os relés, os
contactores, etc.
28
distância de um objecto em relação ao sensor para criar várias imaginações e lhe dar muitas
utilidades. Trata-se, por exemplo, de uma maneira barata para atender quem deseja calcular o
nível de um reservatório, visto que para o cálculo deste parâmetro algumas medidas são
constantes, apenas varia a distância em que se encontra o líquido (ERUS, 2012).
No mesmo sensor tem-se dois pinos de alimentação eléctrica de 5VDC, sendo que
um é o Vcc e o outro é o GND.
29
Segundo SENA (2018, p. 29), «PZEM-004T é uma das versões de vários
medidores de grandezas eléctricas desenvolvido e distribuído pela Peacefair (China). O
núcleo do módulo é um SoC SD3004, fabricado pela SDICMICRO 7».
Figura 1. 15 – Ilustração da forma de ligação do módulo PZEM004T para se fazer a leitura na carga
30
Ao se adquirir um kit do módulo PZEM004T, deve-se ter bastante cuidado
com o núcleo ou bobina acima citada porque, caso não seja o adequado, influencia
negativamente na leitura dos valores.
O módulo está constituído por pinos como de entrada do micro SIM, saídas de
autofalantes, pinos de comunicação, respectivamente U_TxD e U_RxD, os pinos de
alimentação eléctrica, entre muitos outros com diversas funções. O módulo conta ainda com
um Circuito Integrado A6 GSM (Celular Chip), entrada da antena, e botão de power. Em
31
poucas palavras, é um módulo que pode ser considerado como um telemóvel, porque pode
exercer as principais funções de um telemóvel (fazer/receber chamada, enviar/receber SMS e
modem), claro que para tal efeito precisaria de algumas alterações (OLIVEIRA, 2016).
1.2.6.4. LCD
32
«Nos fios, existem partículas invisíveis chamadas electrões livres, que estão em constante
movimento e de forma desordenada. Para que estes electrões livres passem se
movimentar de forma ordenada, nos fios, é necessário uma força que os empurre. A esta
força é dado o nome de tensão eléctrica.»
(MORENO, 2003, p. 8)
Tensão eléctrica pode então ser entendida também como sendo a força que
impulsiona os electrões nos condutores eléctricos, é através dela que os electrões vão se
dirigir do centro gerador de electricidade até ao consumidor eléctrico, a sua representação é
feita pela letra U e sua unidade pela letra V. A sua forma matemática, entende-se como
produto resultante da corrente eléctrica e a resistência do condutor eléctrico, resistência
eléctrica que depende do comprimento do condutor eléctrico, da resistividade do tipo do metal
e da sua secção transversal.
U =R × I ( V .Ω=V ) (1. 2)
De acordo com MORENO (2003, p. 8), «esse movimento ordenado dos electrões
livres nos fios, provocado pela acção da tensão, forma uma corrente de electrões. Essa
corrente de electrões livres é chamada de corrente eléctrica».
A corrente eléctrica pode então ser entendida também como sendo o movimento
dirigido e ordenado dos electrões nos condutores eléctrico, é representado pela letra I e sua
unidade pela letra A. Matematicamente, a corrente eléctrica é directamente proporcional a
quantidade de carga eléctrica e inversamente proporcional a variação de tempo.
Q C
I= (
∆t s )
= A (1.3)
Na sua obra, SANTOS (2011, p. 32) escreve que «dessa forma tem-se que a
potência eléctrica é a razão entre a energia eléctrica transformada e o intervalo de tempo
dessa transformação».
33
A experiência clara que se pode notar é quando se está diante de um determinado
equipamento que necessariamente para o seu funcionamento precisa da tensão eléctrica e da
corrente eléctrica, o efeito produzido pelo equipamento, como por exemplo, a conversão da
energia eléctrica pela luminosa através de uma lâmpada, é chamado de potência eléctrica.
Para além da potência aparente existe a potência activa e a reactiva. Activa porque
resulta do trabalho realizado pelo equipamento, é normalmente toda energia transformada em
trabalho, e reactiva porque resulta da energia transformada em campo electromagnético nos
indutores, motores e transformadores.
S=V × I (V . A )(1. 4)
Qr=S × senφ(Wr)(1. 6)
P
cosφ= ×100 % (1. 7)
S
34
pode ser entendida como um conceito simples e matemático da energia eléctrica, conforme se
pode ver da forma:
E=P× ∆ t (Wh)(1. 8)
O volume pode ser entendido como sendo o espaço ocupado por um objecto, no
projecto em causa está a se utilizar um reservatório com configuração cilíndrica, onde a área
da base é igual a do topo. As fórmulas utilizadas, de acordo ao tipo do reservatório, são:
V r =A b ×h (cm3)
2
Ab =π × r (cm 2 ¿ ( 1.9);
V r =π r 2 h (cm 3 ¿ ( 1.10,
(VENDRAME, 2014)
35
2. OPÇÕES METODOLÓGICAS DO ESTUDO
36
informação, podendo apenas serem obtidos nos respectivos contador no local onde este for
instalado. (Samakimba, precisas melhorar a escrita desta frase, pois está confusa)
2.2. MÉTODO
Dedutivo, isto é, partindo das teorias e leis mais gerais para ocorrências de
fenómenos particulares que permitem ou impedem a criação do sistema em causa.
37
As principais fontes de recolha de dados foram livros, entrevistas, relatórios,
observações dirigidas ou estruturadas e observações livres.
38
3. EXECUÇÃO DO PROJECTO
39
Figura 3. 2 – Diagrama funcional do projecto
1) Módulo PZEM-004T;
2) Sensor Ultra-Sónico;
3) Controlador (Arduíno UNO);
4) Fonte de alimentação eléctrica;
5) Monitor (LCD);
6) Relé ou Contator;
7) Reservatório;
Depois de pagar a energia eléctrica, a seguir tem que ser reiniciada a contagem
anterior do módulo PZEM-004T. Enquanto não for reiniciada, o relé não permitirá a
passagem da energia para a residência. Para reiniciar o módulo pressiona-se duplamente o
botão ou mantém-se o dedo no mesmo até a contagem for zerada e o relé libertar a energia
para a residência. Só é fornecida a energia quando o valor inicial da contagem de energia
40
eléctrica no PZEM004T for igual a 0 KWh. Segue abaixo uma ilustração da ligação do
mesmo:
41
Volume = 615 ml, quando o tanque ainda estiver com nível acima do meio;
Volume = 439 ml, quando o tanque estiver com o nível ao meio;
Volume = 87 ml quando o tanque estiver abaixo do meio;
Volume = 0 ml quando o tanque estiver vazio.
Sempre que o volume do reservatório for igual aos valores acima mencionados, o
módulo A6 GSM enviará uma mensagem com a informação sobre quanto se terá consumido.
A leitura dos valores do consumo da água é feito com o sensor Ultra-Sónico que
funciona enviando os ultra-sons até onde encontrar o obstáculo e fornecer o valor da distância.
Aproveitou-se este recurso para fornecer as informações do volume contido no reservatório.
O projecto foi feito com o objectivo de manter informado o utente sobre o nível de
água no reservatório e o consumo de energia eléctrica numa residencial ou outro lugar similar.
42
3.2.1. Dimensionamento do reservatório
Ab =π r 2 ( m2 ) ( 3. 0 )
V r =A b ×h ( m 3 ) ( 3. 0 )
V r =π r 2 × h ( m3 )
V r =970,23 cm3
O tanque tem o seu limite máximo ao ser enchido sem que seja danificado o
sensor essa distância é de 2cm, também ao esvaziar o tanque deixa-se uma certa percentagem
chamada de volume de segurança para preservar o tanque contra possíveis danos como
rachadura, a mesma é de 2 cm.
V s =179,05 cm3
43
Então:
V u=V r−V s ( 3. 0 )
V u= ( 970,23−179,05 ) cm3
V u=791 cm3
V u=791 mL
44
12V utilizando neste caso um transístor. Por tanto a saída do Arduíno de 5V alimentaria a
base do transístor, no colector passaria os 12V saindo no emissor para alimentar a bobina do
Relé normal e assim alimentar cargas com maior capacidade de consumo de energia eléctrica.
Deve-se também adquirir um cartão SIM e inserir um plano de mensagens e é de preferencial
ser da rede Unitel devido as constantes falhas de rede na outra operadora. O reservatório pode
ser rectangular, quadrado ou mesmo circular devendo apenas ter em contas altura da mesma,
visto que o sensor Ultra-Sónico tem um limite de aproximadamente 4,5 metros de distâncias
ao objecto. Ao se instalar deve-se ter cuidado no manuseio do componentes por serem
electrónico e de baixa corrente, evitando assim danificar com a energia interna do corpo
humano. A pois a montagem, na sua exploração, o sistema fará a leitura do consumo e envia a
informação do consumo para o utilizador ou gestor da casa, em função as informações
recebida ele cria um plano de gestão. A montagem do sistema torna-se económica visto que
são componentes baratos, se for comparado aos outros sistemas de controlo de consumo.
Durante a exploração o utilizador terá um gasto mensal de um plano de sms, valor que pode
rondar em 500KZ por mês.
Componentes Quantidades
45
Modulo PZEM-004T 1
Sensor Ultra-Sónico 1
Fonte de alimentação 1
Monitor (LCD) 1
Relé ou Contactor 1
Módulo A6 GSM 1
Placa de ligação 1
Componentes Preços
46
Monitor (LCD) 6.500,00 KZ
Relé 4.000,00KZ
Total: 45.500,00 KZ
Elaborado pelo Autor deste projecto, em Novembro de 2018
47
float altura_max = 11; //variável com valor da altura máxima do tanque
float volume_medido_em_mililitros; //variável com valor do volume em mililitros calculado no tanque
float centimetros_cubicos = 1; //variável com valor do volume em centímetros cúbicos para conversao em ml
float valor_em_centimetros_cubicos; //variável com valor do volume em centímetros cúbicos para conversao em ml
float mililitros1 = 1; //variável com valor do volume em centímetros cúbicos para conversão em ml
int e; // variável que calcula fornece o valor da energia
int consumo; //variável que calcula o consumo do valor da energia
int conta = 150; //variável que fornece o valor da energia paga
int conversao; //variável que fornece o valor da energia paga convertido em kwanzas
int conversao1; //variável que fornece o valor da energia paga convertido em kwanzas
int volume2; //variável que fornece o valor do volume definitivo em virgulas
int volume1 = 0; //variável que fornece o valor do volume definitivo em virgulas
int volume; //variável que fornece o valor do volume em milímetros
int altura_medida = 0; //variável que calcula o valor definitivo da altura
int vez1 = 0; //variável das SMS de agua
int vez2 = 0; //variável das SMS de agua
int vez3 = 0; //variável das SMS de agua
int vez4 = 0; //variável das SMS de agua
int ligado = 0; // comprovar se esta ligado e as SMS não serem repetidas
int conta1 = 0; //variável para SMS não repetir do contador de energia
int conta2 = 0; //variável para SMS não repetir do contador de energia
int conta3 = 0; //variável para SMS não repetir do contador de energia
int conta4 = 0; //variável para SMS não repetir do contador de energia
int conta5 = 0; //variável para SMS não repetir do contador de energia
int conta6 = 0; //variável para SMS não repetir do contador de energia
const int rs = 7, en = 6, d0 = 14, d1 = 15, d2 = 16, d3 = 17, d4 = 5, d5 = 4, d6 = 3, d7 = 2; // variável dos pinos do LCD
LiquidCrystal lcd(rs, en, d0, d1, d2, d3, d4, d5, d6, d7); // pinos ligados o LCD
Ultrasonic ultrasonic(trigPin, echoPin); //inicializando os pinos do Arduíno
int distancia; //variável do valor da distancia
int result; //variável final da distancia
PZEM004T pzem(12, 13); // portas ligadas o pzem004t RX,TX
IPAddress ip(192, 168, 1, 1); // endereço para fornecer os dados do consumo de energia eléctrica
char phone_no[] = "923115740"; // definido o numero para receber as SMS
void setup() {
Serial.begin(9600); // definida a velocidade do serial monitor
lcd.begin(20, 4); // definição da quantidade de pinos tanto de coluna como de linhas
delay(3000); // uma pausa antes de chamar a função do PZEM004T
pzem.setAddress(ip); // endereço pelo qual o PZEM004T chama os valores
pinMode(rele, OUTPUT); //definimos a função do pino do Rele
pinMode(echoPin, INPUT); //definimos o pino com a função entrada (RECEBE)
pinMode(trigPin, OUTPUT); //definimos o pino com a função saída (ENVIA)
}
void loop() {
delay(5000); // demos um tempo antes de chamar as funções do loop
//chamamos as funções do PZEM004T
float v = pzem.voltage(ip);
if (v < 0.0) v = 0.0; Serial.print("TENSAO ELECTRICA DA REDE = "); Serial.print(v); Serial.println("V; ");
float i = pzem.current(ip);
if (i >= 0.0) {Serial.print("CORRENTE ELECTRICA CONSUMIDA = "); Serial.print(i); Serial.println("A; ");}
float p = pzem.power(ip);
if (p >= 0.0) {Serial.print("POTENCIA ELECTRICA CONSUMIDA = "); Serial.print(p); Serial.println("W; ");}
float e = pzem.energy(ip);
if (e >= 0.0) {Serial.print("ENERGIA ELECTRICA CONSUMIDA = "); Serial.print(e); Serial.println("Wh");}
// cálculos das condições do PZEM004T
consumo = conta - e;
conversao = (consumo * 10) / (1); // energia para que restou
conversao1 = (e * 10) / (1); // energia já consumida
//se 1Watts equivale 10KZ
//se consumo em W equivale X
//Restriçoes do PZEM004T a respeito das sms
if(e < 150){
//apresentação do valor no LCD
lcd.setCursor(0, 0);
lcd.print("U=");
lcd.print(v);
lcd.print("V ");
lcd.setCursor(10, 0);
lcd.print("I=");
lcd.print(i);
lcd.print("A");
lcd.setCursor(0, 1);
lcd.print("P=");
lcd.print(p);
lcd.print("W ");
lcd.setCursor(10, 1);
lcd.print("E=");
lcd.print(e);
lcd.print("Wh");
lcd.setCursor(0, 2);
lcd.print("Er=");
lcd.print(consumo);
lcd.print("Wh ");
lcd.setCursor(10, 2);
lcd.print("Eq=");
lcd.print(conversao);
lcd.print("KZ");
delay(500);
// envio das SMS do consumo da energia eléctrica
if ((consumo == 140) && (conta1 == 0)) {
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//resto
Serial.print("Energia paga:");
Serial.print(consumo);
Serial.println("Wh");
//em KZ
48
Serial.print("Corespondente a:");
Serial.print(conversao);
Serial.println("KZ");
Serial.println("Conta de energia electrica consumida 10%, economize para levar mais tempo");
Serial.println (char(26)); //the ASCII code of the ctrl+z is 26
conta1 = conta1 + 1;}
delay(100);
if ((consumo == 120) && (conta2 == 0)) {
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("Ja consumiu:");
Serial.print(e);
Serial.println("Wh");
//em KZ
Serial.print("O corespondente a:");
Serial.print(conversao1);
Serial.println("KZ");
//resto
Serial.print("Resta da conta:");
Serial.print(consumo);
Serial.println("Wh");
//em KZ
Serial.print("Corespondente a:");
Serial.print(conversao);
Serial.println("KZ");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
conta2 = conta2 + 1;}
delay(100);
if ((consumo == 90) && (conta3 == 0)) {
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("Ja consumiu:");
Serial.print(e);
Serial.println("Wh");
//em KZ
Serial.print("O corespondente a:");
Serial.print(conversao1);
Serial.println("KZ");
//resto
Serial.print("Resta da conta:");
Serial.print(consumo);
Serial.println("Wh");
//em KZ
Serial.print("Corespondente a:");
Serial.print(conversao);
Serial.println("KZ");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
conta3 = conta3 + 1;}
delay(100);
if ((consumo == 60) && (conta4 == 0)) {
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("Ja consumiu:");
Serial.print(e);
Serial.println("Wh");
//em KZ
Serial.print("O corespondente a:");
Serial.print(conversao1);
Serial.println("KZ");
//resto
Serial.print("Resta da conta:");
Serial.print(consumo);
Serial.println("Wh");
//em KZ
Serial.print("Corespondente a:");
Serial.print(conversao);
Serial.println("KZ");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
conta4 = conta4 + 1;}
delay(100);
if ((consumo == 30) && (conta5 == 0)) {
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("Ja consumiu:");
Serial.print(e);
Serial.println("Wh");
//em KZ
Serial.print("O corespondente a:");
Serial.print(conversao1);
Serial.println("KZ");
//resto
Serial.print("Resta da conta:");
Serial.print(consumo);
Serial.println("Wh");
49
//em KZ
Serial.print("Corespondente a:");
Serial.print(conversao);
Serial.println("KZ");
Serial.println (char(26)); //the ASCII code of the ctrl+z is 26
conta5 = conta5 + 1;}
delay(100);
if ((consumo == 0.1) && (conta6 == 0)) {
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("Ja consumiu:");
Serial.print(e);
Serial.println("Wh");
//em KZ
Serial.print("O corespondente a:");
Serial.print(conversao1);
Serial.println("KZ");
//resto
Serial.print("Resta da conta:");
Serial.print(consumo);
Serial.println("Wh");
//EM KZ
Serial.print("Corespondente a:");
Serial.print(conversao);
Serial.println("KZ");
Serial.println("Ja se consumiu toda energia paga");
Serial.println("SISTEMA DESLIGADO!");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
conta6 = conta6 + 1;}
delay(100);
//condição dos cálculos do sensor ultra-sónico
int raio1;
hcsr04(); // Faz chamada da instrução "hcsr04()"
// cálculos do ultra-sónico
raio1 = raio * raio;
area = pi * raio1;
altura_medida = altura_max - result;
//para evitar os valores negativos
if (altura_max <= result) {altura_medida = 0; valor_em_centimetros_cubicos = 0; }
volume = area * altura_medida;
valor_em_centimetros_cubicos = volume;
volume_medido_em_mililitros = (valor_em_centimetros_cubicos * mililitros1) / centimetros_cubicos;
// eliminar as virgulas no resultado
volume2 = volume_medido_em_mililitros + volume1;
Serial.print("Quantidade de agua = ");
Serial.print(volume_medido_em_mililitros); // envia o resultando da distancia em cm
Serial.println(" mililitros ");
delay(500);
lcd.setCursor(0, 3);
lcd.print("V=");
lcd.print(volume2);
lcd.print("ml ");
delay(500);
//para não serem repetidas as SMS quando reabastecido
if (volume2 >= 791){vez1 = 0;}
if (volume2 >= 615){vez2 = 0;}
if (volume2 >= 263){vez3 = 0;}
if (volume2 >= 175){vez4 = 0;}
delay (100);
//envio das SMS dos valores do nível do tanque
if ((volume2 == 615) && (vez1 == 0) && (ligado == 1)){
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("O Volume do Tanque esta a : ");
Serial.print(volume2);
Serial.println("ml");
Serial.println("O Tamque encontra-se a um nivel quase ao meio. A conselha-se uma gestao a respeito para que se
prolongue por mais dias...");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
delay(100);
vez1 = vez1 + 1;}
delay (100);
if ((volume2 == 439) && (vez2 == 0) && (ligado == 1)){
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("O Volume do Tanque esta a : ");
Serial.print(volume2);
Serial.println("ml");
Serial.println("O nivel do tanque encontra-se ao MEIO, metade ja foi consumida");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
delay(100);
vez2 = vez2 + 1;}
delay (100);
if ((volume2 == 87) && (vez3 == 0) && (ligado == 1)){
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
50
delay(2000);
//Consumo
Serial.print("O Volume do Tanque esta a : ");
Serial.print(volume2);
Serial.println("ml");
Serial.println("O Tamque encontra-se com nivel muito baixo, dentro de pouco tempo ficara sem agua no seu
reservatorio.");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
delay(100);
vez3 = vez3 + 1;}
delay(100);
if ((volume2 == 0) && (vez4 == 0) && (ligado == 1)){
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
//Consumo
Serial.print("O Volume do Tanque esta a : ");
Serial.print(volume2);
Serial.println("ml");
Serial.println("O Tamque encontra-se vazio, ha necessidade de reabastecer o reservatorio.");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
delay(100);
vez4 = vez4 + 1;}
delay(100);
//Condições do Rele!!!!!!!
digitalWrite(rele, HIGH);
delay(50);
if (ligado == 0){
// condição inicial quando esta ligado o sistema
Serial.println("AT+CMGF=1");
delay(2000);
Serial.print("AT+CMGS=\"");
Serial.print(phone_no);
Serial.write(0x22);
Serial.write(0x0D); // hex equivalent of Carraige return
Serial.write(0x0A); // hex equivalent of newline
delay(2000);
Serial.println("Sistema LIGADO!");
Serial.print("Da sua conta ja consumiu:");
Serial.print(e);
Serial.println("Wh");
//em KZ
Serial.print("Corespondente a:");
Serial.print(conversao1);
Serial.println("KZ");
//resto
Serial.print("Resta da conta paga:");
Serial.print(consumo);
Serial.println("Wh");
//em KZ
Serial.print("Corespondente a:");
Serial.print(conversao);
Serial.println("KZ");
//volume da agua
Serial.print("O Volume do Tanque esta a: ");
Serial.print(volume2);
Serial.println("ml");
Serial.println (char(26));//the ASCII code of the ctrl+z is 26
delay(100);
//para não tornar as SMS repetitivas das já enviadas, valores não irem a 1
vez1 = 1;
vez2 = 1;
vez3 = 1;
vez4 = 1;
ligado = ligado + 1;}
delay(500);}
else { digitalWrite(rele, LOW);
lcd.setCursor(0, 0);
lcd.print(" Nao existe ");
lcd.setCursor(0, 1);
lcd.print(" nenhum consumo!! ");
lcd.setCursor(0, 2);
lcd.print(" Fazer o reset, ");
lcd.setCursor(0, 3);
lcd.print("no modulo PZEM-004T!");
delay(500);}}
//parte responsável por calcular a distancia e fornecer como nossa altura
void hcsr04() {
digitalWrite(trigPin, LOW); //pino 13 com um pulso baixo "LOW"
delayMicroseconds(200);
digitalWrite(trigPin, HIGH); //pino 13 com pulso alto "HIGH"
delayMicroseconds(100);
digitalWrite(trigPin, LOW); //pino 13 com pulso baixo "LOW" novamente
//função ranging, faz a conversão do tempo de
//resposta do echo em centimetros, e armazena
//na variavel "distancia"
distancia = (ultrasonic.Ranging(CM)); //variável global recebe o valor da distância medida
result = int(distancia); //variável global do tipo int recebe a distância
delay(500); //intervalo de 500 milissegundos
}
51
4. CONCLUSÃO E RECOMENDAÇÕES
Neste capítulo será feita uma avaliação da proposta de solução do projecto, isto é,
a conclusão sintética do projecto.
52
O presente projecto ajudará a ter o controlo da casa em tempo real relativamente
ao consumo da energia eléctrica e da água por informações via telefónica. Como em todo
sistema existem vantagens e desvantagens, as duas desvantagens notadas são, o custo da sua
implementação ou aquisição e instalação, assim como o custo da exploração, uma vez que,
para ter as informações dos gastos do consumo, necessariamente o cartão SIM (Chip),
localizado no módulo A6 GSM, terá que ter um plano de mensagens para então estas serem
enviadas com os textos informando o consumo ao utente.
4.3. CONCLUSÕES
53
3) O autor deste projecto consumou um dos seus propósitos pessoais
que consistia em implementar uma solução tecnológica de
engenharia que pode contribuir a simplificar e tornar mais
eficiente a gestão de recursos residenciais, e que pode ainda ser
utilizado por si ou por colegas estudantes para ajudar a sociedade
angolana a recorrer a soluções locais, simples, práticas e baratas,
para resolver alguns dos seus problemas. O projecto também
serviu para melhorar os seus conhecimentos e habilidades na
concepção de um projecto tecnológico de engenharia.
4.4. RECOMENDAÇÕES
54
6) Saber quanto se consome, quanto se tem disponível, e quanto se
gasta, é fundamental para qualquer ser humano e deve ser uma preocupação constante. Por
isso recomenda-se aos estudantes que se sensibilizem e se esforcem em fazer com que
projectos como este, simples e funcionais, sejam utilizados para a criação do auto-emprego e
o empreendorismo, pois representam soluções tecnológicas que muitos cidadãos gostariam de
ter nas suas residências e nos seus telemóveis, a baixo custo, para, em tempo real e 24/24
horas, manterem o controlo do consumo da energia eléctrica e da água para não serem
surpreendidos com cortes inesperados e altos custos financeiros, sobretudo numa altura em
que a nossa população está a começar a aprender a gastar menos e a ter melhor cultura
financeira.
5. REFERÊNCIAS BIBLIOGRÁFICAS
Livros:
55
Artigos/Documentos electrónicos:
56
https://edisciplinas.usp.br/pluginfile.php/32590/mod_resource/content/1/apre_aut_predial_cas
es.pdf
MELO, João Luiz Glovacki Graneman de. Mini Curso Arduíno. 2012.
[Consultado em 16-11-2018]. Disponível em:
https://pt.scribd.com/document/215334623/Mini-Curso-Arduino-pdf
57
https://www.ufsm.br/unidades-universitarias/ctism/cte/wp-
content/uploads/sites/413/2018/12/05_microcontroladores.pdf
58
SILVA, Marcelo Eurípedes da. CURSO DE AUTOMAÇÃO INDUSTRIAL.
2007. [Consultado em 22-12-2018]. Disponível em:
https://pt.scribd.com/document/55542440/AUTOMACAO-INDUSTRIAL-Prof-Msc-
Marcelo-Euripedes-da-Silva-EEP-Escola-de-Engenharia-de-Piracicaba
59