Monitorar Temperatura - Arduino
Monitorar Temperatura - Arduino
Monitorar Temperatura - Arduino
RESUMO: Utilizar o Arduino para monitorar a temperatura da sala de Servidores computacionais, demonstrar que mesmo aqueles que no possuem conhecimento em eletrnica podem criar circuitos de alto nveis com essa plataforma. ABSTRACT: Using the Arduino to monitor the room temperature Server computer to show that even those who lack knowledge in electronic circuits can create high levels with, circuits this platform. PALAVRAS-CHAVE: Arduino. Ventilador. Sensor de Temperatura
____________________________________________________________________________
projeto para monitorar uma sala de servidores computacionais. Como qualquer outro equipamento, o Geralmente, o curso de Sistemas de Informao no possui disciplinas que tratam da rea de eletrnica. Devido a isso, os alunos se formam sem ter os conhecimentos necessrios para, por exemplo, sistema de refrigerao tambm pode apresentar problemas, o que pode ocasionar o superaquecimento dos servidores levando-os a falhas e deixar de prestar os servios de CPD (Centro de Processamento de Dados). Para estes casos necessrio estar
1 INTRODUO
construir dispositivos que automatizem certas tarefas bsicas. Atualmente, ouve-se muito falar sobre Arduino, principalmente quando no evento Google I/O 2011, a equipe do Android anunciou o mesmo como oficial para automao domstica. Este, tem como objetivo criar ferramentas que so acessveis, com baixo custo, flexveis e fceis de se usar por profissionais e amadores e principalmente para aqueles que no teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas. Na verdade se trata de um computador fsico baseado numa simples plataforma de hardware livre, projetada com um microcontrolador de placa nica, com suporte de entrada/sada embutido e uma linguagem de programao padro. Devido a sua simplicidade, custo baixo, e flexibilidade, este ser adotado neste
prevenido com, no mnimo, um sistema de controle de temperatura, para que sejam tomadas as providncias antes do superaquecimento.
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
2 1.3 OBJETIVO
O objetivo desse projeto criar uma ferramenta para monitorar a temperatura da sala dos servidores computacionais, executar as medidas necessrias para evitar o superaquecimento, garantir a prestao dos servios do CPD (Centro de Processamento de Dados) e criar um circuito com o mnimo aluno de Massimo, David Mellis, que ficaram
responsvel por criar a linguagem de programao do Arduino. Todo projeto foi concebido seguindo os princpios do open source, da mesma forma que seus circuitos eletrnicos e tambm todos aqueles que foram criados para serem conectados a ele, podem ser copiados e modificados (McRoberts, 2011, p.22). O primeiro Arduino foi batizado de Diecimila, o que quer dizer 10 mil, nmero de vendas, composto por duas partes principais: um hardware, formado por um
conhecimento em eletrnica.
2 HARDWARE E SOFTWARE
conjunto bsico de componentes eletrnicos montado numa placa de circuito impresso, que a plataforma para o desenvolvimento de prottipos; e um software,
2.1 ARDUINO
O Arduino surgiu em janeiro de 2005, na Itlia na cidade de Ivrea, a partir das idias de Massimo Banzi e David Cuartielles, que queriam ensinar eletrnica e programao de computadores a seus alunos de design, para que eles usassem em seus projetos de arte, interatividade e robtica. Mas, o desafio de ensinar eletrnica e programao para universitrios que no so da rea era uma tarefa rdua, outra dificuldade era a inexistncia de placas poderosas e
um aplicativo, o bootloader, residente na memria de programas microcontroladores embarcado no Arduino (Silveira, 2011, p.32).
Figura 2 - Arduino Diecimila Fonte - (Banzi, Cuartielles, Igoe, Martino, Mellis, 2005)
Arduino
Diecimila
utiliza
processador
AVR
(Advanced Virtual Risc) ATMega8 da Atmel e opera com uma faixa de tenso entre 6 e 20 Volts, que pode ser alimentado por uma conexo USB ou fontes externas gerenciada pelo regulador LM7805, pode fornecer at 40mA de corrente para circuitos externos atravs de pinos de sada ou um pino de 5v, tem 16K Figura 1 - Primeiro prottipo do Arduino de 2005 Fonte - (Kushner, 2011) de baixo custo no mercado. Foi partindo dessa necessidade que Massimo e David Cuartielles de memria flash para armazenamento de cdigos, sendo que 2KB so utilizados pelo bootloader, uma memria SRAM de 1KB, uma memria EEPROM de 512 bytes, e um clock de 16Mhz. Para interagir com o ambiente, a placa possui 20 pinos de Entrada/Sada, sendo que 14 portas so digitais e 6 analgicas.
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
Figura 3 - Arduino Duemilanove Fonte - (Banzi, Cuartielles, Igoe, Martino, Mellis, 2005)
Criado em 2009 na Itlia, seu nome uma referncia ao seu ano de lanamento. Uma das caractersticas a seleo automtica do fornecimento de energia apropriada (USB ou de alimentao externa), Figura 4 - IDE (Integrated Development Environment) Fonte - (Banzi, Cuartielles, Igoe, Martino, Mellis, 2005)
eliminando a necessidade de alterar o jumper, como era em verses anteriores e o reset automtico que pode ser realizado por comando dispensando a necessidade de pressionar o boto na placa
Essas bibliotecas nos permitem criar com facilidade muitas operaes de entrada e sada, tendo que definir apenas duas funes para um programa rodar. A funo setup(), que inserida no inicio, e nos
fisicamente. Ele possui 14 pinos de entrada/sada digital (dos quais 6 podem ser usados como sadas analgicas PWM), 6 entradas analgicas, um cristal oscilador de 16 MHz, uma conexo USB, uma entrada para alimentao, um cabealho ICSP (In Circuit Serial Programming) e um boto de reset (Banzi, Cuartielles, Igoe, Martino, & Mellis, 2005).
permite seu uso para iniciar a configurao, e a loop() executada repetitivamente, executando seus blocos de comandos ou esperar at que seja desligada. O ambiente de desenvolvimento (IDE) constitui-se em uma aplicao multiplataforma escrita em Java, baseado no ambiente Processing e de cdigo fonte
coberto pela licena GPL, que requer que quaisquer modificaes sejam de cdigo-livre e sob a mesma licena. Ela no probe a venda de derivaes ou sua incluso em produtos comerciais. Processing uma linguagem de programao livre, desenvolvida no MIT (Massachussetts extremamente Institute rpida, of Technology), e de e
acessvel
fcil
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
4
aprendizado, sem deixar de lado a potncia e o rigor, de linguagens de programao mais complexas. O IDE dividido em trs partes: a Toolbar (Barra de Ferramentas) no topo, o Sketch (Janela para inserir o cdigo) no centro, e a janela de mensagens na base. Tabela 1 IDE - Toolbar Comandos Possui uma sada de tenso linear relativa temperatura em que ele se encontra no momento em que for alimentado por uma tenso de 4-20 Vdc e GND, equivalente a 10mV para cada Grau Celsius de temperatura (National Semiconductor, 2011). Tem a grande vantagem em relao aos demais sensores de temperatura calibrados em kelvin, por no necessitar de nenhuma subtrao para obter uma escala de temperatura em Graus Celsius. Este sensor receber uma alimentao simples ou simtrica, dependendo do que se deseja como sinal de sada, mas independentemente disso, a sada continuar sendo de 10mV por C. O sensor LM35 apresentado com vrios tipos de encapsulamentos, sendo o mais Antes dos cdigos serem enviados para placa, o compilador realiza uma anlise lxica, sinttica e semntica, sinalizando possveis erros. Durante o upload esses cdigos so convertidos em assembly e transferidos para o arduino via porta serial (Silveira, 2011, p.41). O download dessa ferramenta pode ser realizado http://arduino.cc/hu/Main/Software. comum o TO-92 (Figura 6), que mais se parece com transistor, e oferece tima relao custo benefcio, por ter um preo bem menor do outros modelos e propiciar a mesma preciso dos demais. No caso do encapsulamento TO-92, o tempo necessrio para equilibraro da temperatura em relao ao ambiente externo de aproximadamente dezesseis segundos.
Este tempo necessrio para o dispositivo dissipar o calor do meio externo (McRoberts, 2011, p.307).
2.3 REL
Rel um componente eletromecnico que controla circuitos externos de corrente alternada a partir de pequenas correntes ou tenses, ou seja, ao acionar Figura 5 - LM35 Fonte - http://www.eletrica.ufpr.br/edu/ Sensores/ 20071/LM35.html um rel com 5 volts podemos controlar um motor que esteja ligado em 110 volts. Seu funcionamento bem
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
5
simples: quando uma corrente circula pela bobina, esta cria um campo magntico que atrai uma armadura fechando ou abrindo circuitos, alternado entre os contatos, conforme Figura 7. diodos, capacitadores e transistores, que so
interligados de forma simultnea dentro de um mesmo corpo. Normalmente composto por uma pastilha de silcio, constituindo um dispositivo nico que realiza a funo do circuito. So indicados principalmente em aplicaes que tm funes repetitivas e possuem espaos limitados.
2.4.1 ULN2003
O CI ULN2003 uma matriz de transistores darlington (Figura 8), que pode controlar correntes de at 500 mA e tenso de sada at 50 volts.Possui sete entradas que podem controlar at sete sadas Figura 7 - Funcionando do Rel http://www.sabereletronica.com.br/secoes/leitura/837 (Toshiba, 2006).
Ao cortar a corrente da bobina, o campo magntico interrompido, fazendo com que os a armadura volte para sua posio inicial. Os rels podem ter diversas configuraes quanto aos seus contatos: podem ter contatos NA (normalmente aberto), NF (normalmente fechado) ou ambos, neste caso com um contato comum ou central (C). O contato NA o que esta aberto enquanto a bobina no est energizada. O NF abre quando a bobina recebe uma corrente. O contato C alterna entra NA e NF, estabelecendo conduo. A principal vantagem dos Rels o isolando completo do controle dos circuitos de carga, que nos permite trabalhar com tenses diferentes entres controle (Ex. Arduino) e carga (Ex. Ventilador). Por ser um dispositivo mecnico, possuem vida til (Silveira, 2011, p.113). Python uma linguagem de programao de alto nvel, interpretada, orientada a objetos, de tipagem dinmica e forte que nos permite trabalhar mais produtivamente e integrar sistemas de foma eficaz. Foi elaborada por Guido Van Rossum em 1991 no Instituto de Pesquisa Nacional para Matemtica e Figura 8 - Circuito integrado ULN2003 Fonte - (Toshiba, 2006)
2.5 PYTHON
Cincia da Computao (CWI). A linguagem foi projetada com a filosofia de enfatizar a importncia do esforo do programador sobre o esforo
6
a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padro e por mdulos e frameworks desenvolvidos por terceiros. Contm uma grande variedade constituem de biblioteca e funcionalidades sendo que de Grfico 1 Monitoramento 01 Sala Servidores
diversas
implementaes,
manuseio de conexes HTTP, processamento de XML e HTML, bancos de dados e muito mais. O nome Python teve a sua origem no grupo humorstico britnico Monty Python, criador do programa Monty Python's Flying Circus, embora muitas pessoas faam associao com o rptil do mesmo nome (em portugus, ptonou pito) (Filgueiras, 2011).
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
7
Grfico 3 Monitoramento 03 Sala Servidores Tabela 2 Variao de temperatura e Tempo
equipamentos
foram
acionados
novamente, isso ocorreu por volta das 16:00. Com a descrio desses dados pode-se resumir que a cada 10 minutos tivemos um aquecimento mdio de 1.15. Embasado nos dados obtidos, a partir da monitorao realizada no perodo de trs dias consecutivos, podemos observar que a que a temperatura mdia elevada algo que gira em torno de 23 C.
Os dados foram coletados utilizando o sensor LM35. Estes foram salvos em um arquivo, com intervalo de 1 segundo, por uma aplicao desenvolvida em Python. Na Tabela 2 temos a mdia da leitura desses dados, juntamente com a dos pontos Mnimo e Mximo.
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
8
Aps acionar os equipamentos de refrigerao, a temperatura aproximada de 23 C foi alcanada s 17:30, o que nos leva a deduzir que a queda mdia da temperatura foi de 0.7 a cada 10 minutos. Ou seja, a temperatura elevada de forma mais rpida do que estabilizada. se observar que a variao mdia entre os dois, de 1 C, o que insignificante para este projeto. Grfico 6 Temperatura Arduino x Termmetro
4 PROJETO
A definio do ponto crtico da temperatura uma parte fundamental para que o Arduino seja preparado para executar as medidas propostas a este projeto. O sensor de temperatura LM35 detecta a temperatura que tratada no arduino e enviada a cada 1 segundo a porta serial do servidor. Ao atingir 26 C um e-mail enviado para os responsveis e um ventilador acionado. O e-mail ser reenviado a cada 10 minutos e o ventilador s ser desligado ao atingir uma temperatura menor do que 26 C.
int portaRele = 7; //Varivel para monitorar o tempo da prxima leitura int tempoAnterior = millis(); const int RELE_ON = HIGH; const int RELE_OFF = LOW; void setup() { //Iniciando Serial Serial.begin(9600);
paralelamente a um termmetro certificado pelo Inmetro, no mesmo espao fsico. No Grfico 7, pode-
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
9
//Definindo porta do rel como sada pinMode (portaRele, OUTPUT); //Definido porta de sada para o rel como OFF digitalWrite(portaRele,RELE_OFF); } void loop() { /*Garante que outra leitura seja realizada somente no tempo definido na varivel TEMPO_LEITURA*/ if((millis() - tempoAnterior) > TEMPO_LEITURA) { //Realiza a quantidade de leitura definida em SAMPLES for (int i=0; i <= SAMPLES; i++) { // Faz a leitura do pino analgico do sensor e armazena em valAnalog valAnalog = analogRead(SENSOR_TEMP); //Armazena as temperaturas em um vetor convertida em grau Celsius tempvector[i] = (5.0 * valAnalog * 100.0) / //Soma as temperaturas e armazena tempSensor = tempSensor + tempvector[i]; } //Calcula a mdia das temperaturas e as armazena em tempSensor tempSensor = tempSensor / SAMPLES; /*Liga o ventilador se a temperatura critica for atingida*/ if (tempSensor >= TEMP_CRITICA){ digitalWrite(portaRele,RELE_ON); } else{ digitalWrite(portaRele,RELE_OFF); } //Envia a temperatura para a porta COM Serial.println(tempSensor); //tempoAnterior recebe tempo para iniciar uma nova contagem tempoAnterior = millis(); } 1024.0;
Para isolar eletricamente o ventilador, que exige grande potncia para ser ativado, do Arduino, de baixa corrente, utilizaremos um rel de modelo Song Chuan 833H-1C-C (Figura 10). Este modelo alimentado por uma tenso de 5 volts e suporta uma
voltagem
mxima
de
comutao
AC
(corrente
alternada) de 250 VAC. Para integrao do rel no circuito, so utilizados componentes como resistores, diodos e transistores. Estes componentes so
necessrios para segurar o campo magntico de retorno do desacionamento da bobina do rel. Porm
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
10
Este CI (Figura 11) suporta uma corrente de no mximo 500 mA, o rel consome em sua bobina 70mA e suporta uma carga bem maior do que o consumo do ventilador de modelo HT-900 (Figura 9) do fabricante Honeywekk que consome 0.6 Amp, sendo que os contatos do rel suportam 1 Amp de corrente. Na A placa ser ser plugada por cima do Arduino, na Tabela 3, temos o mapeamento dos pinos da placa projetada em relao as portas do Arduino. Tabela 3 Circuito x Porta Arduino
Figura 12 podemos visualizar a placa com todos os circuitos eletrnicos que sero utilizados para monitor a temperatura e ativar o ventilador (Figura 9).
Ao atingir a temperatura de ponto crtico de 26 C o arduino aciona o ventilador. O mesmo ser desligado novamente ao atingir uma temperatura menor do que 26 C.
Na Figura 13 temos o projeto esquemtico do circuito. Ambas as figuras foram desenvolvidas no software Eagle (Easily Applicable Graphical Layout Editor) por ser um aplicativo freeware. Foi desenvolvido pela
comunicao com a porta serial e o envio de e-mail, e principalmente por ser uma linguagem cdigo aberto, gratuita e multiplataforma. Abaixo segue o cdigo completo comentado:
arquivo=open('output.csv', 'a')
11
#Recebe valor lido da porta serial. fValor1 = 0.00 #Definio do valor crtico da temperatura. TEMP_CRITICA = 26.00 #Busca hora atual no sistema para futurar comparaes hora = datetime.now() #Busca hora atual no sistema para futurar comparaes horaArquivo = datetime.now() #Garantir envio de e-mail imediato iniciando com 10 minutos a menos horaResult = datetime.now()-timedelta(seconds=600) #Loop infinito para leitura da porta serial while 1: #Verifica se esta recebendo dados pela porta serial if pSerial.inWaiting() > 0: #Comparao entre o tempo a atual e o ultimo e-mail.(10 minutos) hora=datetime.now()-horaResult #L valor recebido na porta serial fValor1 = float(pSerial.readline()) print ("Valor Lido: "+str(fValor1) +" - "+ str(hora)) #Se existe leitura de temperatura, ento insere esta no arquivo output.csv if ((str(fValor1) != "") and (str(horaArquivo) < str(datetime.now()))): arquivo.write(str(fValor1) + ";" + datetime.now().strftime("%d/%m/%Y H:%M:%S") + "\n") arquivo.flush(); #Garantir que cada leitura ser salva a cada 1 minuto evitando sobregarregar horaArquivo = datetime.now() + timedelta(seconds=60) #Se valor lido de temperatura maior que o crtico e menos do que 10 minutos desde o envio do ultimo e-mail, ento envia. if (fValor1 > TEMP_CRITICA) and (str(hora) > '0:10:00.000000'): #Tratar erro try: print("==============Ateno: Elevada================") horaResult = datetime.now() #cria um cliente smtp que conectar em smtp.gmail.com na porta 587 gm = smtplib.SMTP("smtp.gmail.com", 587) print ('E-mail esta sendo enviado') #nos identificamos no servidor gm.ehlo() #indicamos que usaremos uma conexo segura gm.starttls() #reidentificamos no servidor(necessrio apos starttls ) gm.ehlo() #faz o login Temperatura mail.") except SomeSendMailError: print ("Erro de converso") #Fecha o arquivo ao encerrar a aplicao arquivo.close() } gm.login("e-mail@com", "senha") #Cria um email contendo texto mail = MIMEText("A temperatura da sala esta acima do permitido. Atual: " + str(fValor1) + " Permitido: " + str (TEMP_CRITICA) + " - " + horaResult.strftime('%d/%m/%Y %H:%M')) #Setar destinatrio e assunto mail["To"] = "e-mail@destinatrio" mail["Subject"] = "Temperatura Elevada Sala Servidores" #Envia o email. gm.sendmail("e-mail@destinatrio", "email@emitente", mail.as_string()) print ('E-mail enviado com Sucesso !!') #fecha a conexo gm.close() except IOError as errno: print ("No foi possvel enviar o email. ",errno) except ValueError as erro: print ("Erro de converso",erro) except smtplib.socket.gaierror: print ("Erro de converso") except (smtplib.SMTPAuthenticationError, smtplib.SMTPSenderRefused): print ("Erro de identificao do e-
Em
casos,
aonde
internet
no
encontra-se
disponvel, quando um e-mail enviado, uma nova tentativa ser realizada 10 minutos depois.
5.3 CIRCUITO
Na Figura 14 temos o circuito finalizado, constitudo pelos componentes de rel, CI, jumpers, sensor e conectores. Aps a realizao do desenho do projeto no Eagle e a impresso da placa, frisada utilizando o equipamento FRESADORA CNC (Controle Nmero Computadorizado), todos componentes foram
soldado manualmente, formando a placa composta pelo conjunto de componentes necessrio a este projeto, rel, sensor de temperatura dentre outros.
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
12
comportamento dos sistemas de refrigerao; estabilidade do Arduino.
Aps a confeco da placa, a mesma foi plugada ao Arduino (Figura 15) que sequencialmente foi
7 CONCLUSO
Este projeto teve como objetivo desenvolver um Figura 15 - Circuito com o circuito conectado dispositivo (composto pelo Arduino e um circuito eletrnico) utilizado para medir a temperatura de uma sala de servidores computacionais. Em paralelo, foi
6 TESTES FINAIS
Aps a concluso de todo projeto, partimos com o mesmo para produo. Alguns reparos foram
implementado um script que recebe a temperatura enviada por esse dispositivo e alerta, por meio de emails, que a temperatura da sala excedeu um determinado valor permitido. O objetivo esperado foi demonstrar que com o Arduino, aqueles que no conhecem eletrnica, e possuem um conhecimento mnimo em programao podem criar projetos de alto nvel. Apesar da simplicidade do projeto e a possibilidade de fazer o mesmo com menor custo, o mesmo se torna mais vivel com o Arduino devido expanso em que pode-se realizar. A partir desse projeto a expanso de para ligar no apenas um, mais vrios circuitos de corrente alterada pode ocorrer com poucas modificaes. Outras possibilidades como sensor de presena, incndio, fotoclula so coisas que podem ser aplicadas e expandidas com facilidade. Este trabalho um bom inicio para aprender sobre o Arduino e despertar a imaginao.
realizados para garantir sua estabilidade, como por exemplo, o tratamento do cdigo do e-mail na ausncia da conexo da internet. Durante os 15 dias que de monitoramento, os resultados demonstrados so otimistas, o servio de e-mail demonstrou-se bem eficiente e a temperatura bem estvel, ou seja, os testes que realizamos no incio do projeto o que esperamos aps sua finalizao. O arquivo de log, contendo a temperatura diria a cada um minuto, tem sido uma excelente ferramenta de analise. A partir desses dados levantamos informaes que no havamos conhecimento: temperatura mdia da sala; horrio de maior aquecimento dos servidores;
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/
____________________________________________________________________________ REFERNCIAS
BANZI, M., CUARTIELLES, D., IGOE, T., MARTINO, G., & Mellis, D. (2005, 10 27). Arduino. Retrieved 04 23, 2012, from Arduino: http://arduino.cc/en/Main/ArduinoBoardDiecimila FILGUEIRAS, R. P. (2011, 09 14). Python Brasil. Retrieved 05 30, 2012, from Python: http://www.python.org.br KUSHNER, D. (2011, 10). Spectrum. Retrieved 04 23, 2012, from Spectrum: http://spectrum.ieee.org/geeklife/hands-on/the-making-of-arduino/0 MCROBERTS, M. (2011). Arduino Bsico. So Paulo: Novatec. NATIONAL SEMICONDUCTOR. (2011). National. Retrieved 05 26, 2012, from National Semiconductor: https://www.national.com/ds/LM/LM35.pdf SILVEIRA, J. A. (2011). Experimentos com o Arduino. So Paulo: Ensino Profissional. TOSHIBA. (2006, 06 14). Retrieved 05 30, 2012, from http://www.wvshare.com/datasheet/TOSHIBA_PDF/UL N2003.PDF
e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/