Você está na página 1de 13

MONITORAMENTO DE TEMPERATURA COM 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.

1.2 DIFICULDADES DO PROJETO


Embora o Arduino possa tornar a eletrnica muito acessvel, mesmo para aqueles que no possuem nenhum conhecimento rea, desafios como calibrao do sensor de temperatura, ligar um dispositivo de corrente alternada e comunicar todo esse conjunto com o computador so tarefas desconhecidas. Ainda que o Arduino torne a parte da eletrnica mais simples, isso no torna oculta neste projeto.

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.

decidiram criar sua placa prpria, com a ajuda do

e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/

3 2.1.1 ARDUINO DUEMILANOVE


O Arduino Duemilanove (Figura 3) constitudo por um microcontrolador baseado no ATmega328. verses atualizadas do ncleo e bibliotecas. Qualquer modificao deve ser liberada sob licena LGPL.

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

2.1.2 LINGUAGEM DO ARDUINO


A linguagem do Arduino composta por um conjunto de funes, que formam uma biblioteca, de licena Lesser General Public License (LGPL), de nome Wiring, em C/C++, que podem ser chamadas em seu cdigo. A licena LGPL, requer a disponibilizao dos arquivos que permitam a religao do firmware com

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.

2.2 SENSOR DE TEMPERATURA LM35


O LM35 um termmetro fabricado pela National Semiconductor que funciona de forma simples e muito precisa (Figura 5), tornando muito fcil sua utilizao. Figura 6 - TO-92 de encapsulamento de plstico Fonte - (National Semiconductor, 2011)

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

2.4 CIRCUITO INTEGTRADO


CI (circuito integrado) pode ser definido como um conjunto de componentes formando por: resistores,

Cincia da Computao (CWI). A linguagem foi projetada com a filosofia de enfatizar a importncia do esforo do programador sobre o esforo

computacional. Prioriza a legibilidade do cdigo sobre


e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/

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).

3 SALA DOS SERVIDORES


A sala de servidores computacionais um espao que somente os responsveis pelo departamento de T.I. (Teconologia da Informao) podem ter acesso ao seu ncleo. O sistema de refrigerao deste ncleo, como qualquer equipamente eletrnico, pode apresentar problemas. Portanto, o monitoramento da temperatura deve ser constante neste ambiente. Grfico 2 Monitoramento 02 Sala Servidores No segundo dia, como exposto no Grfico 2, obtevese uma variao mdia de 2.5 C, sendo o mnimo de 21.34 C s 7:00 da manh e o mximo de 23.87 C s 14:00 da tarde.

3.1 TEMPERATURA DA SALA DOS SERVIDORES


Um ponto muito importante para este projeto conhecer o comportamento da temperatura do espao fsico ocupado pelo Servidores Computacionais. Para adquirir essa informao e definir marcas importantes como ponto crtico e mdio da temperatura, a monitorao dessa sala foi relizada durante o perodo de trs dias consecutivos. A partir da coleta desses dados, foi possvel analisar as informaes e chegar a concluses do comportamento da temperatura. Na coleta realizada do primeiro dia, como pode se observar no Grfico 1, obteve-se um variao mdia de 2 C, sendo o mnimo de 21.34 C s 9:00 da manh e o mximo de 22.89 C s 15:00 da tarde. No terceiro dia, como exposto no Grfico 3, obteve-se uma variao mdia de 2 C, sendo o mnimo de 21.38 C s 6:00 da manh e o mximo de 23.60 C s 15:00 da tarde.

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

3.2 TESTE DE ESTABILIDADE


Para verificar o comportamento de elevao da temperatura na sala dos servidores computacionais, na ausncia dos equipamentos de refrigerao, os O Grfico 4 apresenta o conjunto de informaes relativas ao monitoramento de trs dias. Em mdia, obteve-se uma variao 2.17 C, sendo o mnimo de 21.36 C s 07:00 da manh e um mximo de 23.45 C s 15:00 da tarde. Grfico 4 Monitoramento Sala Servidores mesmo foram desligados propositalmente s 15:00 e a temperatura mdia da sala era de 23.81 C. Ao atingir uma temperatura de aproximada refrigerao de 30 C os

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.

Grfico 5 Monitoramento Sala Servidores

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

3.3 PONTO CRTICO


A partir dos dados coletados durante os trs dias, percebe-se a que a temperatura mdia da sala de 23 C. Aps o teste de estabilidade, que foi realizado para verificar a elevao da temperatura na ausncia dos equipamentos de refrigerao, percebe-se que uma temperatura de 26 C algo que nos permite tomar as medidas necessrias e no superaquecer os servidores. Portanto, ficou definido que o ponto crtico da temperatura da sala de 26 C. O maior desafio para estabilizar o sensor de temperatura e evitar os rudos ocorridos no decorrer da leitura. Para evit-los, uma mdia de 500 leituras realizada pelo Arduino e em seguida enviada para o servidor. Abaixo segue o cdigo completo comentado:

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.

Algoritmo 1 Cdigo do Arduino


//Quantidade de leitura a ser realizada #define SAMPLES 500 //Porta analgico para leitura do LM35 #define SENSOR_TEMP 0 //Intervalo para envio da prxima leitura #define TEMPO_LEITURA 1000 //Temperatura Critica. #define TEMP_CRITICA 26.00 //Vetor para armazenar a temperatura int tempvector [SAMPLES]; //Varivel auxiliar double tempSensor = 0.0; //Varivel para armazenamento de leitura do sensor LM35 int valAnalog = 0; //Porta digital para acionar o rel

4.1 CDIGO FONTE ARDUINO


Para garantir que a temperatura lida pelo LM35 condizente ao ambiente, toda leitura realizada, aps a programao do Arduino, foi comparada

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;

Figura 9 - Ventilado HT-900 Honeywell Fonte - (Trademark, 2012)

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

Figura 10 - Rel Song Chuan 833H-1C-C Fonte - (USA, 2002)

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

4.2 ATIVAO VENTILADOR


O objetivo do ventilador neste projeto demonstrar a possibilidade de ativar um equipamento de corrente AC (corrente alternada) utilizando o Arduino. O equipamento em questo poderia ser um conjunto de ventiladores, um ar condicionando, um motor entre outros, que se limitem a carga suportada pelo rel.

todo esse conjunto ser substitudo pelo CI (circuito integrado) ULN2003APG.

Figura 11 - Circuito Integrado ULN2003 Fonte - (Toshiba, 2006)

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.

4.3 ENVIO DE E-MAIL


A cada um segundo a temperatura capturada pelo Arduino enviada para servidor, que recebe a mesma pela porta serial. Um programa em python efetua a Figura 12 - Placa do Circuito leitura desses dados e armazena a cada minuto, em um arquivo de formato csv (output.csv), para futuras analises. Se a temperatura recebida for maior do que 26 C, um e-mail disparado a cada 10 minutos para os responsveis. A escolha pela linguagem em Python se deu devido facilidade para executar a

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

Cadsoft e pode ser encontrado no site do fabricante para download (www.cadsoft.de/freware.htm).

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:

Algoritmo 2 Cdigo de envio de e-mail


#encoding: utf-8 #importamo os mdulos necessrios from datetime import datetime, timedelta from email.mime.text import MIMEText import smtplib import serial import time #Instcia um obejeto da porta serial pSerial = serial.Serial("COM5",9600) #Instcia um objeto de arquivo

Figura 13 - Esquemtico do circuito


e-xacta, Belo Horizonte, Vol. X, N. Y, p. aa-bb. (ano). Editora UniBH. Disponvel em: www.unibh.br/revistas/exacta/

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.

Grfico 7 Temperatura diria da Sala dos Servidores

Figura 14 - Circuito com LM35 e Rel

Aps a confeco da placa, a mesma foi plugada ao Arduino (Figura 15) que sequencialmente foi

conectada ao servidor por um cabo USB.

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/