Escolar Documentos
Profissional Documentos
Cultura Documentos
Dissertação - Lima
Dissertação - Lima
Feira de Santana
2018
ELLEN LIMA DE LIMA
Feira de Santana
2018
Está página deverá ser substituída por uma folha contendo as assinaturas dos
membros da banca, e deve ser posta após a ficha catalográfica.
ABSTRACT
Agradeço aos profissionais do PGCA, que dedicaram parte do seu tempo a esse
importante projeto em nossa cidade, aos meus familiares pela paciência neste
período de dedicação ao mestrado, aos amigos, aos colegas do laboratório Labensol
que muito me ajudaram, ao meu orientador que soube me guiar com sua
experiência, ideias inovadoras e paciência nesta caminhada e por último, mas não
menos importante, a Deus, o Senhor da minha vida.
SUMÁRIO
Abreviação Descrição
2G/3G/4G Segunda, Terceira ou Quarta Geração
AESBE Associação Brasileira das Empresas Estaduais de Saneamento
AT Attention command
CETESB Companhia Ambiental do Estado de São Paulo
CONAMA Conselho Nacional do Meio Ambiente
CR Carriage Return
DDP Diferença de Potencial
DoT Database of Things
E.Coli Escherichia coli
E+H Endress+Hauser
GND Ground
GPRS General Packet Radio Services
GSM Global System for Mobile Communications
I2C Inter-Integrated Circuit
IDE Integrated Development Enviroment
INEMA Instituto do Meio Ambiente e Recursos Hídricos
IoT Internet of Things
IP Internet Protocol
IQA Índice de Qualidade da Água
LED Light Emitting Diode
Mux Multiplexador
OD Dissolved Oxygen
ORP Oxidation Reduction Potential
MAC Media Access Control
MySQL Structured Query Language
PERH Plano Estadual de Recursos Hídricos
pH Potencial Hidrogeniônico
PHP Personal Home Page
PWM Pulse-Width Modulation
RFID Radio-Frequency Identification
RTC Real Time Clock
RX Receptor
SCL Serial Clock
SD Secure Digital
SDA Serial Data
SMS Serviço de Mensagens Curtas
SPI Serial Peripheral Interface
TX Transmissor
UART Universal Asynchronous Receiver-Transmitter
UEFS Universidade Estadual de Feira de Santana
VCC Volts corrente contínua
WSN Wireless Sensor Networks
WiFi Wireless Fidelity
1
Capítulo 1
INTRODUÇÃO
1.2 Objetivos
1.3 Contribuições
Capítulo 2
TRABALHOS RELACIONADOS
Segundo Harold Soisson (2002), a alteração de pH, num valor fora dos
limites estabelecidos, demonstra um desequilíbrio, indicando se a amostra está
ácida ou alcalina, mas não mostra diretamente o contaminante. Assim também, a
condutividade é um importante indicador de poluente e passa a ser causa se não for
corrigido a tempo. A CETESB (2009) ratifica essa ideia e confirma a importância da
medição de pH e os valores limites da portaria.
Será feita checagem dos valores medidos com a legislação atual, conforme
feito por Siqueira (2012), que utilizou a Resolução do CONAMA nº 357/05 para
comparação dos dados obtidos em águas não tratadas, e em águas tratadas a
comparação será feita com a Portaria do Ministério da Saúde, conforme Macêdo
Capítulo 2 TRABALHOS RELACIONADOS 16
A IoT também pode ser utilizada para promover melhorias ambientais, pois
Capítulo 2 TRABALHOS RELACIONADOS 18
Já Wong e Kerkez (2016) em seu artigo mostra trabalhos com IoT, internet
ubiqua, tecnologias atuais em ambientes, faz comparação dos sites IoT, desafios e
dificuldades, interfaces, avanços recentes em sensoriamento, computação e
comunicações permitiram a rápida implantação de sistemas de dados em tempo real
para aplicações ambientais. Em particular, a maioria dos sensores modernos
interligados aos sistemas agora podem se conectar à Internet, permitindo o uso de
serviços web como um mecanismo de interoperabilidade entre sensores, atuadores,
modelos e sistemas de apoio à decisão.
As cidades inteligentes podem utilizar essa nova fase da Internet para ter um
gerenciamento contínuo do clima, da qualidade da água, do trânsito, e promover
melhorias ou prevenir catástrofes. Para isso seria necessário ter uma rede de
sensores interligados e que disponibilizassem esses dados de forma remota. A IoT
também pode ser usada de forma a permitir a interação com o usuário e receber
comandos a depender da situação detectada pelo sensor, por exemplo, o sensor de
qualidade da água ao detectar mais, ou menos poluição na água, poderia aumentar
ou diminuir a dosagem de cloro na água ou enviar um alerta à comunidade que a
utiliza.
20
Capítulo 3
METODOLOGIA
Os métodos
todos de análise de água atual tendem a evoluir com novas
ferramentas e tecnologia
tecnologias de transmissão de dados, como proposto pelo modelo
estudado, “com
om o seu uso, as amostras podem ser monitoradas de forma rápida e
sem a necessidade de coleta, transporte e a
armazenamento,
rmazenamento, o que reduz o custo por
análise e os erros na manipulação das amostras.” (LIMA et al,, 2011, p.139).
Figura 3 – Etapas
tapas da metodologia para as atividades
vidades experimentais
implementação dos
instrumentos
construção do banco de
dados
análise e interpretação
dos resultados
Fonte: Autoria própria, 2018
Capítulo 3 METODOLOGIA 21
pH 6 – 9,5 unidades
Menor 30° (valores de
Temperatura
tratamento da água)
50 a 500 µS/cm
Condutividade
(fabricante do sensor)
Turbidez 1 uT (Unidade de Turbidez)
250 mV
ORP
(fabricante do sensor)
Não inferior a 6mg/L O2
OD
(Resolução 357/05 CONAMA)
Fonte: Autoria própria, 2017
Alguns desses sensores foram adquiridos acompanhados de suas soluções
padrão, para calibração dos mesmos durante o uso. O laboratório recebeu um
pHmetro industrial doado pela empresa Endress+Hauser Controle e Automação
Ltda. (E+H) para esse trabalho de pesquisa, que é utilizado na comparação dos
valores medidos em campo, visto que o pH é uma das principais medidas verificadas
em qualquer coleta de análise de qualidade da água, como proposto por Jiang et al
(2009) e por Lima et al (2011).
Entrada / Entrada
CPU Saída Digital EEPRO Flash
Nome Processador Tensão Velocidade Analógica /PWM M [Kb] [Kb] UART
5V/
Mega ATmega2560 16 MHz 16/0 54/15 4 256 4
7-12 V
5V/
Uno ATmega328P 16 MHz 6/0 14/6 1 32 1
7-12 V
Fonte: Arduino, 2017
3.2 Programação
Pinos de Conexão
Pino # Nome do Pino Função do Sinal no Arduino Mega
1 CS ou SS Chip Select – SlaveSelect 53
2 SI ou MOSI Serial Input – Master Out Slave In (SPI) 51
3 GND Ground GND
4 Vcc Tensão CC de 2.7 à 3.6 Volts 3,3 VCC
5 SCK Serial Clock (SPI) 52
6 GND Ground GND
7 SO ou MISO Serial Output – Master In Slave Out (SPI) 50
8 Não Conectado
9 Não Conectado
Fonte: Arduino e Cia, 2014
A ideia foi criar um arquivo de texto (.txt) para cada dia de medição, por isso,
o relógio RTC - Real Time Clock - foi utilizado inicialmente para indicar o horário de
leitura das medições e armazenamento dessas informações no arquivo e nomeá-lo,
trabalhou-se com a biblioteca SD.h do próprio Arduino.
Nesta etapa a dificuldade maior foi nomear o arquivo, por isso foi necessário
transformar a data em uma função, fazendo uma conexão entre o nome do arquivo e
a data do dia informada pelo RTC e, criar uma lógica de programação para que um
novo arquivo fosse criado após as 23h59min59s.
Outro módulo utilizado foi o Ethernet, esse funcionou durante os testes e foi
aceitável, mas necessita do cabeamento para conectar ao Arduino.
O módulo WiFi que se mostrou mais satisfatório foi o shield Yun, que conecta
com a rede de forma simplificada, mas não opera como servidor web por causa da
sua memória interna, mas fazê-lo comunicar com uma página na Internet necessita
de estudo ou conhecimento na área. Por conta de todas essas dificuldades,
observou-se a importância de aumentar o estudo nessa parte de comunicação.
3.3 Comunicação
Onde tiver acesso à Internet cabeada pode-se utilizar o shield Ethernet, caso tenha
Internet sem fio, utiliza-se o módulo WiFi (Wireless Fidelity) ou o shield Yun.
• WiFi/Yun,
• Ethernet,
• Bluetooth,
3.3.1 GSM
Esse módulo pode ainda efetuar ou receber ligações, acessar a Internet, entre
outras funções. Neste projeto o módulo GSM foi testado com o Arduino Mega e com
o Uno e, funcionou de forma satisfatória com as duas placas. Ele permite a
comunicação Serial ou através da biblioteca SoftwareSerial. Para utilizar com o
Arduino Mega é necessário fazer uma adaptação no módulo, afastando a conexão
do pino 10 para não conectar ao Arduino e fazer um jumper entre os pinos 2 e 10 da
placa.
Desta forma poderia ser utilizado como servidor Web, enviar os dados
diretamente para o site e ter essas informações disponíveis na rede. O código
também é encontrado como exemplo na IDE (Integrated Development Enviroment)
do Arduino.
3.3.2 Ethernet
3.3.3 WiFi
4. Identificar a rede do Yun na lista das redes WiFi, na lista de conexão de rede
sem fio e conectar o computador a ela. Se pedir senha, colocar a senha do
shield ou a informada pelo fabricante.
9. A partir daí a programação da placa poderá ser feita sem fio, assim como a
configuração da placa pelo IP. Na IDE é necessário conectar à porta do
Arduino Yun, onde ele atualiza e mostra o seu IP na rede.
10. Pode-se testar um exemplo da Bridge com Console, que deverá funcionar. A
partir de agora ao invés de Serial será necessário utilizar a biblioteca Console
e ela deverá sempre ser chamada após a Bridge na estrutura da
programação, se não, não vai funcionar corretamente.
A Iot pode gerar uma gama de informações que devem ser utilizadas para
que essa tecnologia tenha validade. O backup desses dados e atualização dos
Capítulo 3 METODOLOGIA 36
3.5 Sensores
além da mudança da taxa de comunicação. A placa Tentacle pode fazer leituras com
o programa contínuos ou assíncrono, os dois podem ser utilizados para medição das
variáveis, mas o programa contínuos é necessário para definir o modo de leitura das
variáveis.
3.8 Calibração
5. Não devolva a solução utilizada para a garrafa do buffer, ela deverá ser
descartada ao final.
Capítulo 4
RESULTADOS
Temboo. Conta-se um tempo para delay e o ciclo é feito novamente a partir do reset
dos sensores.
Figura 18 – Planilha Google com dados das variáveis medidas de qualidade da água
Os dados são guardados como backup no Pen Drive, como mostra a figura
19. Caso o módulo de sensores tenha problema na comunicação sem fio, tenha
dificuldade de comunicação WiFi ou com o servidor do Google, os dados estão
armazenados diariamente em arquivo de texto no Pen Drive para consulta, se for
necessário, no formato predefinido na programação.
discrepantes.
Figura 19 – Arquivo das pastas de backup do Pen Drive com os dados medidos
Além da coleta diária no Labensol, foi feita uma medição na saída da água
nos poços para verificar os parâmetros e a compará-los com os dados históricos
mostrados no quadro 9 abaixo. Os valores informados são a média da medição feita
no dia 10 de agosto de 2018, no período da manhã de 9 até 10 horas no poço da
Casa do Índio e posteriormente no poço do Projeto Pau Brasil.
valores medidos em laboratório, a partir da coleta feita logo após perfuração dos
poços. Esses dados podem servir de parâmetros para comparação e evolução
temporal dos valores das variáveis dos poços.
Os dados históricos indicam que a água do poço da Casa do Índio possui alta
condutividade, provavelmente por conta de sais dissolvidos, tornando-a salobra e
que ao longo dos anos o perfil de alguns parâmetros está mudando.
Este quadro mostra que os parâmetros atuais estão próximos dos limites
definidos pelo Ministério da Saúde. Não foi possível medir os parâmetros biológicos,
por isso, sua informação não está apresentada no quadro acima. O pH e o OD estão
um pouco abaixo, porém na torneira do consumidor final nos módulos da
Universidade, esses valores estarão em níveis aceitáveis, pois a bomba ajudará a
oxigenar a água, embora o valor de oxigênio dissolvido não seja tão importante para
água potável, e o cloro dosado já terá feito sua ação, conforme confirma o texto
abaixo:
TEMP
40
38
36
34
32
30
28
26
24
22
20
00:00:00 04:48:00 09:36:00 14:24:00 19:12:00 00:00:00 04:48:00
PH
6,9
6,7
6,5
6,3
6,1
5,9
5,7
5,5
00:00:00 04:48:00 09:36:00 14:24:00 19:12:00 00:00:00 04:48:00
ORP
900
890
880
870
860
850
840
830
820
810
800
00:00:00 04:48:00 09:36:00 14:24:00 19:12:00 00:00:00 04:48:00
OD
9
8,5
7,5
6,5
6
00:00:00 04:48:00 09:36:00 14:24:00 19:12:00 00:00:00 04:48:00
Capítulo 5
CONSIDERAÇÕES FINAIS
O objetivo inicial desta proposta foi atendido, o protótipo dos sensores foi
montado e servirá de pontapé inicial para outras pesquisas. As variáveis foram
medidas e colocadas em gráfico para mostrar esses valores ao longo dos dias. O
módulo desta pesquisa também foi testado em outros locais para confirmar a
mudança dos valores.
REFERÊNCIAS
ARAÚJO, Marlyete Chagas de, OLIVEIRA, Maria Betânia Melo de. Monitoramento
da qualidade das águas de um riacho da Universidade Federal de Pernambuco.
Revista Ambiente e Água, Taubaté, v. 8, n.3, p. 247 – 257, 2013.
http://doi.org/10.4136/1980-993X
CHANDRAPPA, S., et al. Design and Development of IoT Device to Measure Quality
of Water. International Journal of Modern Education and Computer Science
(IJMECS), Vol.9, No.4, pp.50-56, 2017.DOI: 10.5815/ijmecs.2017.04.06
FAUSTINE, Anthony, MVUMA, Aloys N., MONGI, Hector J., GABRIEL, Maria C.,
TENGE, Albino J., KUCEL, Samuel B. Wireless Sensor Networks for Water Quality
Monitoring and Control within Lake Victoria Basin : Prototype Development.
ScientificResearch, 6, p. 281–290, dez. 2014.
JIANG, Peng, XIA, Hongbo, HE, Zhiye, WANG, Zheming. Design of a Water
Environment Monitoring System Based on Wireless Sensor Networks. Sensors,
China, 9, p. 6411–6434. 2009. http://doi.org/10.3390/s90806411.
LI, X., CHENG, X., GONG, P., YAN, K. Design and Implementation of a Wireless
Sensor Network-Based Remote Water-Level Monitoring System, p. 1706–1720,
2011. http://doi.org/10.3390/s110201706
LIMA, Renato Sousa, SANTOS, Vagner Bezerra dos, GUERREIRO, Thiago Brito,
ARAÚJO, Mário César Ugulino de. Um Sistema Microcontrolado para o
Monitoramento On-Line, in situ e remoto de pH, Condutividade e Temperatura de
Águas. Quim. Nova, v. 34, n.1, p. 135–139, 2011.
MANJARRÉS, C., GARIZADO, D., OBREGON, M., SOCARRAS, N., CALLE, M.,
JIMENEZ-JORQUERA, C. Chemical sensor network for pH monitoring. Journal of
Applied Research and Technology, v. 14, n. 1, p. 1–8, 2016.
http://doi.org/10.1016/j.jart.2016.01.003
OLIVEIRA, Brunna Stefanny Sangel de, CUNHA, Alan Cavalcanti da. Correlação
entre qualidade da água e variabilidade da precipitação no sul do Estado do Amapá.
Revista Ambiente e Água, v. 9, n. 2, p. 445–458, 2014. http://doi.org/10.4136/1980-
993X
SILVA, Rita de Cássia Assis da, ARAÚJO, Tânia Maria de. Qualidade da água do
manancial subterrâneo em áreas urbanas de Feira de Santana (BA). Ciência e
Saúde Coletiva,Rio de Janeiro, v.8, n.4, 1019–1028, 2003.
SOUZA, Thaís Inês Marques de, PEREIRA, Sidney, DURÃES, Carla Adriana
Ferreira, OLIVEIRA, Jocilane Pereira de. Desenvolvimento de um medidor de pH
baseado em Arduino. 2015. Trabalho apresentado ao Congresso Técnico Científico
REFERÊNCIAS 68
VIJAYAKUMAR, N., RAMYA, R. The Real Time Monitoring of Water Quality in IoT
Environment. 2015 International Conference on Circuit, Power and Computing
Technologies [ICCPCT], IEEE,978-1-4799-7075-9, 2015.
WANG, Xin, MA, Longquan, YANG, Huizhong. Online Water Monitoring System
Based on ZigBee and GPRS. Procedia Engineering, v. 15, p. 2680–2684, 2011.
http://doi.org/10.1016/j.proeng.2011.08.504
Apêndice A
PROGRAMAÇÃO
///////// Setup
void setup() {
Serial.begin(9600); // Set the hardware serial port to 9600
sSerial.begin(9600); // Set the soft serial port to 9600 (change if all your devices
use another baudrate)
Serial.flush();
Bridge.begin();
Console.begin();
void loop() {
for (x; x < 5; x++) { // if channel==0 then we open channel 0
// sSerial.print("c,0\r");
zerarchannel(); //RESETAR OS SENSORES
delay (250);
}
// make a string that start with a timestamp for assembling the data to log:
delay(180000);
dataString = getTimeStamp();
dataString2 = getHoraStamp();
sSerial.print("c,0\r");
for (x == 5; x < 10; x++) { // then we open channel 0
digitalWrite(enable_1, LOW); // setting enable_1 to low activates primary channels:
0,1,2,3
digitalWrite(enable_2, HIGH); // setting enable_2 to high deactivates secondary
APÊNDICE A - PROGRAMAÇÃO 71
channels: 4,5,6,7
digitalWrite(s0, LOW); // S0 and S1 control what channel opens
digitalWrite(s1, LOW); // S0 and S1 control what channel opens
sSerial.print("c,1\r");
delay (250);
sensorname = "temp";
impressao();
}
sSerial.print("c,0\r");
for (x == 10; x < 15; x++) { // then we open channel 1
digitalWrite(enable_1, LOW); // setting enable_1 to low activates primary channels:
0,1,2,3
digitalWrite(enable_2, HIGH); // setting enable_2 to high deactivates secondary
channels: 4,5,6,7
digitalWrite(s0, HIGH); // S0 and S1 control what channel opens
digitalWrite(s1, LOW); // S0 and S1 control what channel opens
sSerial.print("c,1\r");
delay (250);
sensorname = "PH";
impressao();
}
sSerial.print("c,0\r");
for (x == 15; x < 20; x++) { // then we open channel 2
digitalWrite(enable_1, LOW); // setting enable_1 to low activates primary channels:
0,1,2,3
digitalWrite(enable_2, HIGH); // setting enable_2 to high deactivates secondary
channels: 4,5,6,7
digitalWrite(s0, LOW); // S0 and S1 control what channel opens
digitalWrite(s1, HIGH); // S0 and S1 control what channel opens
sSerial.print("c,1\r");
delay (250);
sensorname = "DO";
impressao();
}
sSerial.print("c,0\r");
for (x == 20; x < 25; x++) { // then we open channel 3
digitalWrite(enable_1, LOW); // setting enable_1 to low activates primary channels:
0,1,2,3
digitalWrite(enable_2, HIGH); // setting enable_2 to high deactivates secondary
channels: 4,5,6,7
digitalWrite(s0, HIGH); // S0 and S1 control what channel opens
digitalWrite(s1, HIGH); // S0 and S1 control what channel opens
sSerial.print("c,1\r");
delay (250);
sensorname = "ORP";
impressao();
}
if (x == 25) {
x = 0;
}
}
//////////FUNÇÕES//////////
void impressao() {
APÊNDICE A - PROGRAMAÇÃO 72
if (sensorname == "temp") {
t = (soma / med);
}
if (sensorname == "PH") {
p = (soma / med);
}
if (sensorname == "DO") {
od = (soma / med);
}
if (sensorname == "ORP") {
o = (soma / med);
APÊNDICE A - PROGRAMAÇÃO 73
imprimenet();
imprimeusb();
}
Console.print(sensorname);
Console.print(":");
Console.println((soma / med));
n = 1;
soma = 0;
med = 0;
y = 0;
yi = 0;
}
}
}
void imprimenet() {
// identify the Temboo Library choreo to run (Google > Sheets > AppendValues)
AppendValuesChoreo.setChoreo("/Library/Google/Sheets/AppendValues");
0,1,2,3
digitalWrite(enable_2, HIGH); // setting enable_2 to high deactivates secondary
channels: 4,5,6,7
digitalWrite(s0, HIGH); // S0 and S1 control what channel opens
digitalWrite(s1, LOW); // S0 and S1 control what channel opens
sSerial.print("c,0\r");
//sSerial.print("Sleep\r");
delay (250);
break;
case 2:
digitalWrite(enable_1, LOW); // setting enable_1 to low activates primary channels:
0,1,2,3
digitalWrite(enable_2, HIGH); // setting enable_2 to high deactivates secondary
channels: 4,5,6,7
digitalWrite(s0, LOW); // S0 and S1 control what channel opens
digitalWrite(s1, HIGH); // S0 and S1 control what channel opens
sSerial.print("c,0\r");
//sSerial.print("Sleep\r");
delay (250);
break;
case 3:
digitalWrite(enable_1, LOW); // setting enable_1 to low activates primary channels:
0,1,2,3
digitalWrite(enable_2, HIGH); // setting enable_2 to high deactivates secondary
channels: 4,5,6,7
digitalWrite(s0, HIGH); // S0 and S1 control what channel opens
digitalWrite(s1, HIGH); // S0 and S1 control what channel opens
sSerial.print("c,0\r");
//sSerial.print("Sleep\r");
delay (250);
break;
case 4:
Console.println("Zerado!");
delay (250);
n = 1;
soma = 0;
med = 0;
y = 0;
yi = 0;
break;
}
}
// This function return a string with the time stamp
String getTimeStamp() {
String result;
Process time;
// date is a command line utility to get the date and the time
// in different formats depending on the additional parameter
time.begin("date");
time.addParameter("+%F");
// time.addParameter("+%D-%T"); // parameters: D for the complete date mm/dd/yy
// T for the time hh:mm:ss
time.run(); // run the command
// read the output of the command
while (time.available() > 0) {
APÊNDICE A - PROGRAMAÇÃO 76
char y = time.read();
if (y != '\n') {
result += y;
}
}
return result;
}
Apêndice B
LAYOUT DE MONTAGEM
Apêndice C
COMANDO
OK
SIM is ready.
AT+CREG?
+CREG: 0,1
OK
The device is registered in home network.
AT+CGATT?
+CGATT: 1
OK
Device is attached to the network
AT+CIPSHUT
SHUT OK
AT+CIPSTATUS
OK
STATE: IP INITIAL
AT+CIPMUX=0
OK
AT+CGEQREQ?
APÊNDICE C - COMANDO 79
+CGEQREQ: 3,4,0,0,0,0,2,0,"0E0","0E0",3,0,0
OK
AT+CGCLASS?
+CGCLASS: "B"
OK
The device supports station class "B"
AT+CGDCONT?
+CGDCONT: 3,"IP","","0.0.0.0",0,0
OK
Following connection profiles are available,
AT+CGACT?
+CGACT: 3,0
OK
AT+CGPADDR=?
+CGPADDR: (1,2,3)
OK
AT+COPS?
+COPS: 0,0,"Oi"
OK
Device is currently on "Oi" network.
Following connection profiles are available,
CID-> 3
PDP Type->IP
APN->
PDP Address->0.0.0.0
Data Compression->0
Header Compression->0
AT+CSTT= "gprs.oi.com.br", "Oi", "Oi"
OK
AT+CIICR
OK
GPRS Connection bring up sucessful.”