Você está na página 1de 8

T02

SISTEMA DE MONITORAMENTO ONLINE DA TEMPERATURA DO


SUBSOLO DE BAIXO CUSTO
Felipe da Costa Félix 1, Glaufe Santos Oliveira 2, Wendrio Vinicius Costa Pereira 3, Tatiane dos
Santos A. Ferreira 4, Rodolfo Pereira da Silva 5, Ciro J. Egoavil Montero 6

RESUMO: Este trabalho apresenta a implementação do protótipo de um sistema embarcado que


permite o monitoramento “remoto” da temperatura do subsolo. O projeto consta com quatro
sensores de temperatura DS18B20, os quais coletarão as temperaturas do substrato geológico em
estudo, em quatro profundidades diferentes. O próprio, é destinado a estudos na área do gradiente
do solo amazônico para efeito de análise de fatores bióticos e sistemas circundantes. Os sensores
estarão conectados à um microcontrolador ATmega328P, que por sua vez, traduz os valores lidos
pelos sensores, e os envia através de um módulo GPRS, à um site que os mostra em uma tabela
contendo os valores, a data e o horário das leituras. Permitindo assim, um monitoramento remoto
em qualquer lugar onde há acesso à internet.

PALAVRAS-CHAVE: Monitoramento à distância, Tecnologia GPRS, Internet.

1. INTRODUÇÃO

O estudo das características térmicas dos solos é necessário para um bom entendimento das
propriedades físicas deste como um todo (PREVEDELLO, 1996). Os parâmetros afetados pela
temperatura podem interferir diretamente em áreas ligadas à objetos de estudo, tais como a
agropecuária, sistemas freáticos, ciclos naturais, e artificias específicos (PREVEDELLO, 1996).
Além disso, pode-se utilizar a temperatura do solo como bioindicador de sistemas bióticos. Porém,
o estudo dessas características dos solos se torna trabalhoso, devido à localização onde
normalmente é feita as medições das temperaturas. Por vezes, são locais ao ar livre ou afastados das
áreas urbanas, os quais comumente não tem acesso à rede por meio de cabos, ou wi-fi; de modo que
para se fazer um monitoramento contínuo das leituras e variações das temperaturas, por um longo
período de tempo; é necessário se alojar nessas locais, ou visitá-los em determinados intervalos de
tempo, o que é muitas vezes inviável.

2. METODOLOGIA

O projeto foi desenvolvido visando um aparelho que pudesse obter leituras de temperatura do
subsolo de maneira eficaz e que possuísse a liberdade de realizar as medições com segurança, em

1 Afiliação: Fundação Universidade Federal de Rondônia – Campus Porto Velho


Email: lipefelix27@gmail.com
2 Afiliação: Fundação Universidade Federal de Rondônia – Campus Porto Velho

Email: glaufesantos@gmail.com
3
Afiliação: Fundação Universidade Federal de Rondônia – Campus Porto Velho
Email: wendrio.ee@gmail.com
4
Afiliação: Fundação Universidade Federal de Rondônia – Campus Porto Velho
Email: tatyalencarr@gmail.com
5 Afiliação: Fundação Universidade Federal de Rondônia – Campus Porto Velho

Email: rpereirasv@gmail.com
6
Afiliação: Fundação Universidade Federal de Rondônia – Campus Porto Velho
Email: ciro.egoavil@unir.br

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL


qualquer lugar e por um longo período de tempo; isto é, sem a necessidade de possuir uma estrutura
de alocação da unidade eletrônica, podendo esta, ser utilizada ao ar livre, e monitorada à distância.
O sistema pode ser segmentado em três blocos: bloco de monitoramento, bloco de transmissão, e
bloco de armazenamento e visualização remoto; como pode ser observado na figura a seguir (figura
1):

Figura 1: Definição dos blocos.

Fonte: Elaborada pelo autor.

2.1 Bloco de monitoramento:

Para a leitura de dados e monitoramento da variação das temperaturas em quatro profundidades


diferentes, se viu a necessidade de quatro sensores de temperatura que gerassem um sinal elétrico,
possibilitando o envio dos valores a uma central de análise de dados. Os sensores deveriam ser
resistentes aos fenômenos climáticos, como a alta umidade produzida pelas precipitações pluviais, e
ter uma precisão satisfatória. Além disso, de forma a abranger a distância de monitoramento, torná-
la mais acessível, prática e segura, procurou-se uma forma de enviar esses dados à um banco de
dados online e exibi-los em uma página da internet.

O sensor DS18B20 (figura 2) foi escolhido por atender os requisitos do projeto, ele é impermeável,
e por isso pode ser alocado ao ar livre sem perigo de danificar o circuito de leitura do mesmo; é
bastante preciso (±0.5 °C de exatidão) e proporciona leituras de temperatura de até 12-bits
(configurável) ocupando apenas uma porta digital do microcontrolador. Ademais, pelo fato de o
sensor possuir um circuito integrado que converte os dados analógicos de temperatura em sinais
digitais, a transmissão do sinal até o microcontrolador se torna menos propensa à possíveis
interferências (THOMSEN, 2015).

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL


Figura 2: Sensor de temperatura DS18B20.

Fonte: www.blog.filipeflop.com (2015)


Disponível em: <http://blog.filipeflop.com/sensores/sensor-de-temperatura-ds18b20-arduino.html>. Acesso em 20 de
setembro de 2016.

2.2 Bloco de transmissão:

Como já citado, o microcontrolador escolhido foi o ATmega328P da Atmel, ele possui uma cpu de
8-bits AVR, 32 kilobytes de memória flash, 1024 bits EEPROM, 2 kilobytes SRAM; e é geralmente
mais barato que os outros microcontroladores do mercado. Sendo assim, pelo preço, hardware, e
versatilidade, se mostrou uma boa opção para o projeto (ATMEL, 2016).

Ademais, para que se pudesse ler as temperaturas do subsolo em locais ao ar livre e ainda assim,
enviar os dados para a internet em tempo real, foi-se empregada a tecnologia GPRS, a qual permite
uma conexão satisfatória à internet (em situações ideais, pode ultrapassar a marca dos 170kbps de
transferência de dados) em qualquer local onde haja rede de telefonia, por um custo razoável. Com
o objetivo de utilizar tal tecnologia, o GSM/GPRS Shield com o módulo SIM900 da TinySine
(figura 3), foi escolhido. O mesmo trabalha com 5 volts de alimentação, Quad-Band (850/ 900/
1800/ 1900 MHz), baixo consumo de energia (1,5 mA em sleep mode), e é feito especificamente
para trabalhar com o ATmega328P (TINYSINE, 2014).

Figura 3: GSM/GPRS Shield da TinySine.

Fonte: www.tinyosshop.com.
Disponível em: <http://www.tinyosshop.com/index.php?route=product/product&product_id=464>. Acesso em 20 de
setembro de 2016.

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL


2.3 Bloco de armazenamento e visualização remoto:

Com o intuito de permitir a análise e leitura das temperaturas lidas pelos sensores através da
internet, um site foi criado e hospedado de forma gratuita pelo serviço 000webhost.com, onde, após
a criação de uma conta no site, é disponibilizado um servidor com 1,5 GB de espaço, suporte à
PHP, MySQL, FTP, entre outros. A criação do site se dividiu em duas etapas, a criação e
configuração do banco de dados MySQL, e a criação dos arquivos em PHP (ARDUINO E CIA,
2015).

O banco de dados foi desenvolvido em MySQL, de forma online, utilizando a opção do painel de
controle do site disponibilizado pelo 000webhost.com (figura 4).

Figura 4: Opções do painel de controle do 000webhost.com.

Fonte: Elaborada pelo autor.

Através do phpMyAdmin, ainda no painel de controle (figura 4), foi criado uma tabela com cinco
campos, um campo tipo timestamp, onde será armazenado a data e a hora em que os dados das
temperaturas chegam ao banco de dados, e os outros quatro, tipo float, os quais armazenaram cada
um, a leitura de um sensor (figura 5). Além do mais, o phpMyAdmin online, permite ainda o
gerenciamento desses dados, como exclusão, adição, edição e download.

Figura 5. Tabela criada no banco de dados.

Fonte: Elaborada pelo autor.

Ainda para a criação do site, foram criados três arquivos no bloco de notas usando a linguagem
PHP, e salvos no formato PHP, connect.php, add.php, e index.php. O arquivo connect.php, cria
uma função “Connection” que conterá todos os dados do banco de dados criado, e por meio da
função mysql_connect(), e desses dados; abre uma conexão com o banco. E caso não haja conexão,
o erro é indicado pela função mysql_error().

No add.php, o arquivo connect.php é incluso, e a função criada “Connection()” é usada para abrir
uma conexão. Logo mais, a matriz de caracteres enviada pelo GSM/GPRS Shield, é recebida via
POST; os valores das temperaturas que estão salvos na matriz, são separados de acordo os
respectivos sensores, convertidos em variáveis float, e adicionados ao banco de dados utilizando a
função mysql_query()’ e a instrução SQL “INSERT INTO”. Após isso, o banco de dados é
desconectado.

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL


O último arquivo, index.php, se conectará ao banco de dados assim como no anterior, porém, ao
invés de adicionar dados, irá resgatá-los através da função mysql_query. O mesmo, inclui ainda o
código da interface do site em HTML, a qual mostra em uma tabela, os valores de temperatura, o
dia, e a data em que foram obtidas; e atualiza a mesma sempre que novos dados são recebidos,
usando a função mysql_fetch_array().

O algoritmo implementado no ATmega, foi escrito utilizando as bibliotecas


GSM_GPRS_GPS_Shield, Dallas Temperature, e a OneWire; sendo as duas últimas necessárias
para a utilização dos sensores. Ele se divide basicamente em duas partes, a parte de leitura dos
sensores, e a parte de envio das informações para o site. Antes do código entrar na função void
setup(), as bibliotecas são incluídas, o pino digital 11 do ATmega é definido para receber os valores
das temperaturas e as variáveis usadas de leitura e envio das temperaturas são declaradas. Entrando
no void setup(), os sensores são ligados para começarem a medir as temperaturas, o GSM/GPRS
Shield também é ligado, e a conexão com a rede de telefonia, é testada. Se houver conexão, a
variável booleana “started” que foi declarada antes, se torna verdadeira.

Na função void loop() que será executada em loop enquanto o ATmega estiver ligado, os valores
dos sensores serão salvos em variáveis float, separados entre a parte decimal e a inteira, e
convertidos em inteiros. Logo, se torna possível a criação de uma matriz de caracteres que será
utilizada no envio dos dados. A separação e conversão é feita dessa maneira:

a = (int)temp1;
b = temp1 - a;
c = (int)(b*100);
.
.
.
l = (int)(k*100);

Em que a função int retorna apenas a parte inteira do valor referente. Por fim, os valores são salvos
na matriz:
char msg[8] = {a, c, d, f, g, i, j, l};

Feito isso, é conferido se a variável “started” é verdadeira, e caso for, a função “envia_GSM()”,
criada no código, é usada para enviar a matriz “msg”.

Na função, é verificado se há conexão com a internet, pela rede da operadora de telefonia do chip
que está sendo usado; depois, uma string é criada com o nome que será reconhecido pelo código em
PHP já citado acima; mais a matriz ‘msg’; ficando assim:

String valor = “MSG_Valor1 =” + msg;

Essa string é então convertida para uma matriz de caracteres e enviada via POST usando a função
inet.httpPOST(). Após o envio, é esperado 30 minutos para que os dados possam ser lidos e
enviados outra vez.

O ATmega por sua vez, é alimentado por uma fonte de 9 V, com uma regulação de tensão para 5 V,
e 1 A de corrente, podendo ser substituído por uma bateria, que tornaria o projeto mais portátil.

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL


2.4 Fluxograma de funcionamento do envio de dados (figura 6):

Figura 6: Fluxograma de funcionamento do envio de dados.

Início

float: temp1, temp2,temp3, temp4, b, e, h, k = 0; Leitura das


temperaturas
Int: a, c, d, f, g, i, j, l = 0;
Boolean: started = false.

Codificação dos
dados, os quais
são salvos em
uma matriz de
GPRS/GSM Shield caracteres “msg”.
está conectado à Sim
rede do cartão
SIM?
Não

A matriz Conexão
30
“msg” é
Sim com a
minutos.
enviada. internet?

Não

Fonte: Elaborada pelo autor.

Para os testes, foi usado um cartão SIM com um plano da operadora, que tem pacote de internet de
300 MB, e outras funcionalidades irrelevantes. Para uso do projeto no monitoramento, uma
operadora com mais abrangência de sinal, ou algum plano mais barato que contenha apenas pacote
de internet, pode ser escolhida, deixando o uso do projeto mais barato e melhor.

2.5 Fluxograma de funcionamento do recebimento de dados (figura 7):

Figura 7: Fluxograma de funcionamento do recebimento de dados.


Os dados são Os dados são
recebidos, importados do
traduzidos e banco de dados
Início Fim
adicionados em e mostrados em
um banco de uma página da
dados MySQL internet.
Fonte: Elaborada pelo autor.

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL


3. RESULTADOS E DISCUSSÕES

Os resultados no geral foram satisfatórios, a velocidade de internet disponibilizada pela operadora


usada nos testes, mais a velocidade de processamento do ATmega, permitiram que os dados fossem
enviados em torno de 1 minuto a partir das leituras.

Em um dos testes realizados o projeto ficou ligado por volta de 2 horas, e ao invés dos 30 minutos
citados, o tempo entre uma leitura e outra era de apenas 1 minuto e 30 segundos. Os resultados no
intervalo das 01:59:54 horas às 02:40:47 da manhã, do dia em que o teste foi feito, foram os
mostrados na figura 8 abaixo:

Figura 8: Resultados mostrados no site.

Fonte: Elaborada pelo autor.

Devido à alta frequência de leitura e envio, houveram alguns erros no processo. Esses erros podem
ser corrigidos ao se usar um microcontrolador mais robusto, uma rede melhor de internet, ou apenas
uma frequência menor, que é o caso do nosso projeto.

4. CONCLUSÕES

Neste trabalho, foi desenvolvida uma forma de monitoramento a distância usando a internet, para o
monitoramento da temperatura do solo em 4 profundidades diferentes; visando utilizar a leitura
desses dados em estudos futuros. Porém, com pequenos ajustes, pode-se usar este trabalho para
monitoramento e estudo em diversas outras áreas e aplicações.

Com um pouco de investimento a mais, o mesmo pode ser ainda aprimorado, como já foi dito
acima, e se tornar mais eficiente. Podendo ser usado na indústria e sistemas de segurança, por
exemplo.

REFERÊNCIAS BIBLIOGRÁFICAS

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL


ARDUINO E CIA (2015). “Tutorial: como acessar a internet com o Arduino GSM Shield
SIM900”. Disponível em: <http://www.arduinoecia.com.br/2015/11/acessar-internet-arduino-gsm-
shield-sim-900.html>. Acesso em: 10 jun. 2016.

ARDUINO E CIA (2015). “Acione portas do Arduino por SMS e realize chamadas telefônicas com
o GSM Shield SIM900”. Disponível em: < http://www.arduinoecia.com.br/2015/09/arduino-gsm-
shield-sim900-efcom.html>. Acesso em: 10 jun. 2016.

ATMEL CORPORATION (2016). “ATmega328P”. Disponível em:


<http://www.atmel.com/pt/br/devices/ATMEGA328P.aspx>. Acesso em: 14 set. 2016.

MASSIMO, Banzi; SHILOH, Michael. Getting Started with Arduino: The Open Source Electronics
Prototyping Platform. 3. ed. Sebastopol, CA: Maker Media, 2014. 262p. (Make).

THOMSEN, ADILSON (2015). “Medindo temperatura debaixo d’água com DS18B20”.


Disponível em: <http://blog.filipeflop.com/sensores/sensor-de-temperatura-ds18b20-arduino.html>.
Acesso em: 15 jul. 2016.

MAXIM INTEGRATED PRODUCTS (2015). “DS18B20 - Programmable Resolution 1-Wire


Digital Thermometer”. Disponível em:
<https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf>. Acesso em: 15 jul. 2016.

TINYSINE ELECTRONICS (2014). “GSM/GPRS Shield Datasheet”. Disponível em:


<http://www.tinyosshop.com/datasheet/GSM%20Shield%20Datasheet.pdf>. Acesso em: 20 jun.
2016.

MIRANDA, SAMUEL (2012). “Colocar fotos lado a lado HTML”. Disponível em:
<http://techformatica.blogspot.com.br/2012/04/colocar-fotos-lado-lado-html.html>. Acesso em: 15
out. 2016.

THE PHP GROUP (2001-2016). “ord”. Disponível em:


<http://php.net/manual/pt_BR/function.ord.php>. Acesso em: 23 jun. 2016.

PREVEDELLO, C.L. Física do solo: com problemas resolvidos. 1. ed. Curitiba: O Autor, 1996.
446p.

IV Semana de Engenharias – Campus do Sertão – Delmiro Gouveia-AL