Sei sulla pagina 1di 78

UNIVERSIDADE DA REGIO DA CAMPANHA URCAMP

CENTRO DE CINCIAS DA ECONOMIA E INFORMTICA


CURSO DE INFORMTICA

DESENVOLVIMENTO DE UM GERENCIADOR DE TEMPERATURA PARA


DATACENTER UTILIZANDO ARDUINO

MICHEL R. ISERHARDT

Bag, RS
2010

MICHEL R. ISERHARDT

DESENVOLVIMENTO DE UM GERENCIADOR DE TEMPERATURA PARA


DATACENTER UTILIZANDO ARDUINO

Monografia apresentada ao Centro de Cincias da


Economia e Informtica da Universidade da Regio da
Campanha (URCAMP, RS), como requisito parcial
obteno do ttulo de Bacharel em Sistemas de
Informao.

Orientador: Prof. Abner Guedes

Bag, RS
2010

Dedico esta obra aos meus pais, que


sempre me deram fora, amor, carinho e o
exemplo de sucesso.

AGRADECIMENTOS

Agradeo a Deus (pelas preces atendidas), minha irm Mirela e meu


sobrinho Pedro Henrique (pelo carinho), ao meu cunhado Kico (pelas dicas de
programao), ao meu tio Alemo (que me apresentou o computador), ao meu prof.
orientador Abner Guedes e demais professores do curso de Sistemas de Informao
da URCAMP (pela confiana depositada), ao engenheiro eletrnico Srgio Duarte
(pela pacincia), aos meus verdadeiros amigos e a todos que de alguma forma
contriburam para que este sonho se concretizasse.

E sem saber que era impossvel, ele foi l e


Fez. (Jean Cocteau)

RESUMO

Este trabalho trata-se de desenvolver um gerenciador de temperatura para


datacenter utilizando Arduino, uma plataforma de hardware e software open-source
que muito utilizada pra criao de projetos na rea de robtica e instrumentao. O
objetivo principal fazer com que o produto desenvolvido emita avisos sonoros e/ou
visuais em caso de anomalia na temperatura do datacenter. Isso pode ajudar o
administrador de redes a tomar uma providncia a tempo, antes que qualquer
equipamento possa vir a ter problemas por superaquecimento. A pesquisa
caracteriza-se por ser exploratria descritiva, tendo em vista o estudo de caso e
posterior implantao realizada no prdio da Reitoria da Universidade Federal do
Pampa Unipampa.
Palavras-chave:
datacenter arduino robtica - gerenciador de temperatura

ABSTRACT

This work deals with developing a Datacenter Temperature Manager using


Arduino, an open-source software and hardware platform that is broadly used in the
creation of projects for the robotics and instrumentation areas. The main goal is
that of making the developed product to emit sound and/or visual warnings in case of
its detecting some anomaly in the datacenter temperature. This can help the network
administrator to make timely decisions before any gear can develop overheating
problems. The search is characterized as explorative-descriptive of a case study
and its later implementation in the server facilities of the Rectory Building of the
Universidade Federal do Pampa Unipampa.
Keywords:
datacenter - arduino robotics temperature manager

NDICE DE FIGURAS

Figura 1 - Datacenter de grande porte ............................................................................... 16


Figura 2 - Rack para instalao de servidores ................................................................. 17
Figura 3 - Termmetro digital............................................................................................... 18
Figura 4 - Mdulo NetBotz 200, marca APC ..................................................................... 19
Figura 5 - Equipamentos constantes no datacenter da Reitoria da Unipampa ........... 22
Figura 6 - O modelo de placa controladora Arduino Duemilanove ................................ 25
Figura 7 - Seletor de alimentao do Arduino Diecimila ................................................. 27
Figura 8 - Microcontrolador Atmega168............................................................................. 28
Figura 9 - Arquitetura do microcontrolador Atmega168 .................................................. 28
Figura 10 - Disposio dos LEDs no Arduino Diecimila .................................................. 30
Figura 11 - Placa Arduino UNO ........................................................................................... 31
Figura 12 - O modelo de placa controladora Freeduino BR ........................................... 32
Figura 13 Processing, editor de programao............................................................... 36
Figura 14 - Modelos de solda e multmetro ....................................................................... 38
Figura 15 - Protoboard para circuitos experimentais ....................................................... 39
Figura 16 - Mapeamento de uma Protoboard ................................................................... 40
Figura 17 - Ethernet shield oficial para Arduino ................................................................ 41
Figura 18 - Shield utilizada no projeto do Gerenciador de Temperatura ...................... 42
Figura 19 - Estrutura do sensor de temperatura LM35 ................................................... 43
Figura 20 - Sensor de temperatura LM35 .......................................................................... 43
Figura 21 - Visor LCD com driver compatvel com HD44780......................................... 44
Figura 22 - Resistor de 10k ............................................................................................... 46
Figura 23 - Potencimetro de trs contatos ...................................................................... 46
Figura 24 - Trimpot projetado para ser utilizado em circuitos ........................................ 47
Figura 25 - Conjunto de LEDs vermelhos .......................................................................... 49
Figura 26 - Alarme em fase experimental .......................................................................... 53
Figura 27 - Acesso aos relatrios de histrico de temperaturas .................................... 55
Figura 28 - Gerenciador de Temperatura Digital em fase final ...................................... 56
Figura 29 - Gerenciador de Temperatura Digital e Termmetro .................................... 57
Figura 30 - Gerenciador de Temperatura Digital instalado no datacenter ................... 58
Figura 31 - Sensor de temperatura fixado ao rack ........................................................... 58
Figura 32 - Valor de cada soluo encontrada ................................................................. 61

LISTA DE ABREVIATURAS

C Graus celsius
- Ohm
A - Ampre
AD Active Directory
AREF Analog reference pin for the A/D Converter
ASC American Standard Code
AVCC Supply voltage pin for the A/D Converter
BR - Brasil
COM - Communications
CPD Centro de Processamento de Dados
DHCP - Dynamic Host Configuration Protocol
E - Enable
EEPROM - Electrically-Erasable Programmable Read-Only Memory
EXT Alimentao externa
FTDI - Future Technology Devices International
Gnd Ground
I Corrente eltrica
IP Internet Protocol
K - Quilo-ohm
Kbyte Kilobyte
LAN Local Area Network
LCD Liquid Crystal Display
LED - Light Emitting Diode
m metros
mA - miliampre
MIT Massachusetts Institute of Technology
NPN Negativo / positivo / negativo
PB Port B
PC Port C
PD Port D
PNP Positivo / negativo / positivo
PWM Pulse-Width Modulation
PWR Power
R Resistncia eltrica (ohm )
R/W Read / Write

RAM Random Access Memory


RJ-45 Registered Jack 45
RS Register Select
RX Receptor
RXD Receptor digital
TI Tecnologia da Informao
Trimpot - Trimmer potentiometer
TX Transmissor
TXD Transmissor digital
Unipampa Universidade Federal do Pampa
USA - United States of America
USB Universal Serial Bus
V Tenso eltrica (Volt)
VC Video Conferncia
VCC Power supply voltage (Digital)
VSS - Power supply voltage (Ground)

10

SUMRIO

INTRODUO .......................................................................................................... 12
1 DATACENTER ....................................................................................................... 16
1.1 TEMPERATURA IDEAL DE UM DATACENTER ................................................ 17
1.2 SOLUES PARA GERENCIAMENTO DE TEMPERATURA DE
DATACENTER .......................................................................................................... 17
1.3 ESTRUTURA DO DATACENTER DA REITORIA DA UNIPAMPA ..................... 21
2 ARDUINO............................................................................................................... 23
2.1 Estrutura do Arduino ........................................................................................... 24
2.2 O LANAMENTO MAIS RECENTE DA FAMILIA ARDUINO .............................. 30
2.3 CLONES DO ARDUINO ...................................................................................... 31
2.3.1 Freeduino BR ........................................................................................... 32
3 LINGUAGEM PROCESSING................................................................................. 33
3.1 SETUP ................................................................................................................ 33
3.2 LOOP .................................................................................................................. 33
3.3 DRAW ................................................................................................................. 34
3.4 DECLARAO DE VARIVEIS .......................................................................... 34
3.5 ALGUNS COMANDOS UTILIZADOS FREQUENTEMENTE .............................. 35
4 COMPONENTES NECESSRIOS PARA O DESENVOLVIMENTO DO
GERENCIADOR DE TEMPERATURA DIGITAL UTILIZANDO ARDUINO.............. 38
4.1 PROTOBOARD ................................................................................................... 39
4.2 SHIELD ............................................................................................................... 40
4.3 O SENSOR DE TEMPERATURA LM35.............................................................. 42
4.4 O VISOR LCD HITACHI HD44780 ...................................................................... 44
4.5 RESISTORES E POTENCIOMETROS ............................................................... 45
4.6 ALARME SONORO ............................................................................................. 47
4.7 LED ..................................................................................................................... 48
5 DESENVOLVIMENTO DO GERENCIADOR DE TEMPERATURA DIGITAL ........ 50
5.1 MEDIO DA TEMPERATURA .......................................................................... 50
5.2 INSTALAO DO VISOR LCD ........................................................................... 51
5.3 DESENVOLVIMENTO DO ALARME .................................................................. 52

11
6 PRODUTO FINAL E IMPLANTAO ................................................................... 54
6.1 PRODUTO FINAL ............................................................................................... 54
6.2 IMPLANTAO ................................................................................................... 56
CONCLUSO ........................................................................................................... 59
REFERNCIAS BIBLIOGRFICAS ......................................................................... 62
ANEXOS ................................................................................................................... 64
ANEXO A CDIGOS FONTE COMENTADOS ...................................................... 65
ANEXO B CIRCUITO ELETRNICO ..................................................................... 75
ANEXO C TABELA DE CUSTOS ........................................................................... 76

12

INTRODUO

Um datacenter, ou Centro de Processamento de Dados (CPD), o local onde


so concentrados os equipamentos de processamento e armazenamento de dados
de uma empresa ou organizao (Wikipedia 2010).
Ter controle de temperatura de um datacenter um aspecto de forte
relevncia dentro de um ambiente de administrao de redes de computadores. Os
equipamentos expostos a temperaturas fora dos padres podem acarretar em danos
e at mesmo diminuio da vida til destes. Ainda assim, muitas organizaes
pecam nesse sentido, focando apenas em outros aspectos como poder de
processamento, capacidade de armazenamento, entre outros.
Existem algumas organizaes que mantm uma sala, onde o datacenter est
localizado, em ambiente climatizado. Porm, sem um controle preciso da
temperatura. A ausncia deste controle que pode acabar fazendo com que a
temperatura fique fora da faixa normal de trabalho.
O mercado atual no dispe de uma gama de produtos para controle de
temperatura de datacenter, e os poucos que existem custam um valor muito alto,
invivel para a maioria das organizaes de pequeno porte. Dessa forma,
desenvolver uma ferramenta prpria para gerenciamento de temperatura pode, alm
de ser mais vivel economicamente, gerar um produto que se adapte perfeitamente
s necessidades. Para isso, utilizar um microcontrolador de placa nica como o
Arduino se torna uma alternativa considervel, j que este foi desenvolvido, entre
outros fins, para criao de pequenos equipamentos de robtica e sistemas
embarcados, que so as reas foco deste trabalho.

13
OBJETIVO GERAL

Desenvolver um sistema de gerenciamento de temperatura para datacenter.

OBJETIVOS ESPECIFICOS

a) Apresentar o Arduino e sua utilizao;


b) Adaptar o Arduino para o uso como sistema embarcado de gerenciamento
de temperatura;
c) Implantar o sistema no datacenter do prdio da Reitoria da Unipampa.

JUSTIFICATIVA

O estudo entende-se ser importante, porque objetiva apresentar uma soluo


para um problema comum no universo das redes de computadores.
De acordo com a empresa de tecnologia Tripletech (2010), quando se deixa a
temperatura do datacenter subir, automaticamente se economiza energia no sistema
de refrigerao; porm, com o aumento da temperatura, h o efeito indesejado da
ineficincia de passagem de corrente no silcio, aumentando sua dissipao trmica,
bem como maior consumo de energia pelo aumento de rotao das ventoinhas dos
servidores, necessrias para aumentar o fluxo de ar (mais quente) para refrigerar os
componentes do servidor.
A falta de um sistema eficiente para gerenciamento de temperatura pode
acarretar em danos de equipamentos de Tecnologia da Informao (TI). A vida til
dos equipamentos tambm pode ser aumentada quando se tem um ambiente com
temperatura equilibrada.
A dificuldade existe porque sistemas como esse so difceis de encontrar no
mercado. Um produto com preo economicamente vivel e que atenda s
especificaes necessrias para um bom gerenciamento de temperatura algo que
pode custar muito caro e, muitas vezes, se tornar invivel para organizaes de
pequeno

porte.

Isso

faz

do

desenvolvimento

de

um

equipamento

gerenciamento de temperatura de datacenter uma opo importante.

para

14
METODOLOGIA

Este projeto dever ser dividido nas etapas citadas abaixo:


a) anlise das solues existentes no mercado atual. Nessa etapa o objetivo
saber o quanto pode ser vivel o desenvolvimento de uma soluo
prpria para o problema;
b) aquisio do Arduino e estudo do seu funcionamento e programao. A
idia descobrir suas limitaes, capacidade de interao com outros
equipamentos

eletrnicos

definir

uma

sequncia

para

desenvolvimento do sistema de gerenciamento de temperatura;


c) anlise da estrutura do datacenter do prdio da Reitoria da Unipampa,
para definio dos pontos crticos e aspectos que devem ser levados em
considerao para atingir eficcia no desenvolvimento do sistema;
d) desenvolvimento

do

sistema

embarcado

para

gerenciamento

de

temperatura de datacenter utilizando o Arduino;


e) o projeto ser finalizado com a implantao do sistema gerenciador de
temperatura no datacenter do prdio da Reitoria da Unipampa.

CARACTERIZAO DA PESQUISA

A pesquisa caracteriza-se por ser exploratria descritiva, tendo em vista o


estudo de caso a ser realizado no datacenter do prdio da Reitoria da Unipampa.

ESTRUTURA DO TRABALHO

O trabalho divide-se em oito captulos: Introduo, Datacenter, Arduino,


Linguagem Processing, Componentes Necessrios para o Desenvolvimento do
Gerenciador de Temperatura Digital Utilizando Arduino, Desenvolvimento do
Gerenciador de Temperatura Digital, Produto Final e Implantao, e Concluso.
A introduo trata-se de uma breve explicao de como o trabalho se
realizar, seus objetivos, justificativa, metodologia, caracterizao da pesquisa e
como foi estruturado.
O captulo Datacenter conceituar o centro de processamento de dados e
apresentar as possveis condies de temperatura necessrias para se obter um

15
melhor desempenho e utilizao dos equipamentos do datacenter localizado no
prdio da reitoria da Unipampa. Tambm sero citadas algumas solues
encontradas no mercado para executar o processo de gerenciamento de
temperatura de datacenters;
O captulo Arduino apresentar a placa Arduino, sua finalidade, reas de
atuao e seus principais componentes. Tambm sero citados alguns projetos
similares que surgiram partir do Arduino, em especial o Freeduino BR, que
fabricado no Brasil;
No captulo Linguagem Processing sero apresentados alguns conceitos
sobre esta linguagem de programao que , atualmente, a mais utilizada em
projetos envolvendo o Arduino;
No captulo Componentes Necessrios para o Desenvolvimento do
Gerenciador de Temperatura Digital Utilizando Arduino sero apresentados alguns
instrumentos da rea de eletrnica que faro parte do circuito que dar incio ao
processo de desenvolvimento do Gerenciador de Temperatura Digita;
O captulo Desenvolvimento do Gerenciador de Temperatura Digital
mostrar como se dar o desenvolvimento deste equipamento que dever ser a
soluo para um problema comum na maior parte das organizaes de pequeno
porte;
O captulo Produto Final e Implantao apresentar os ajustes necessrios e
os primeiros testes executados com o Gerenciador de Temperatura Digital.
A Concluso abordar aspectos positivos e negativos de cada uma das
solues e se houve sucesso na escolha pelo desenvolvimento do Gerenciador de
Temperatura Digital.

16

1 DATACENTER
Segundo o site da Wikipedia (2010), um datacenter, ou Centro de
Processamento de Dados (CPD), o local onde so concentrados os equipamentos
de processamento e armazenamento de dados de uma empresa ou organizao.
O tamanho do datacenter pode variar de acordo com a estrutura de tecnologia
de informao que a empresa dispe. Empresas que trabalham com uma grande
quantidade de informaes tendem a ter datacenters de grande porte, como o
mostrado na figura abaixo.

Figura 1 - Datacenter de grande porte


Fonte: infoplaypodcast.wordpress.com

Um datacenter como o mostrado acima comumente encontrado em


empresas que tem a Tecnologia de Informao como rea principal. Entretanto, a
maior parte das empresas no dispe de uma grande quantidade de equipamentos
para ocupar um datacenter de grande porte. Estas empresas normalmente optam
por usar um rack nico para a instalao dos servidores e demais equipamentos de
redes de computadores.

17

Figura 2 - Rack para instalao de servidores


Fonte: mercadolivre.com.br

No caso especfico da Reitoria da Unipampa, onde objetiva-se a implantao


do Gerenciador de Temperatura, o datacenter composto de um rack similar ao
mostrado na figura 2.

1.1 TEMPERATURA IDEAL DE UM DATACENTER

De acordo com a empresa de hospedagem de servidores Locaweb (2010), a


temperatura interna ideal para um datacenter 21C, com variao mxima de 2C
para mais ou para menos.
Para se manter um ambiente nessas condies, alm de ter equipamentos de
refrigerao que garantam a temperatura ideal, o administrador de redes deve contar
com um sistema de gerenciamento de temperatura que assegure que esta est
constantemente dentro da faixa normal de trabalho.

1.2 SOLUES PARA GERENCIAMENTO DE TEMPERATURA DE DATACENTER

O trabalho em questo trata do desenvolvimento de um Gerenciador de


Temperatura para datacenter. Porm, tomar uma deciso como esta requer uma
anlise das opes que o mercado atual dispe, pois a criao de uma ferramenta

18
para executar qualquer funo dentro de uma organizao s vivel se satisfeitas
as seguintes condies: o mercado atual no dispe de um produto que atenda as
necessidades e, se dispe, tem preo superior ao que dever ser aplicado no
desenvolvimento do Gerenciador de Temperatura.
Alguns modelos de rack para datacenter j possuem um termmetro de
temperatura instalado, que no o caso do que foi adquirido pela reitoria da
Unipampa. Uma soluo para este problema poderia ser a aquisio e posterior
instalao de um termmetro digital.

Figura 3 - Termmetro digital


Fonte: mercadolivre.com.br

Segundo o site mercadolivre.com.br em outubro de 2010, um termmetro


digital como o da imagem acima custa em mdia R$ 35,00. Ainda que o custo seja
relativamente baixo, um produto como este no necessariamente d ao
administrador de redes a certeza de que a temperatura do datacenter est
constantemente em sua faixa normal. Se este termmetro possusse algum tipo de
alerta, a ser ativado no caso de a temperatura estar fora da faixa normal de trabalho,
seria um produto interessante para a atual necessidade, mesmo que isso viesse a
aumentar um pouco o seu valor de mercado.
A fabricante de equipamentos de infraestrutura de TI APC possui uma soluo
importante para gerenciamento de temperatura de datacenter. Este produto,
chamado de mdulo NetBotz 200, quando instalado em um rack de servidores faz a
leitura da temperatura e/ou umidade.

19

Figura 4 - Mdulo NetBotz 200, marca APC


Fonte: apc.com

O mdulo mostrado na figura acima tem capacidade para a instalao de at


seis sensores de temperatura modelo AP9335, que usam conectores padro
Registered Jack 45 (RJ-45).
Na parte frontal do mdulo tambm encontra-se a porta Beacon, que serve
para conectar uma luz de alarme que dever ficar localizada na parte externa do
rack.
O acesso ao mdulo NetBotz 200 pode ser feito atravs da porta console,
padro RS-232, ou via browser atravs da rede. atravs deste acesso que so
ativados os sensores e criadas as regras de gerenciamento de temperatura.
Indiscutivelmente a soluo da APC de grande valia para o objetivo de
gerenciar a temperatura de um datacenter. Porm, este produto peca no alto custo
de aquisio, conforme a tabela abaixo.

Equipamento

Valor ($)

Mdulo NetBotz 200

460,67

Sensor AP9335T

69,11

Luz de alarme AP9324

114,91

Custo total:

644,69

Tabela 1 - Custo total da soluo da APC em 28/10/2010


Fonte: Provantage Superstore - 7249 Avenue, New Yourk, USA

20
A tabela acima mostra que o custo total da soluo, nos Estados Unidos, $
644,69. Este valor no inclui os custos de importao e frete. Mais informaes
sobre este produto podem ser encontradas no site http://www.provantage.com.
A importadora SoloStocks vende um produto chamado Datalogger Registrador de Temperatura ITLOG-70. Este produto faz a leitura da temperatura e a
exibe em um visor localizado em sua parte frontal. A ele tambm podem ser
configuradas regras de temperaturas mxima e mnima, de forma que, se ultrapassar
algum dos limites, ascender-se- uma luz vermelha do tipo Light Emitting Diode
(LED). O registrador possui ainda uma memria interna que pode armazenar as
quatro mil ltimas temperaturas. A sua faixa de trabalho vai de -30 a 70 graus celsius
(C).
Uma soluo um pouco mais sofisticada que tambm comercializada pela
SoloStocks o Termmetro IP para datacenter, que no possui visor frontal para
mostrar a temperatura atual, porm utiliza o protocolo Internet Protocol (IP) para
enviar notificaes caso esta esteja fora do seu estado normal. Este produto possui
um pequeno servidor web integrado que mantm um histrico das ltimas 100
medies de temperatura. Quanto conectividade, basta conect-lo rede Local
Area Network (LAN) com IP fixo ou como cliente Dynamic Host Configuration
Protocol (DHCP).
A tabela abaixo mostra o custo de cada uma das solues da importadora
SoloStocks.

Equipamento

Valor (R$)

Datalogger

273,60

Termmetro IP

880,00

Tabela 2- Custo das solues da SoloStocks em 28/10/2010


Fonte: Importadora SoloStocks

21
Mais informaes sobre estes produtos podem ser encontradas no site
http://www.solostocks.com.br.
Analisados os produtos disponveis no mercado, tem-se que uma soluo
interessante o desenvolvimento de um sistema personalizado, fabricado com base
nas especificaes elencadas pelo prprio administrador de redes. Para idealizar tal
soluo, utilizar uma placa controladora como o Arduino torna-se uma opo vivel.
Com um investimento relativamente baixo, aliados a conhecimentos de eletrnica e
programao, possvel desenvolver um projeto satisfatrio. Esses foram os
argumentos que foram levados em conta para escolher, como mais vivel, a opo
de se desenvolver um sistema prprio para gerenciamento de temperatura.
1.3 ESTRUTURA DO DATACENTER DA REITORIA DA UNIPAMPA

A Universidade Federal o Pampa (Unipampa), com sede na cidade de BagRS, caracteriza-se por ser uma universidade multicampi, abrangendo tambm as
cidades de Jaguaro, Dom Pedrito, Santana do Livramento, Caapava do Sul, So
Gabriel, Alegrete, Itaqui, So Borja e Uruguaiana.
na cidade de Bag que fica o prdio da Reitoria, onde est localizado o
datacenter no qual ser feita a implantao do gerenciador de temperatura.
Este prdio conta hoje com cerca de 70 computadores clientes do tipo
desktop e quatro impressoras em rede. Tambm fazem parte da estrutura um
equipamento de Video Conferncia (VC) e trs computadores servidores, so eles:
a) servidor de voz sobre Internet protocol (VoIP), marca Itautec, modelo
InfoWay;
b) servidor Proxy/Firewall, marca Lenovo, modelo ThinkCentre;
c) servidor Active Directory (AD), marca Dell, modelo PowerEdge 2950.

Os trs servidores listados acima ficam alocados no datacenter do prdio.


Neste local, estes dividem espao com os equipamentos abaixo:
a) um roteador, marca Cisco, modelo 3600;
b) trs switches, marca D-link, modelo Des-3550;
c) dois modems pertencentes empresa Oi, que o provedor de internet
contratado pela Unipampa.

22
A figura abaixo ilustra a relao de equipamentos constantes no datacenter,
com exceo do Equipamento de VC e da Rede Interna, que aparecem na imagem
apenas por questes de melhor entendimento estrutural da rede.

Figura 5 - Equipamentos constantes no datacenter da Reitoria da Unipampa


Fonte: Dados primrios

A busca por um melhor desempenho e preservao dos equipamentos


listados acima, fez surgir a necessidade de se encontrar uma soluo para o
processo de gerenciamento da temperatura deste datacenter, que fica localizado no
prdio da Reitoria da Unipampa.

23

2 ARDUINO
O projeto do Arduino comeou em 2005 na cidade de Ivrea, na Itlia. O
objetivo inicial era desenvolver uma ferramenta de baixo custo e fcil manuseio, j
que estas eram duas fortes limitaes que impediam muitos estudantes, escolas e
pesquisadores de iniciar atividades relacionadas robtica em seus laboratrios.
Segundo Rafael Quines (2010), o Arduino pode ser usado para desenvolver
objetos interativos, tomando entradas de vrios switches ou sensores, e controlando
uma variedade de luzes, motores, mecanismos, entre outras sadas. Os projetos do
Arduino podem tanto ser autnomos, como se comunicar com softwares.
Por possuir licena totalmente open-source, no que se refere a hardware e
software, alguns profissionais da rea de eletrnica fazem questo de montar seu
prprio Arduino.
Todos os componentes podem ser adquiridos separadamente, e j
encontram-se diversas comunidades com o objetivo de ajudar os desenvolvedores
nos processos de montagem. Ainda assim, o mtodo mais comum de aquisio,
atualmente, a compra direta atravs dos revendedores autorizados espalhados
pelo mundo.
A poltica open-source trouxe muitas vantagens, pois motivou o surgimento de
outros projetos similares que desenvolvem placas com a mesma arquitetura
encontrada no Arduino.
Segundo Marcelo Leite (2010), open-source um conceito de distribuio de
software, que estabelece como fundamentais, os princpios de desenvolvimento
compartilhado, distribuio na forma de cdigo fonte e licenciamento gratuito.
Qualquer trabalho desenvolvido em open-source pode ser modificado para
atender novas necessidades, desde que o trabalho derivado seja disponibilizado a
todos, tambm de forma gratuita. A integridade e notoriedade dos autores
preservada, sendo registrado o nome de cada um dos colaboradores nas verses
subsequentes.
Em relao ao Arduino, sua arquitetura formada basicamente por um
microcontrolador e vrias entradas e sadas analgicas e digitais. Os modelos mais
atuais possuem uma interface Universal Serial Bus (USB) para conexo com um
computador hospedeiro, de onde so enviadas as linhas de cdigo para o

24
microcontrolador. Nos modelos mais antigos essa conexo era feita pelo padro
Serial/RS-232.
O Arduino pode ser usado para desenvolver objetos interativos, tomando
entradas de vrios switches ou sensores, e controlando uma variedade de luzes,
motores, mecanismos, entre outras sadas. Os projetos do Arduino podem tanto ser
autnomos, como se comunicar com softwares (Rafael Quines 2010).
A linguagem de programao utilizada Processing, que muito semelhante
linguagem de programao C/C++.
A programao toda feita no microcontrolador da placa, normalmente da
marca Atmega. Os mais comuns, atualmente, so os modelos Atmega 168 e 328.
Mais detalhes sobre esses microcontroladores sero vistos no decorrer desta obra.
Na categoria dos equipamentos eletrnicos, o Arduino pode ser muito til para
o desenvolvimento de sistema embarcado. Um sistema embarcado (ou sistema
embutido) um sistema microprocessado no qual o computador completamente
encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferente de
computadores de propsito geral, como o computador pessoal, um sistema
embarcado realiza um conjunto de tarefas predefinidas, geralmente com requisitos
especficos. J que o sistema dedicado a tarefas especficas, atravs de
engenharia

pode-se

otimizar

projeto

reduzindo

seu

tamanho,

recursos

computacionais e custo do produto (Wikipedia 2010).


Conforme o pargrafo acima, um sistema embarcado caracteriza-se por ser
destinado a executar uma tarefa especfica. Os televisores, os aparelhos de som, as
sinaleiras de trnsito, entre outros, so exemplos tpicos de sistemas embarcados.

2.1 ESTRUTURA DO ARDUINO


Nos prximos pargrafos ser apresentado o Arduino e sua estrutura bsica,
de acordo com a imagem abaixo.

25

Figura 6 - O modelo de placa controladora Arduino Duemilanove


Fonte: arduino.cc

A imagem acima mostra a placa controladora e seus componentes. Nos


pargrafos abaixo sero comentados alguns conceitos e especificaes que foram
extrados do site oficial do Arduino (arduino.cc).
Na parte superior existem quatorze pinos de entradas e sadas digitais para
conectar com correntes de at 5 Volts (V). Esses pinos podem ser configurados para
enviar ou receber pulsos eltricos, dependendo dos objetivos do sistema. Por
padro, os pinos so configurados para enviar pulsos eltricos. De toda forma, esta
definio deve ser feita no prprio cdigo fonte.
Os pinos digitais de nmero 3, 5, 6, 9, 10 e 11 possuem sadas do tipo PulseWidth Modulation (PWM), um sistema modular para controle da alimentao.
Ao lado do pino de nmero 13 fica o pino de aterramento, identificado como
Gnd, abreviatura da palavra inglesa ground, que significa terra. A este deve ser
conectado o cabo que receber o excesso de energia no circuito eletrnico.
Na parte inferior encontram-se seis pinos de entradas analgicas, utilizados
para conexo de sensores. As entradas analgicas trabalham com resoluo de 10
bits, que compreende valores entre 0 a 1024, com tenso mxima de 5V. Dessa
forma, se um determinado sensor repassar para uma das portas analgicas uma

26
tenso de 5V, a placa converter para o seu valor mximo de trabalho em bits
1024. Se utilizar o mesmo raciocnio, tem-se que 0V equivale a 0 bits.
Tambm ficam situados na parte inferior os pinos de sada de energia, que
dividem-se em dois: um de 5V, um de 3,3V ambos para alimentao de
instrumentos que venham a ser conectados ao Arduino. Dois pinos identificados
como Gnd (ground) funcionam como aterramento.
Ainda existe um pino descrito como vin que deve ser utilizado em caso de
necessidade de utilizar uma outra fonte de energia, que no seja por USB ou fonte
de alimentao de 5V, que so os padres do Arduino.
No lado esquerdo da figura ficam localizadas as entradas de alimentao, por
fonte de energia de 5V ou entrada USB. Caso o sistema depois de pronto fique
independente do computador, ou seja, no possua qualquer tipo de interao com o
seu hospedeiro no funcionamento, pode-se optar pela alimentao da placa atravs
de uma fonte de alimentao de energia de 9V. Porm, se o Arduino estiver
constantemente ligado a um computador hospedeiro, a prpria conexo USB se
encarregar de manter a placa energizada e em funcionamento.
A seleo do tipo de alimentao da placa, por fonte ou USB, varia de um
modelo para o outro. Os mais modernos, como o Arduino Duemilanove, j
identificam automaticamente o mtodo como a placa est sendo alimentada. J os
modelos mais antigos necessitam que um jumper, posicionado ao lado da porta
USB, defina essa diretriz.

27

Figura 7 - Seletor de alimentao do Arduino Diecimila


Fonte: arduino.cc

A imagem acima mostra a chave seletora da alimentao de energia no


modelo de placa Diecimila, de fabricao anterior ao Duemilanove. O jumper
responsvel por fazer a conexo entre dois dos trs pinos, de acordo com a opo
desejada. A opo EXT corresponde alimentao por fonte de 9V ligada
diretamente tomada de energia; j a USB, como o prprio nome indica,
corresponde alimentao por conexo USB atravs do computador hospedeiro. De
acordo com a imagem, a placa est selecionada para receber alimentao pela porta
USB.
tambm atravs da porta USB que feito o upload do programa, gerado no
computador hospedeiro, para o microcontrolador do Arduino. O microcontrolador
encontrado no Arduino Diecimila o Atmega 168, fabricado pela empresa Atmel
Corporation, especialista na rea de semicondutores, com sede em San Jos, no
estado da Califrnia (Wikipedia 2010).

28

Figura 8 - Microcontrolador Atmega168


Fonte: mercadolivre.com.br

Segundo informaes contidas no site oficial do Arduino (2010), o


microcontrolador Atmega 168 possui 16Kbytes de memria flash, 1Kbyte de memria
do tipo Random Access Memory (RAM) e 512 bytes de memria do tipo ElectricallyErasable Programmable Read-Only Memory (EEPROM). Abaixo, a arquitetura
detalhada do microcontrolador.

Figura 9 - Arquitetura do microcontrolador Atmega168


Fonte: codehosting.net

29
A imagem mostra o que cada um dos pinos do microcontrolador faz. Muitos
deles so vistos no Arduino, o que explica o porqu de alguns autores afirmarem que
o microcontrolador o crebro da placa. Ele o responsvel pelo tratamento das
informaes. Os pinos dividem-se em Port B (PB), Port C (PC), Port D (PD), Ground
(Gnd), supply voltage pin for the A/D converter (AVCC), analog reference pin for the
A/D converter (AREF) e Power supply voltage (VCC).
Abaixo, um mapeamento da comunicao entre os pinos do microcontrolador
e do Arduino, conforme a figura 9, identificando a relao que h entre eles:
Pino 1 PC6 Reset

Pino 15 PB1 Digital Pin 9

Pino 2 PD0 RXD Digital Pin 0 RX

Pino 16 PB2 Digital Pin 10

Pino 3 PD1 TXD Digital Pin 1 TX

Pino 17 PB3 Digital Pin 11

Pino 4 PD2 Digital Pin 2

Pino 18 PB4 Digital Pin 12

Pino 5 PD3 Digital Pin 3

Pino 19 PB5 Digital Pin 13

Pino 6 PD4 Digital Pin 4

Pino 20 AVCC

Pino 7 VCC

Pino 21 AREF

Pino 8 Gnd

Pino 22 Gnd

Pino 9 PB6

Pino 23 PC0 Analogic Input 0

Pino 10 PB7

Pino 24 PC1 Analogic Input 1

Pino 11 PD5 Digital Pin 5

Pino 25 PC2 Analogic Input 2

Pino 12 PD6 Digital Pin 6

Pino 26 PC3 Analogic Input 3

Pino 13 PD7 Digital Pin 7

Pino 27 PC4 Analogic Input 4

Pino 14 PB0 Digital Pin 8

Pino 28 PC5 Analogic Input 5

Tabela 3 - Comunicao dos pinos do microcontrolador e do Arduino


Fonte: codehosting.net

Na parte central da placa ficam localizados trs diodos de luz do tipo light
emitting diode (LED).

30

Figura 10 - Disposio dos LEDs no Arduino Diecimila


Fonte: arduino.cc

Os LEDs receptor (RX) e transmissor (TX) piscam alternadamente para


indicar que est havendo troca de informaes entre o Arduino e o computador
hospedeiro. Isso acontece normalmente quando est fazendo upload do programa
para o microcontrolador da placa.
O LED power (PWR) mantm-se aceso para indicar que a placa est
ligada/energizada.
A linguagem de programao interpretada pelo Arduino o Processing, que,
como j citado anteriormente, uma linguagem de programao similar C++, que
muito utilizada em sistemas embarcados.

2.2 O LANAMENTO MAIS RECENTE DA FAMILIA ARDUINO

Neste ano de 2010 foi feito o lanamento oficial do Arduino UNO. Conforme
informaes contidas no site oficial do Arduino (2010), o nome, de origem italiana, foi
escolhido devido ao fato de ser esta considerada a verso 1.0, que dever servir de
referncia para as prximas placas a serem fabricadas.
O modelo similar ao Duemilanove. Assim como ocorre com o seu
antecessor, o UNO tambm possui 14 pinos de entrada/sada digital (dos quais 6

31
podem ser usados como sadas PWM), 6 entradas analgicas, uma conexo USB e
uma entrada de alimentao. O microcontrolador utilizado o Atmega 328.
Segundo o site oficial do Arduino (2010), a principal diferena est no chip de
converso de sinal USB para serial, que agora utiliza o Atmega 8U2 em vez do
produto da Future Technology Devices International (FTDI).
Esteticamente a placa tambm apresenta uma aparncia mais limpa e clara.
A imagem abaixo mostra o Arduino UNO.

Figura 11 - Placa Arduino UNO


Fonte: arduino.cc

2.3 CLONES DO ARDUINO


Por ser uma plataforma de hardware e software 100% open-source, muitos
outros projetos iniciaram motivados com o projeto do Arduino. Entre eles, os que
tiveram mais destaque foram o Freeduino, Seeduino e Wiseduino.
Esses clones possuem hardware e software compatveis com o Arduino,
porm, em sua maior parte, com preos mais acessveis. Isto pode ser justificado se
for levado em considerao que o Freeduino possui uma verso fabricada no Brasil,
chamada Freeduino BR. J o Arduino original fabricado na Itlia, ficando atrelado a
custos fiscais de importao.
Pelos motivos expressados no pargrafo anterior, para o projeto em questo
foi escolhido o Freeduino BR.

32

2.3.1 Freeduino BR
O Freeduino comeou como um projeto open-source com o objetivo de
desenvolver uma placa compatvel fisicamente e eletronicamente com o Arduino,
porm com um preo mais acessvel. Este projeto conta hoje com colaboradores
espalhados por diversas partes do mundo
A verso brasileira do Freeduino, o Freeduino BR, fabricada na cidade de
Curitiba-PR pelo engenheiro eletrnico Srgio Duarte. Sua estrutura similar do
Arduino Diecimila, um dos mais utilizados atualmente. Segundo registros do site
oficial do projeto, a primeira placa foi desenvolvida em junho de 2008. Abaixo, a
imagem do Freeduino BR.

Figura 12 - O modelo de placa controladora Freeduino BR


Fonte: mercadolivre.com.br

33

3 LINGUAGEM PROCESSING
O Processing uma linguagem de programao open-source que foi
projetada em 2001 no Grupo de Esttica e Computao do Massachusetts Institute
of Technology (MIT) Media Lab por Casey Reas e Benjamin Fry, sob orientao de
John Maeda. Porm a verso 1.0, considerada estvel, s veio a ser lanada em
novembro de 2008 (processing.org 2010).
Hoje a linguagem caracteriza-se tambm por ser interpretada e rodar sobre
uma plataforma Java.
Segundo Bem Fry (2009), o objetivo inicial era desenvolver uma linguagem
focada na criao de imagens, animaes e interaes. A facilidade na interao
com equipamentos eletrnicos fez com que a linguagem ganhasse um amplo espao
na rea de sistemas embarcados. Hoje ela comumente utilizada por
instrumentistas, cientistas e profissionais da rea de eletrnica no desenvolvimento
de suas atividades.
O cdigo fonte desenvolvido em Processing claro e objetivo. Divide-se em
trs funes principais: Setup, Loop e Draw.
Nos pargrafos abaixo sero mostrados alguns conceitos e comandos
extrados do site oficial da linguagem de programao Processing (processing.org).

3.1 SETUP
O Setup a primeira etapa a ser executada. a nica que obrigatoriamente
deve fazer parte do cdigo fonte.
Sua funo principal definir os parmetros iniciais do programa, ou seja, a
preparao para que as demais linhas do cdigo sejam executadas. O Setup
executado uma nica vez no incio do programa.

3.2 LOOP
O Loop onde so executados os comandos contnuos, ou seja, aqueles que
sero executados durante todo o perodo em que o programa est funcionando. No
caso de um sistema embarcado, como o do projeto em questo, loop conter tudo
que ser executado constantemente enquanto o equipamento estiver ligado.

34

3.3 DRAW
O Draw, como o prprio nome diz, a etapa onde, entre outras, so definidas
as funes grficas do programa. Assim como ocorre na funo Loop, os comandos
contidos em Draw so executados continuamente. Por esse motivo, quando o cdigo
fonte ser executado no computador hospedeiro, usa-se a funo Draw em vez de
Loop. Desenhos, grficos e animaes so criados neste espao.
Um exemplo de comando que deve ser executado dentro da funo Draw :
Size (480,120);
Point (240,60);
O exemplo acima desenha uma janela de 480 por 120 pixels, e no interior dela
desenha um ponto bem no centro, atravs da indicao das coordenadas X e Y,
onde X representa a largura (240) e Y a altura (60).
As funes so declaradas conforme a sintaxe abaixo:
Tipo retornado + Nome da funo + (Parmetros) + ;
Um exemplo tpico seria:
void setup ();
Onde void indica que no h qualquer tipo de retorno, o Setup a funo a
ser utilizada e o () indica que no sero passados parmetros iniciais para a
execuo da funo.
Uma outra caracterstica da linguagem Processing que cada comando
executado deve ser encerrado com ponto e vrgula (;).

3.4 DECLARAO DE VARIVEIS


A declarao de variveis em Processing pode ser feita em qualquer das
funes existentes no programa, ou at mesmo fora delas, e segue o mesmo padro
adotado por outras linguagens de programao. Abaixo, a sintaxe mais comum
utilizada:
Tipo de varivel + Nome + = + Valor + ;
Um exemplo seria:
int var = 5;

35
No exemplo acima int especifica que a varivel do tipo inteira, o nome
atribudo var e seu valor inicial 5.
Outros comandos
Tambm existem comandos de iterao (for e while) de condio (if...else), de
relao (>, <, == e !=), de sada de informaes (print e println), entre outros. A
sintaxe destes comandos, como j citado anteriormente, muito similar utilizada na
linguagem de programao C++.

3.5 ALGUNS COMANDOS UTILIZADOS FREQUENTEMENTE

Assim como ocorre em outras linguagens de programao, em Processing


pode-se encontrar uma infinidade de comandos pr-definidos que executam diversas
rotinas. Os que utilizados com maior freqncia, principalmente em um projeto de
desenvolvimento de um Gerenciador de Temperatura Digital, so: print(), println(),
delay(), hour(), minute(), second(), day(), month(), year(), keypressed(), exit(), entre
outros.
Entre os parnteses de cada comando devem ser colocados parmetros
necessrios para a execuo.
Os comandos print() e println() servem para imprimir algo na interface
desejada, com a diferena que o segundo passa para a linha seguinte aps a
impresso. As interfaces que podem receber o comando vo desde o monitor do
computador at um visor do tipo Liquid Crystal Display (LCD) conectado diretamente
ao Arduino. A sintaxe correta :
print(O texto a ser impresso deve ser escrito aqui.);
O comando println(), quando no passa qualquer parmetro, apenas
posicionar o cursor na linha seguinte.
O comando delay() serve para definir um tempo de espera. Quando o sistema
percorre as linhas do cdigo fonte e encontra este comando, entrar em estado de
espera at que cumpra o tempo definido. A sintaxe correta :
delay(tempo em milissegundos);
Os comandos hour(), minute(), second(), day(), month() e year() retornam para
o sistema a hora, minuto, segundo, dia, ms e ano atuais, respectivamente. Esses
so exemplos de comandos que no usam qualquer parmetro de entrada para
gerar seus resultados.

36
A exemplo do que acontece com os comandos citados no pargrafo acima, o
exit() tambm no usa parmetros de entrada para a execuo das suas funes.
Quando este executado o programa encerrado.
O comando keypressed() utilizado para definir o que deve ser executado
quando uma tecla do teclado pressionada. A sintaxe correta :
keypressed() { o que deve ser feito quando uma tecla pressionada}
Todos os comandos acima, com exceo do keypressed() devem ser
finalizados com um ponto-e-vrgula (;).
A figura abaixo mostra o editor de programao Processing e um famoso
cdigo fonte utilizado no Arduino. Destaque para a declarao da varivel ledPin, do
tipo inteira, e para as funes Setup e Loop.

Figura 13 Processing, editor de programao


Fonte: Dados primrios

37

Um editor como o acima utilizado para fazer a programao do


microcontrolador.

Ele

pode

ser

baixado

no

site

oficial

do

Arduino

http://www.arduino.cc. O programa mostrado voltado para um sistema embarcado.


No h qualquer tipo de interao com o computador hospedeiro, que, neste caso,
apenas enviar o cdigo fonte para que o Arduino passe a fazer uso deste.
Muitos autores fazem uma analogia com outras linguagens de programao,
dizendo que o cdigo fonte da figura 13 o ol mundo! do Arduino, ou seja, o
primeiro passo para quem quer trabalhar com esta placa. Esse cdigo fonte, de
complexidade relativamente baixa, faz com que o LED, que dever estar instalado
no pino digital 13, pisque alternadamente a cada segundo.
As duas barras seguidas (//) servem para escrever um comentrio dentro do
cdigo fonte. Este comentrio servir apenas como guia para o programador, no
sendo lido pelo programa no momento da compilao. Para inserir um comentrio
que ocupar vrias linhas, podem ser utilizados os caracteres barra e asterisco (/*)
para delimitar o incio e asterisco e barra (*/) para delimitar o final.
Para desenvolver o programa que dever ser executado no computador
hospedeiro aconselhvel o uso do editor de programao que est disponvel no
site oficial da linguagem de programao Processing http://www.processing.org.
Para que a comunicao entre a placa e o computador hospedeiro se d,
necessrio

baixar

instalar

driver

da

placa,

encontrado

no

site

http://www.ftdichip.com, selecionar no menu tools do editor a porta de comunicao


Communication (COM) que ser utilizada e, aps, o modelo da placa controladora.
No projeto em questo, a comunicao ocorre pela porta COM 7 e a placa
controladora Atmega 168, como j citado anteriormente.
Como o objetivo principal deste trabalho no apresentar a linguagem de
programao Processing, este se resumir a uma breve explicao sobre o assunto.
Mais detalhes podem ser vistos no site oficial do projeto http://www.processing.org
e nos cdigos fonte apresentados nos anexos desta obra.

38

4 COMPONENTES NECESSRIOS PARA O DESENVOLVIMENTO DO


GERENCIADOR DE TEMPERATURA DIGITAL UTILIZANDO ARDUINO
Desenvolver um Gerenciador de Temperatura Digital com o Arduino comea
com a aquisio de um sensor, que far a leitura da temperatura, um visor LCD, que
mostrar o resultado e um alarme, que emitir avisos sonoros em caso de
temperatura fora das condies normais. Tambm sero necessrios alguns metros
de fio de cobre, resistores, potencimetros e uma solda eltrica (tambm chamada
de solda quente) para conectar os instrumentos.
indispensvel o uso de um multmetro, que o equipamento utilizado para
medir corrente, tenso e resistncia eltrica. Estes conceitos sero elencados ainda
neste captulo. A figura abaixo mostra os modelos de solda e multmetro utilizados
no desenvolvimento de circuitos eletrnicos.

Figura 14 - Modelos de solda e multmetro


Fonte: mercadolivre.com.br

O sensor dever ser ligado ao Arduino atravs de uma porta analgica, que
receber um pulso eltrico. A este pulso eltrico devero ser aplicadas funes, as
quais faro parte do cdigo fonte inserido no microcontrolador, que dever convertlas em sinais digitais. Estes sinais digitais devero ser convertidos para o padro
ASC (American Standard Code), para que o valor correspondente temperatura seja
mostrado no visor LCD. O visor LCD dever ser conectado ao Arduino atravs de
sete pinos de sada digital, que sero explicados no decorrer desta obra.

39
O pargrafo acima explica, basicamente, como o processo pode ser feito. Na
prtica a complexidade aumenta consideravelmente,

principalmente se for

considerada a idia principal do trabalho, que criar algo novo, que se adapte a
requisitos e necessidades elencados pelos prprios administradores de redes,
auxiliando-os no gerenciamento do processo de refrigerao do datacenter.

4.1 PROTOBOARD

Para o desenvolvimento de projetos de circuitos aconselhvel, inicialmente,


o uso de uma protoboard, tambm chamada de breadboard.
Uma protoboard nada mais do que uma matriz de contatos que viabiliza a
construo de circuitos experimentais, sem a necessidade do uso de solda. Isso s
possvel devido ao fato de essa matriz ser composta por centenas (por vezes
milhares) de perfuraes, que encaixam fios de cobre de forma que eles fiquem
presos a ela.

Figura 15 - Protoboard para circuitos experimentais


Fonte: mercadolivre.com.br

A figura acima mostra um modelo simples de uma protoboard, mais indicada


para circuitos de menor complexidade. Este modelo possui dois grandes grupos de
contatos, onde, em cada um deles, os pontos so interligados na direo vertical, e
independentes na direo horizontal. A figura abaixo mostra o mapeamento de uma
protoboard, com a definio exata de suas interligaes.

40

Figura 16 - Mapeamento de uma Protoboard


Fonte: wikipedia.org

A fila horizontal superior e inferior geralmente so destinadas a ligar a


alimentao. A regio central da matriz de contato dividida em filas verticais que
contm cinco furos que so interligados eletricamente entre si. Assim todos os furos
de uma mesma fila esto interligados entre si. A coluna de cinco furos superior no
interligada com a inferior (Jlio Cesar Lopes de Oliveira 2010).
importante destacar que o uso de uma protoboard vivel apenas durante a
fase de projeto de um determinado circuito. A partir do momento em que passa-se a
implantar este, o uso de solda imprescindvel, visto que isto dar a ele uma maior
resistncia a impactos e uma aparncia mais profissional.

4.2 SHIELD

De acordo com o site oficial do Arduino (2010), shield nada mais do que
uma placa que pode ser plugada na parte superior do Arduino.
Muitos modelos de shield, para diversas finalidades, so encontrados no
mercado. Um modelo bastante conhecido o Ethernet shield, que serve para anexar
uma interface de rede ao Arduino.

41

Figura 17 - Ethernet shield oficial para Arduino


Fonte: blogdoje.com.br

A figura acima mostra a Ethernet shield oficial do Arduino. Os pinos


localizados abaixo da placa fazem contato com as conexes do Arduino.
De acordo com Jernimo Avelar Filho (2008), esta shield consumiu dois anos
de desenvolvimento com diversos prottipos e diversos testes. Com esta shield o
Arduino poder se conectar hosts via internet e atuar, por exemplo, como um
servidor web. O preo mdio deste produto no Brasil fica em torno de R$ 140,00
(mercadolivre.com.br 2010).
Uma shield tambm pode ser criada pelo prprio desenvolvedor do projeto.
No caso deste trabalho, por exemplo, a idia conectar todos os instrumentos
necessrios ao desenvolvimento do gerenciador de temperatura a uma shield. Isto
dever trazer algumas vantagens como: Facilidade de manuteno, aspecto mais
profissional, pode ser facilmente separada do Arduino para desenvolvimento de
novos projetos e, acima de tudo, torna mais simples o entendimento de como o
funcionamento do circuito.
A figura abaixo mostra a shield utilizada no projeto do gerenciador de
temperatura, no dia em que foram feitos os primeiros testes com o visor LCD Hitashi.

42

Figura 18 - Shield utilizada no projeto do Gerenciador de Temperatura


Fonte: Dados primrios

4.3 O SENSOR DE TEMPERATURA LM35


Segundo Rafael Quines (2010) O LM35 um sensor de preciso de
temperatura em graus Celsius (C), fabricado pela National. Apresenta uma sada
linear relativa temperatura em que ele se encontra no momento em que for
alimentado por uma tenso de 4 a 20V, tendo um sinal de 10mV (0,01V) para cada
grau Celsius de temperatura. Apresenta uma boa vantagem com relao aos demais
sensores de temperatura calibrados em kelvin, no necessitando nenhuma
subtrao de variveis para que se obtenha uma escala de temperatura em graus
Celsius. Hoje ele o mais utilizado em sistemas embarcados devido ao seu
satisfatrio grau de preciso e preo acessvel. O LM35 trabalha com uma variao
de temperatura que vai de -55 a 150 C.
A figura abaixo mostra a estrutura do sensor LM35.

43

Figura 19 - Estrutura do sensor de temperatura LM35


Fonte: mercadolivre.com.br

O funcionamento do LM35 ocorre da seguinte forma:


a) a sada do pino Vout gera uma voltagem que, futuramente, deve ser
proporcionalmente transformada em temperatura;
b) o pino +Vs recebe a alimentao de energia necessria para o
funcionamento do sensor. Essa alimentao de 5V;
c) ao pino Gnd deve ser conectado o aterramento do circuito, para que este
possa ser fechado e o excesso de energia possa ser liberado.
O modelo de sensor de temperatura LM35 mais utilizado o que possui
invlucro de plstico, conforme a figura abaixo.

Figura 20 - Sensor de temperatura LM35


Fonte: mercadolivre.com.br

44
4.4 O VISOR LCD HITACHI HD44780

Segundo o site oficial do Arduino (arduino.cc), os modelos de visor LCD


aconselhveis para uso com o Arduino so os compatveis com o driver HD44780 da
Hitachi.

Figura 21 - Visor LCD com driver compatvel com HD44780


Fonte: Dados primros

O visor mostrado na figura acima possui, na parte superior esquerda, 16


contatos para conexo com o Arduino. A tabela abaixo mostra a funo de cada um
destes pinos que compem o visor LCD.

Pino

Nome

Funo

Conexo com

nmero

Arduino

Vss

Aterramento

Gnd

Vdd

Alimentao 5V

5V

Vee

Contraste

Uso opcional

Register Select (RS)

Registrador

Pino digital

Read / Write (R/W)

Leitura e escrita

Pino digital

Enable (E)

Habilitao

Pino digital

D0

Transmisso de dados

No aplicvel

D1

Transmisso de dados

No aplicvel

D2

Transmisso de dados

No aplicvel

10

D3

Transmisso de dados

No aplicvel

45
11

D4

Transmisso de dados

Pino digital

12

D5

Transmisso de dados

Pino digital

13

D6

Transmisso de dados

Pino digital

14

D7

Transmisso de dados

Pino digital

15

LED+

Conexo com LED

No aplicvel

16

LED-

Conexo com LED

No aplicvel

Tabela 4 - Referncia dos pinos do LCD padro Hitachi HD44780


Fonte: Julyan Ilett

4.5 RESISTORES E POTENCIOMETROS

Para se entender o que resistncia eltrica, preciso primeiro conhecer um


pouco sobre alguns importantes conceitos da rea de eletrnica. Alguns deles so a
corrente e tenso eltrica.
Segundo Luis Carlos Burgos (2010), corrente eltrica o movimento
ordenado de cargas eltricas, medida em ampres (A). Porm, muitos circuitos
eletrnicos funcionam com correntes menores que 1A. Neste caso deve ser utilizada
a unidade miliampre (mA), onde 1 mA equivale a 0,001A. A fonte externa de
energia que alimenta o Arduino possui uma corrente de 700mA.
A tenso eltrica, que medida em volt (V) a diferena de cargas entre os
plos positivo e negativo, que age como uma fora que faz a corrente eltrica passar
pelo circuito. A fonte externa que alimenta o Arduino possui uma tenso de 9V.
A resistncia eltrica, que medida em ohm (), a dificuldade oferecida
pelos materiais passagem de corrente eltrica. Materiais com alta resistncia so
chamados isolantes, os de resistncia mdia so chamados semicondutores e os de
baixa resistncia so chamados condutores.
Para medir a resistncia de um circuito deve-se utilizar a Lei de Ohm, assim
designada em homenagem ao seu formulador Georg Simon Ohm, indica que a
diferena de potencial entre dois pontos de um condutor proporcional corrente
eltrica (Wikipdia 2010).
A frmula a seguinte: R = V/I, onde R, V e I correspondem resistncia,
tenso e corrente eltrica respectivamente.
Seguindo o mesmo raciocnio, com uma variao da mesma frmula, pode-se
calcular a corrente de um determinado circuito eltrico. Por exemplo: Se um resistor

46
de 10 ligado numa fonte de 9V, a corrente que passar por ele ser de 0,6A, pois
10 / 9V = 0,6A.
De acordo com as afirmaes vistas nos pargrafos acima, e seguindo o
raciocnio iniciado por Burgos, um resistor tem a funo de reduzir a corrente eltrica
e a tenso em vrios pontos do circuito. So feitos de materiais mau condutores
como grafite, nquel-cromo e filme metlico. Quanto maior o valor do resistor, menor
a corrente no circuito. Nos casos em que o valor da resistncia oferecida pelo
resistor passar de 1000, pode-se converter para quilo-ohm (k), onde, por
exemplo, 1500 equivale a 1,5k.

Figura 22 - Resistor de 10k


Fonte: mercadolivre.com.br

Os potencimetros so resistores cuja resistncia pode ser alterada girando


um eixo que move um cursor de metal sobre uma pista de grafite. Ou seja, uma
resistncia eltrica ajustvel que atua como um divisor de tenso.

Figura 23 - Potencimetro de trs contatos


Fonte: mercadolivre.com.br

A figura acima mostra um modelo de potencimetro de trs contatos, onde os


das pontas funcionam como terminais fixos e o do meio como cursor, que identifica o
deslocamento pela pista.

47
O modelo de potencimetro mostrado atualmente o mais comum encontrado
no mercado. Ele equipa diversos produtos eletrnicos que necessitam de constantes
ajustes por parte do utilizador, como por exemplo o volume do aparelho de som.
Porm, em alguns casos, os potencimetros so instalados internamente junto ao
circuito, de forma intencional para que apenas tcnicos possam fazer uso destes em
caso de manuteno. Para esta finalidade aconselhvel o uso de um trimpot.
Um trimpot, do ingls trimmer potentiometer, um potencimetro miniatura
ajustvel. Ele ajustado quando instalado em algum dispositivo, e normalmente fica
em local que o usurio no o veja, de modo que eventuais ajustes somente sejam
feitos por tcnicos (Wikipedia 2010).

Figura 24 - Trimpot projetado para ser utilizado em circuitos


Fonte: mercadolivre.com.br

A figura acima mostra um trimpot. A regulagem da quantidade de resistncia


que ser aplicada ao circuito dever ser feita atravs do parafuso localizado na parte
superior.

4.6 ALARME SONORO

At o momento os instrumentos mostrados transformam o Arduino apenas em


um sensor de temperatura digital. Mas, o objetivo do trabalho ir alm e desenvolver
um Gerenciador de Temperatura Digital, ou seja, criar algo que auxilie o
administrador de redes e possa auxili-lo na estabilizao da temperatura.

48
Dessa forma, o uso de um alarme que emita um som quando a temperatura
estiver fora dos padres de trabalho extremamente relevante, visto que o
administrador no dispe de tempo suficiente para fazer um acompanhamento
contnuo da temperatura do datacenter.
Para realizar tal soluo, foi retirado o alto-falante speaker de um computador
que j havia cado em desuso, por ter se tornado obsoleto em relao aos padres
atuais de hardware e software. Ainda que o modelo de alto-falante utilizado seja de
baixa potncia, sua fabricao foi feita especificamente para a gerao de bips de
alarme caso haja alguma falha no funcionamento do computador no qual ele est
instalado, que o mesmo princpio deste projeto. Outra vantagem alcanada com o
reaproveitamento deste alto-falante foi a no necessidade de investimento financeiro
para sua aquisio.
Para a instalao deste alarme necessrio utilizar um pino digital e um pino
de aterramento (Gnd) no Arduino. Como o speaker possui dois conectores, cada um
deles deve ser ligado a um dos pinos citados anteriormente. Assim, com o circuito
fechado, a passagem de corrente eltrica pelo alto-falante gerar um som que,
dependendo da frequncia utilizada, poder ser mais grave ou mais agudo.

4.7 LED

O capitulo anterior apresentou uma soluo de som para servir de alerta


quando a temperatura do datacenter estiver fora dos padres. Porm, tambm
importante que exista algum tipo de alarme visual que atue junto ao alarme sonoro.
Esta soluo pode ser obtida atravs da instalao de um LED,
preferencialmente na cor vermelha, que exprima a idia de que h algo de errado.
Dessa forma, no momento em que a temperatura atingir um nvel inaceitvel para o
sistema, ascende-se o LED e o alarme emite sons.
A gerao de luz de um LED acontece graas a um chip semicondutor que,
quando energizado, emite radiaes infra-vermelhas (Wikipedia 2010).

49

Figura 25 - Conjunto de LEDs vermelhos


Fonte: mercadolivre.com.br

A exemplo do que ocorre com o speaker, o LED usa um pino digital e um pino
de aterramento (Gnd) do Arduino para seu funcionamento. A diferena que no
caso do speaker os pinos podem ser ligados de forma invertida que o som ser
transmitido sem problemas. J o LED, obrigatoriamente, deve ter o plo positivo
(mais comprido) ligado ao pino digital e o negativo ao aterramento.

50
5 DESENVOLVIMENTO DO GERENCIADOR DE TEMPERATURA DIGITAL

Este captulo abordar a parte prtica do desenvolvimento do circuito


eletrnico, focando tanto nas conexes fsicas quanto na programao lgica, que
trabalharo juntas ao encontro do objetivo principal, que o desenvolvimento do
Gerenciador de Temperatura Digital.
O cdigo fonte completo, todo feito na linguagem de programao Processing,
e o circuito eletrnico desenvolvido no projeto esto disponveis na seo de anexos,
encontrada no final desta obra.

5.1 MEDIO DA TEMPERATURA

Segundo o site da Wikipedia (2010), a temperatura responsvel pela


transferncia da energia trmica na forma de calor entre dois ou mais sistemas.
Para o desenvolvimento de um circuito que resulte em um Gerenciador de
Temperatura Digital importante que se saiba, inicialmente, a forma como ser feita
a leitura da temperatura.
Jeronimo Avelar Filho, profissional da rea de TI, aconselha o uso do sensor
LM35 para fazer a leitura de temperatura, pois alm de este ter um preo acessvel,
tambm muito preciso no processo de leitura.
Para

iniciar

construo

do

circuito

eletrnico,

deve-se

conectar

respectivamente os pinos +Vs, Gnd e Vout do LM35 aos pinos +5V, Gnd e Analgico
0 (ou qualquer outro pino analgico entre 0 e 5) do Arduino. Dessa forma, o primeiro
pino ser o responsvel por manter o LM35 energizado e o segundo ser o
aterramento. J o terceiro far a leitura da energia que ser enviada pelo sensor.
imprescindvel o uso de um resistor de 100K entre as conexes analgico e
Gnd. Segundo Jeronimo Avelar Filho, a no utilizao deste pode acarretar em
falhas de leitura, tornando inconsistentes as informaes recebidas do sensor LM35.
Os pinos analgicos do Arduino possuem resoluo de 10 bits, ou seja,
devolvem um valor entre 0 e 1023. O valor de referncia nesse caso 5, pois a
tenso em que o LM35 trabalha 5V. Assim sendo, se o pino analgico ler 1024,
significa que a tenso enviada pelo LM35 5V.
Ao microcontrolador do Arduino deve ser feito upload do cdigo fonte que far
a leitura da temperatura. Neste cdigo fonte o valor da temperatura em graus clsius

51
ser gerado atravs da seguinte equao: temperatura = (5 * valor lido no LM35 *
100) /1024.
Como j falado anteriormente, o valor referncia 5 devido ao fato do LM35
trabalhar com tenso de 5V. O valor referncia 1024, que tambm fixo,
corresponde aos 10 bits utilizados pelo pino analgico do Arduino para fazer a
leitura. O valor 100 serve para transformar o resultado em decimal (Jeronimo Avelar
Filho 2010).

5.2 INSTALAO DO VISOR LCD

Um dos objetivos do Gerenciador de Temperatura Digital que a temperatura


seja mostrada em um visor LCD, para que no seja necessria a consulta ao
computador no qual o Arduino est conectado para se obter essa informao.
Sendo assim, torna-se indispensvel o uso de um visor LCD que dever
apresentar o resultado lido pelo pino analgico do Arduino atravs do sensor LM35.
A escolha pelo modelo de LCD padro Hitachi HD44780 se fez devido s
timas referncias a ele encontradas no site oficial do Arduino, que enfatizou a
facilidade de integrao e compatibilidade com a placa.
O tamanho do visor pode ser medido em linhas e colunas, sendo mais
comumente encontrados atualmente no mercado os tamanhos 8 x 2 (oito colunas e
duas linhas) e 16 x 2 (dezesseis colunas e duas linhas). Para o projeto em questo,
foi escolhido o tamanho 16 x 2, onde na primeira linha fica o cabealho atualmente
composto pela palavra Temperatura: e na segunda linha o valor de temperatura
lido pelo pino analgico do Arduino.
As conexes com o Arduino devem ser feitas conforme a tabela 4, que est
localizada no captulo 4 desta obra. Tambm no captulo 4 pode ser encontrada a
figura 18, que mostra o a imagem com os primeiros testes do visor LCD conectado
ao circuito.
indispensvel a instalao de um potencimetro de 10k que servir para
ajustar o contraste do visor LCD. Sem a instalao deste, o visor acabaria
trabalhando com uma alta quantidade de energia e, por conseqncia, dificultando a
leitura das informaes contidas no visor devido ao alto contraste.
A instalao do potencimetro dever ser feita da seguinte forma: Uma
extremidade dever ser conectada aos pinos 5V do Arduino e Vdd do LCD, a outra

52
extremidade aos pinos Gnd do Arduino e Vss do LCD, e a conexo central ao pino
Vee do LCD. No desenvolvimento do Gerenciador de Temperatura Digital foi
utilizado um potencimetro do tipo trimpot, pois espera-se que depois que o visor
LCD estiver com seu contraste regulado, no haver necessidade de novo ajuste.
No cdigo fonte inserido no microcontrolador da placa deve constar a
biblioteca LiquidCrystal, que a responsvel pela comunicao entre o Arduino e o
visor LCD.
Um caracter utilizado na escrita de valores de temperatura o indicador
ordinal (), parte da abreviao de graus celsius (C). Este caracter no
reconhecido pelo visor LCD, por isso deve ser criado por cdigo fonte em
Processing, conforme abaixo:
byte caracter[8] = {B00100, B01010, B00100, B00000, B00000, B00000,
B00000, B00000 };
Cada nmero corresponde a um pixel de caracter, que no visor LCD est
dividido em oito linhas e cinco colunas. Os pixels com nmero 1 representam
preenchido, de forma a desenhar o caracter desejado.

5.3 DESENVOLVIMENTO DO ALARME

Para o desenvolvimento do alarme podem ser utilizados um alto-falante do


tipo speaker, comumente encontrados em computadores pessoais, e um ou mais
LEDs. O objetivo gerar avisos sonoros e visuais em caso de alguma anormalidade
na temperatura do datacenter.
Tanto o LED quanto o alto-falante speaker devem ser conectados a pinos
digitais do Arduino, ambos possuindo uma estrutura de montagem ao circuito muito
similar.
O LED possui duas conexes. A conexo positiva deve ser conectada ao pino
digital e a negativa ao pino Gnd. Isso resultar em um circuito fechado que, quando
energizado (houver passagem de energia em direo ao Gnd), o LED ascender.
No cdigo fonte do microcontrolador devem ser inseridas linhas de
programao em linguagem Processing para ligar e desligar o LED conforme as
regras estabelecidas. O comando para a funo :
digitalWrite(13, HIGH);

53
Onde, digitalWrite o nome da funo, 13 o nmero do pino digital
utilizado e HIGH quer dizer para gerar energia (ligar o LED). Para finalizar a
gerao de energia (desligar o LED) deve-se trocar HIGH por LOW.
Assim como ocorre com a instalao do LED, o alto-falante tambm possui
duas conexes. Uma delas deve ser ligada ao pino digital e outra ao pino Gnd que,
no caso especfico do speaker, no h diferena se as conexes forem ligadas
invertidas, o som ser gerado de qualquer forma.
O comando em linguagem Processing (que deve ser inserido no cdigo-fonte
do microcontrolador) que liga o alto-falante e gera o som no Arduino :
tone(8, 500, 1000) ;
Onde, tone o nome da funo, 8 o nmero do pino digital utilizado e
1000 a durao do som em milisegundos.
A figura abaixo mostra o alarme do Gerenciador de Temperatura Digital feito
sobre uma protoboard, ainda em fase experimental.

Figura 26 - Alarme em fase experimental


Fonte: Dados primrios

54
6 PRODUTO FINAL E IMPLANTAO
Aps concluda a fase experimental, feita sobre uma protoboard, deve-se
comear o desenvolvimento definitivo do produto. Nesse momento tudo que est
ligado ao microcontrolador deve ser soldado na shield. Isso dar ao Gerenciador de
Temperatura Digital uma aparncia mais profissional e garantir, atravs dos pontos
de solda, uma transmisso de energia confivel. O sucesso na implantao depende
diretamente da qualidade do produto final.

6.1 PRODUTO FINAL

Cada componente tem suas particularidades. O sensor LM35 foi conectado


shield com um cabo de cerca de 1 metro de distncia, pois nem sempre possvel
se prever a distncia que o gerenciador estar do ponto de coleta de temperatura do
datacenter.
O LED e o visor LCD foram conectados junto shield, sendo que o segundo
distante cerca de 15 centmetros, para facilitar a montagem de forma a garantir uma
boa visualizao.
O alto-falante speaker foi projetado para ser encaixado ou desencaixado
conforme a preferncia do administrador de redes. Embora seja importante, algumas
pessoas reclamam do incomodo gerado por alarmes sonoros.
A alimentao de energia ser feita por uma fonte externa de 9V e 700 mA.
Inicialmente o Gerenciador de Temperatura Digital foi alimentado apenas pela
energia enviada pelo computador hospedeiro atravs da porta USB. Porm, o
constante crescimento deste circuito eletrnico fez surgir a necessidade de uma
alimentao de energia mais eficaz.
O Gerenciador de Temperatura Digital far uma leitura de temperatura a cada
30 segundos. Se a temperatura ultrapassar a marca de 25 graus o alarme ser
ligado e s voltar a desligar na prxima leitura, se caso esta estiver abaixo de 26
graus. Essas regras foram adotadas para os primeiros testes no datacenter da
reitoria da Unipampa, mas podem ser alteradas conforme a necessidade.
No computador hospedeiro so gerados relatrios, tambm chamados de
arquivos log, que registraro histricos de temperatura a cada nova leitura, com
informaes de data e hora. Tambm sero registradas a temperatura mdia e a

55
mais elevada, sendo que nesta ltima tambm constar o horrio em que ocorreu.
Essas informaes sero importantes no momento em que se fizer necessria a
averiguao de algum incidente envolvendo a temperatura interna do datacenter. A
figura abaixo mostra como esses relatrios so acessados por uma estao de
trabalho via rede interna.

Figura 27 - Acesso aos relatrios de histrico de temperaturas


Fonte: Dados primrios

A idia inicial era que o Gerenciador de Temperatura Digital fosse fabricado


em uma caixa de acrlico, criada especialmente para este fim. Porm, no dia 30 de
setembro de 2009, o site http://www.globo.com publicou uma matria com o
empresrio gacho Andr Ruschel, desenvolvedor do ThinEco, um computador
ecologicamente correto fabricado dentro de uma caixa de papelo. Os motivos que
levaram o empresrio a fazer este experimento foram:
a) contribuio para o desenvolvimento sustentvel, a partir da utilizao de
material reciclvel;
b) menor ndice de superaquecimento, se comparado com outros materiais
como metal e plstico;
c) menor custo de fabricao.

O ThinEco serviu de motivao para que o Gerenciador de Temperatura


Digital tambm viesse a ser construdo dentro de uma caixa de papelo. O resultado
desta idia pode ser visto na figura abaixo.

56

Figura 28 - Gerenciador de Temperatura Digital em fase final


Fonte: Dados primrios

6.2 IMPLANTAO

Antes da implantao do Gerenciador de Temperatura Digital no datacenter


da Reitoria da Unipampa, foram feitos alguns ajustes necessrios para o bom
funcionamento.
O visor LCD passou por uma regulagem de contraste, pois na sua
configurao inicial as informaes mostradas ficaram um pouco indefinidas quando
vistas de um ngulo diferente do central. Com o auxilio de uma chave de fenda
pode-se regular o trimpot, que aumenta e diminui o contraste conforme o ndice de
resistncia aplicada passagem de energia.
Tambm foram feitos alguns testes de preciso com o auxilio de um
termmetro adquirido no mercado local. Os testes acusaram que o Gerenciador de
Temperatura Digital mostra um resultado equivalente, algumas vezes com um
mximo de 2C a menos que o modelo adquirido no mercado local. Esta diferena
pode ser justificada se for levado em considerao que o sensor do termmetro fica
localizado na parte interna do aparelho, sob uma proteo de plstico. Diferente do
que ocorre com o LM35 utilizado no Gerenciador de Temperatura Digital, que fica
exposto ao ambiente. O termmetro adquirido no mercado local tambm apresentou
um maior ndice de variao de temperatura. A figura abaixo mostra um dos testes
feitos, que registrou um momento de equivalncia de temperatura entre os dois
produtos.

57

Figura 29 - Gerenciador de Temperatura Digital e Termmetro


Fonte: Dados primrios

O alarme funcionou de forma eficaz. Foram simuladas temperaturas mais


altas pressionando-se o sensor LM35 com os dedos, a fim de se gerar calor. O
resultado foi satisfatrio.
A ltima etapa do projeto foi instalar o produto no datacenter que fica
localizado no prdio da reitoria da Unipampa, fato este que aconteceu na manh do
dia 18 de novembro de 2010.
O servidor de AD, que possui o sistema operacional Windows 2008 Server
instalado, passou a ser tambm o computador hospedeiro configurado para gerar os
relatrios com histricos de temperatura. Estes ficam armazenados em um diretrio
com acesso restrito atravs da rede ethernet local. Os relatrios so gerados em
arquivos de extenso txt, reconhecidos por grande parte dos editores de texto.
O primeiro relatrio analisado foi o referente ao dia 18 de novembro de 2010.
A temperatura ficou na mdia de 29C, acima dos 25C definidos como limite pelo
Gerenciador de Temperatura Digital. Por consequncia o alarme soou na maior parte
do tempo.
Esse resultado mostra que a reitoria da Unipampa deve tomar uma
providncia em relao temperatura do seu datacenter, principalmente se for
considerado que a temperatura aconselhvel para este tipo de ambiente, segundo a
empresa Locaweb (2010), de no mximo 23 C.
A figura abaixo mostra o produto j instalado no datacenter.

58

Figura 30 - Gerenciador de Temperatura Digital instalado no datacenter


Fonte: Dados primrios

Conforme planejado, o Gerenciador de Temperatura Digital foi instalado na


parte superior do rack, facilitando sua visualizao. O sensor de temperatura foi
instalado na parte interna ao fundo, pois este o ponto onde a temperatura fica mais
alta. Isso pode ser justificado pelo fato de os computadores, os roteadores, bem
como grande parte dos equipamentos de TI possuem seus coolers localizados na
parte traseira do equipamento. A figura abaixo mostra como foi fixado o sensor de
temperatura ao rack.

Figura 31 - Sensor de temperatura fixado ao rack


Fonte: Dados primrios

59

CONCLUSO

Vrios fatores so levados em conta no momento de se julgar o sucesso de


um determinado projeto. Nos pargrafos seguintes sero citados alguns que foram
decisivos no desenvolvimento deste trabalho.
O mercado da tecnologia dispe de ferramentas para suprir as mais variadas
necessidades, inclusive para gerenciamento de temperatura. Algumas solues
foram analisadas. Uma delas foi o Termmetro IP que, entre outras qualidades,
possui acesso via web. Porm, o seu valor de mercado ainda muito alto para boa
parte das organizaes.
A importadora SoloStocks, que comercializa o Termmetro IP, tambm
oferece o Datalogger, que um produto mais simples (sem acesso via web) para
gerenciamento de temperatura. Todavia, ainda que o custo do Datalogger seja mais
baixo, o produto peca por no possuir um alarme sonoro para alertar anomalias na
temperatura.
O mdulo NetBotz 200, da fabricante APC, tambm se mostrou uma soluo
interessante. Assim como ocorre com o Termmetro IP, este tambm possui acesso
via web. Uma vantagem encontrada no produto da APC o comprimento do cabo
que liga o sensor de temperatura AP9335T, que, de acordo com seu manual de
instrues, de 3,96m. Tambm importante destacar que a cada mdulo podem
ser conectados at seis sensores de temperatura, que um ponto relevante para
organizaes em constante crescimento que pretendem aumentar os pontos de
coleta de temperatura ao longo do tempo. Essa uma limitao encontrada nos
produtos importados pela SoloStocks, que possuem apenas um sensor de
temperatura.

60
Os produtos encontrados no mercado, ainda que muito bons, no se
mostraram fiis na relao custo/benefcio. Este foi um dos motivos que motivaram o
desenvolvimento de um Gerenciador de Temperatura Digital, que trouxe ao projeto a
possibilidade de se criar algo novo, aproveitando vantagens de cada uma das
solues.
Assim como ocorre no mdulo NetBotz 200, o Gerenciador de Temperatura
Digital d a possibilidade de se conectar at seis sensores de temperatura, sendo
que cada sensor sai por um preo consideravelmente menor que o do produto da
APC. Um sensor de temperatura AP9335T para mdulo NetBotz 200 custa $ 69,11,
enquanto que um sensor de temperatura LM35, utilizado no Gerenciador de
Temperatura Digital, com resistores e alguns metros de fio, custa cerca de R$ 10,00.
O Gerenciador de Temperatura Digital hoje carece de um sistema para
acesso e configurao via web, como possuem o NetBotz 200 e o Temmetro IP. A
soluo para isso poderia ser a instalao de uma Ethernet Shield, que prov acesso
via rede ao Arduino. Uma placa como esta custa em torno de R$ 140,00 no site
mercadolivre.com.br. No est afastada a possibilidade de projetos futuros com a
instalao de uma Ethernet Shield ao Gerenciador de Temperatura Digital, pois
ainda assim o custo/benefcio mais satisfatrio em relao s demais solues. J
est em pauta o desenvolvimento de uma nova verso do produto com um servidor
web incluso.
O Datalogger possui um registro das quatro mil ltimas leituras de
temperatura, que podem ser vistas somente no visor do produto. Essa caracterstica
tambm foi otimizada no Gerenciador de Temperatura Digital, que registra no
computador hospedeiro um histrico com a hora e a temperatura a cada 30
segundos, apresentando tambm informaes qualificadas como temperatura mais
alta do dia, com o respectivo horrio, e temperatura mdia.
O Gerenciador de Temperatura Digital ainda possui algumas caractersticas
nicas, como utilizao de material reciclvel em parte do seu desenvolvimento,
instalao do visor LCD externamente ao rack de servidores e alarme com alertas
visual e sonoro.
Considerando apenas aspectos tcnicos de cada soluo fica difcil saber qual
delas se enquadra melhor para suprir a necessidade em questo. Porm, quando se
considera o custo/benefcio, o desenvolvimento do Gerenciador de Temperatura
Digital torna-se a opo mais vantajosa para a Reitoria da Unipampa, que foi o local

61
escolhido para a implantao desta soluo. A figura abaixo mostra um grfico
aproximado de valores de cada um dos produtos.

Figura 32 - Valor de cada soluo encontrada


Fonte: Dados primrios

Tambm importante destacar que, por este trabalho ser apresentado em


mbito acadmico, a escolha por desenvolver um produto por completo, abrangendo
todas as fases (desde os estudos iniciais at a implantao), enriquece o
conhecimento do aluno e faz do resultado obtido algo extremamente gratificante.

62

REFERNCIAS BIBLIOGRFICAS

ALEXANDER, Charles K.; SADIKU, Matthew. Fundamentos de Circuitos Eltricos.


Porto Alegre: Bookman, 2003. p. 01-79.
ARDUINO, site oficial. Disponvel em: <http://www.arduino.cc>. Acesso em: 20 julho
2010.
BANZI, Massimo. Getting Started with Arduino.USA. OReilly. 2009.
BLEMINGS, Hugh; OXER, Jonathan. Practical Arduino, Cool Projects for Open
Source Hardware. New York USA: Apress, 2009.
DUARTE,

Sergio.

Site

oficial

Freeduino

BR.

Disponvel

em:

<http://freeduino.blogspot.com>. Acesso em: 27 julho 2010.


FILHO, Jernimo Avelar. Blog do Je. Disponvel em: <http://www.blogdoje.com.br>.
Acesso em: 25 julho 2010.
FREEDUINO, site oficial. Disponvel em: <http://www.freeduino.org>. Acesso em: 23
julho 2010.
FRY, Ben; REAS, Casey. Getting Started with Processing. USA: OReilly, 2010.
FURAST, Pedro Augusto. Normas Tcnicas para o Trabalho Cientifico. 15. ed.
Porto Alegre: 2010.
HOBBS, David. Blog Engine. Disponvel em: <http://codehosting.net>. Acesso em:
09 setembro 2010.
ILETT, Julyan. How to Use Intelligent L.C.D.s. Everyday Practical Electronics
Magazine. USA: Fevereiro, 1997.

63
INFOPLAY.

Blog

sobre

tecnologia.

Disdponvel

em:

<http://infoplaypodcast.wordpress.com>. Acesso em: 23 outubro 2010.


LEITE, Marcelo. Anysoft. Disponvel em <http://www.anysoft.com.br >. Acesso em:
17 outubro 2010.
LOCAWEB, solues de datacenter. Disponvel em <http://www.lecaweb.com.br>.
Acesso em: 12 setembro 2010.
MERCADO

LIVRE,

site

de

compras.

Disponvel

em:

<http://www.mercadolivre.com.br>. Acesso em: 05 julho 2010.


ODOM, Wendell. CCNA ICND 1, Guia de Certificao Oficial para o Exame. Alta
Books. Rio de Janeiro: 2008. Pg. 16.
OLHAR

DIGITAL.

Arduino,

robtica

para

iniciantes.

Disponvel

em:

<http://olhardigital.uol.com.br/negocios/central_de_videos/arduino-robotica-parainiciantes/10981>. Acesso em: 02 julho 2010.


OLIVEIRA, Jlio C. Lopes. Projetronic curso de eletrnica. Disponvel em
<http://www.projetronic.com.br>. Acesso em: 18 outubro 2010.
PROCESSING, site oficial da linguagem de programao. Disponvel em:
<http://www.processing.org>. Acesso em: 20 julho 2010.
PROVANTAGE

SUPERSTORE,

site

de

compras.

Disponvel

em:

<http://www.provantage.com>. Acesso em 28 outubro 2010.


QUINES, Rafael. ArduinoRS. Disponvel em: <http://www.arduinors.net>. Acesso em:
27 julho 2010.
REYMOND, Gerson. Arduino, crie seu prprio rob ou sensores inteligentes.
Disponvel em: <http://www.vivaolinux.com.br/artigo/Arduino-Crie-o-seu-proprio-roboou-sensores-inteligentes>. Acesso em: 02 agosto 2010.
SOLOSTOCKS, site de compras. Disponvel em: <http://www.solostocks.com.br>.
Acesso em: 28 outubro 2010.
TRIPLETECH

IT

SOLUTIONS,

site

oficial.

Disponvel

em

<http://www.

tripletech.com.br>. Acesso em: 18 outubro 2010.


WIKIPEDIA, Ensiclopdia digital. Disponvel em: <http://www.wikipedia.org>. Acesso
em 25 julho 2010.

64

ANEXOS

65
ANEXO A CDIGOS FONTE COMENTADOS
A1 Cdigo fonte em linguagem de programao Processing inserido no
microcontrolador do Arduino, para a apresentao da monografia. Para o
desenvolvimento deste cdigo foi utilizado o editor de programao Arduino 018.

#define SOM 1500 //definio da frequencia em que vibrar o som do alarme.


#include <LiquidCrystal.h> //biblioteca utilizada pelo visor LCD
int ledPin = 13; //varivel que representa o LED azul, conectado ao pino 13 digita.l
int ledPin_red = 7; //varivel que representa o LED vermelho, conectado ao pino 7 digital.
int analogPin = 0; //varivel que representa o LM35, conectado ao pino 0 analgico.
int valAnalog; //varivel que armazenar o valor lido pelo LM35.
int temperatura; //varivel que armazenar o valor da temperatura gerada.
byte caracter[8] = { //criao do caracter para escrever C no LCD
B00100,
B01010,
B00100,
B00000,
B00000,
B00000,
B00000,
B00000
};
LiquidCrystal lcd (12, 10, 11, 5, 4, 3, 2) //define pinos do LCD que sero utilizados
void setup()
{
pinMode(ledPin, OUTPUT); //define pino 13 (led) como sada digital.
pinMode(ledPin_red, OUTPUT); //define pino 7 (led vermelho) como sada digital.
Serial.begin(9600); //determina a velocidade de transmisso da porta serial.
lcd.createChar(0, caracter); //ativa caracter
}
void loop() //linhas de cdigo que sero executadas continuamente.
{
lcd.begin (16,2); //inicia o LCD com 2 linhas e 16 colunas para caracteres.
lcd.print(Temperatura:); //escreve a palavra temperatura na primeira linha do LCD.
valAnalog = analogRead(analogPin);
temperatura = (5 * valAnalog * 100) / 1024; //frmula da temperatura.
Serial.println(temperatura); //envia temperatura para host.
lcd.setCursor (0, 1); //posiciona o cursor do LCD na linha 2 (1) e coluna 1 (0).
lcd.print(temperatura); //imprime a temperatura no LCD.

66
lcd.setCursor(3,1); //escreve no LCD C depois do valor da temperatura.
lcd.write(0);
lcd.setCursor(4,1);
lcd.print(C);
if (temperatura > 24){
//se temperatura alta:
tone(8, SOM, 1000);
//liga alarme;
digitalWrite(ledPin_red, HIGH); //ascende led vermelho;
}
else{
//se temperatura normal:
digitalWrite(ledPin_red, LOW); //apaga led vermelho.
}
delay(6000); //aguarda 6 segundos.
piscaled();
}
//abaixo a funo que faz o led azul piscar.
void piscaled() {
digitalWrite(ledPin, HIGH); //ascende led azul.
delay(50);
//aguarda 0,5 segundos.
digitalWrite(ledPin, LOW); //apaga led azul.
}

A2 Cdigo fonte em linguagem de programao Processing gravado no


computador

hospedeiro,

para

apresentao

da

monografia.

Para

desenvolvimento deste cdigo foi utilizado o editor de programao Processing


1.2.1.
import processing.serial.*; //biblioteca utilizada para comunicao da placa controladora
//com o computador hospedeiro.
PrintWriter output;
//utilizado para a criao do arquivo texto que gerar logs.
char temp;
//varivel que armazenar as temperaturas.
int h;
//varivel que armazenar o minuto corrente.
String temp_c;
int temp_i = 0;
String temp_it;
int maior_temp = 0;
int h_maior;
int m_maior;
int s_maior;
int h_corrente;
int m_corrente;
int s_corrente;
float soma = 0;

//variveis que armazenaro valores utilizados para o relatrio de


//log

67
float media;
float i = -1; //valor de -1 devido primeira leitura no ser computada para a mdia
Serial myPort;

//varivel que armazenar o endereo da porta serial utilizada.

void setup() {
println(Serial.list());

//lista os endereos de portas que esto em uso

//a linha abaixo seleciona a porta nmero 2, que a utilizada pelo Arduino conforme a lista
//de endereos. Este valor pode variar de um computador para o outro. 9600 a taxa de
//transferncia de dados.
myPort = new Serial(this, Serial.list()[2], 9600);
//a linha abaixo cria um arquivo texto que servir de log. No nome constam informaes de
//horrio, que o diferenciar dos demais logs.
output = createWriter("log_temperatura_"+hour()+"_"+minute()+".txt");
//As linhas abaixo j fazem parte do contedo do arquivo: cabealho, hora e temperatura.
output.println("Relatrio: "+day()+"/"+month()+"/"+year()+" - "+hour()+":"+minute());
output.println();
output.println("Hora - Temperatura");
output.print(hour() + ":" + minute() + ":" + second() + " - ");
h_corrente = hour();
m_corrente = minute();
s_corrente = second();
h = minute(); //armazena o minuto atual, conforme o relgio do computador hospedeiro.
}
//em draw ficam as linhas de cdigo que sero executadas continuamente, similar ao que
//ocorre em loop no cdigo inserido no microcontrolador.
void draw() {
while (myPort.available() > 0) { //se houver transmisso de dados
int val_serial = myPort.read(); //armazena na varivel val_serial.
String val_c = Integer.toString(val_serial);
if ((val_serial != 10) && (val_serial != 13)){ //diferente de nova linha e retorno de carrinho
switch (val_serial){ //descobrir qual o dgito que foi enviado pela porta serial
case 48:
//atravs de seu cdigo ASC.
temp_it = "0";
break;
case 49:
temp_it = "1";
break;
case 50:

68
temp_it = "2";
break;
case 51:
temp_it = "3";
break;
case 52:
temp_it = "4";
break;
case 53:
temp_it = "5";
break;
case 54:
temp_it = "6";
break;
case 55:
temp_it = "7";
break;
case 56:
temp_it = "8";
break;
case 57:
temp_it = "9";
break;
}
temp_c = (temp_c + temp_it);

//descobrir a temperature em String

}
if (val_serial == 13){ //se retorno de carrinho
temp_i = int(temp_c);
soma = soma + temp_i; //definindo soma total das temperaturas
i++;
if (temp_i > maior_temp){ //registrar maior temperatura e horrio em que ocorreu
maior_temp = temp_i;
h_maior = h_corrente;
m_maior = m_corrente;
s_maior = s_corrente;
}
temp_c = "";
temp_i = 0;
}
temp = char(val_serial);
print(temp);
if (val_serial == 10) { //se nova linha escrever a hora para a nova leitura de temperatura
output.print(hour() + ":" + minute() + ":" + second() + " - ");
h_corrente = hour();
m_corrente = minute();
s_corrente = second();
}

69
if ((val_serial != 13) && (val_serial != 10)){ //diferente de nova linha e retorno de carrinho
output.print(temp); //escreve valor no relatrio de log
}
if (val_serial == 13){ //se retorno de carrinho pular para prxima linha
output.println();
if (h != minute()){ //se trocar para minuto seguinte
media = soma / i; //tirar a mdia
output.println();
output.println("Temperatura mais alta: " + maior_temp); //temperatura mais alta
output.println("Hora: " + h_maior + ":" + m_maior +":" + s_maior); //hora
output.println();
output.println("Temperatura mdia: " + media); //temperatura mdia
output.flush();
output.close(); //finaliza relatrio
h_corrente = 0; //zera valores
m_corrente = 0;
s_corrente = 0;
maior_temp = 0;
soma = 0;
media = 0;
i = 0;
//cria novo relatrio de log para o minuto seguinte
output = createWriter("log_temperatura_"+hour()+"_"+minute()+".txt");
output.println("Relatrio: "+day()+"/"+month()+"/"+year()+" - "+hour()+":"+minute());
output.println();
h = minute();
}
}
}
}
void keyPressed() { //encerra execuo do programa se alguma tecla for pressionada.
output.close();
exit();
}

A3 Cdigo fonte em linguagem de programao Processing inserido no


microcontrolador do Arduino, para implantao no datacenter localizado no prdio da
Reitoria da Unipampa. Para o desenvolvimento deste cdigo foi utilizado o editor de
programao Arduino 018.

#define SOM 1500 //definio da frequencia em que vibrar o som do alarme.


#include <LiquidCrystal.h> //biblioteca utilizada pelo visor LCD
int ledPin = 13; //varivel que representa o LED azul, conectado ao pino 13 digita.l

70
int ledPin_red = 7; //varivel que representa o LED vermelho, conectado ao pino 7 digital.
int analogPin = 0; //varivel que representa o LM35, conectado ao pino 0 analgico.
int valAnalog; //varivel que armazenar o valor lido pelo LM35.
int temperatura; //varivel que armazenar o valor da temperatura gerada.
byte caracter[8] = { //criao do caracter para escrever C no LCD
B00100,
B01010,
B00100,
B00000,
B00000,
B00000,
B00000,
B00000
};
LiquidCrystal lcd (12, 10, 11, 5, 4, 3, 2) //define pinos do LCD que sero utilizados
void setup()
{
pinMode(ledPin, OUTPUT); //define pino 13 (led) como sada digital.
pinMode(ledPin_red, OUTPUT); //define pino 7 (led vermelho) como sada digital.
Serial.begin(9600); //determina a velocidade de transmisso da porta serial.
}
void loop() //linhas de cdigo que sero executadas continuamente
{
lcd.begin (16,2); //inicia o LCD com 2 linhas e 16 colunas para caracteres.
lcd.print(Temperatura:); //escreve a palavra temperatura na primeira linha do LCD.
valAnalog = analogRead(analogPin);
temperatura = (5 * valAnalog * 100) / 1024; //frmula da temperatura.
Serial.println(temperatura); //envia temperatura para host.
lcd.setCursor (0, 1); //posiciona o cursor do LCD na linha 2 (1) e coluna 1 (0).
lcd.print(temperatura); //imprime a temperatura no LCD.
lcd.setCursor(3,1); //escreve no LCD C depois do valor da temperatura.
lcd.write(0);
lcd.setCursor(4,1);
lcd.print(C);
if (temperatura > 25){
//se temperatura alta:
tone(8, SOM, 1000);
//liga alarme;
digitalWrite(ledPin_red, HIGH); //ascende led vermelho;
}
else{
//se temperatura normal:
digitalWrite(ledPin_red, LOW); //apaga led vermelho.
}
delay(30000); //aguarda 30 segundos.

71
piscaled();
}
//abaixo a funo que faz o led azul piscar.
void piscaled() {
digitalWrite(ledPin, HIGH); //ascende led azul.
delay(50);
//aguarda 0,5 segundos.
digitalWrite(ledPin, LOW); //apaga led azul.
}

A4 Cdigo fonte em linguagem de programao Processing gravado no


computador

hospedeiro,

para

apresentao

da

monografia.

Para

desenvolvimento deste cdigo foi utilizado o editor de programao Processing


1.2.1.

import processing.serial.*; //biblioteca utilizada para comunicao da placa controladora


//com o computador hospedeiro.
PrintWriter output;
//utilizado para a criao do arquivo texto que gerar logs.
char temp;
//varivel que armazenar as temperaturas.
int d;
//varivel que armazenar o dia corrente.
String temp_c;
//variveis que armazenaro valores utilizados para o relatrio de
int temp_i = 0;
//log
String temp_it;
int maior_temp = 0;
int h_maior;
int m_maior;
int s_maior;
int h_corrente;
int m_corrente;
int s_corrente;
float soma = 0;
float media;
float i = -1; //valor de -1 devido primeira leitura no ser computada para a mdia
Serial myPort;

//varivel que armazenar o endereo da porta serial utilizada.

void setup() {
println(Serial.list());

//lista os endereos de portas que esto em uso

//a linha abaixo seleciona a porta nmero 2, que a utilizada pelo Arduino conforme a lista
//de endereos. Este valor pode variar de um computador para o outro. 9600 a taxa de
//transferncia de dados.
myPort = new Serial(this, Serial.list()[2], 9600);

72

//a linha abaixo cria um arquivo texto que servir de log. No nome constam informaes de
//data, que o diferenciar dos demais logs.
output = createWriter("log_temperatura_"+year()+"_"+month()+"_+day()+.txt");
//As linhas abaixo j fazem parte do contedo do arquivo: cabealho, hora e temperatura.
output.println(Unipampa Reitoria);
output.println(Datacenter 01 - Medio de temperatura);
output.println();
output.println("Relatrio: "+day()+"/"+month()+"/"+year());
output.println();
output.println("Hora - Temperatura");
output.print(hour() + ":" + minute() + ":" + second() + " - ");
h_corrente = hour();
m_corrente = minute();
s_corrente = second();
d = day(); //armazena o dia atual, conforme informaes do computador hospedeiro.
}
//em draw ficam as linhas de cdigo que sero executadas continuamente, similar ao que
//ocorre em loop no cdigo inserido no microcontrolador.
void draw() {
while (myPort.available() > 0) { //se houver transmisso de dados
int val_serial = myPort.read(); //armazena na varivel val_serial.
String val_c = Integer.toString(val_serial);
if ((val_serial != 10) && (val_serial != 13)){ //diferente de nova linha e retorno de carrinho
switch (val_serial){ //descobrir qual o dgito que foi enviado pela porta serial
case 48:
//atravs de seu cdigo ASC.
temp_it = "0";
break;
case 49:
temp_it = "1";
break;
case 50:
temp_it = "2";
break;
case 51:
temp_it = "3";
break;
case 52:
temp_it = "4";
break;
case 53:
temp_it = "5";
break;

73
case 54:
temp_it = "6";
break;
case 55:
temp_it = "7";
break;
case 56:
temp_it = "8";
break;
case 57:
temp_it = "9";
break;
}
temp_c = (temp_c + temp_it); //descobrir a temperatura em String
}
if (val_serial == 13){ //se retorno de carrinho
temp_i = int(temp_c);
soma = soma + temp_i; //definindo soma total das temperaturas
i++;
if (temp_i > maior_temp){ //registrar maior temperatura e horrio em que ocorreu
maior_temp = temp_i;
h_maior = h_corrente;
m_maior = m_corrente;
s_maior = s_corrente;
}
temp_c = "";
temp_i = 0;
}
temp = char(val_serial);
print(temp);
if (val_serial == 10) { //se nova linha escrever a hora para a nova leitura de temperatura
output.print(hour() + ":" + minute() + ":" + second() + " - ");
h_corrente = hour();
m_corrente = minute();
s_corrente = second();
}
if ((val_serial != 13) && (val_serial != 10)){ //diferente de nova linha e retorno de carrinho
output.print(temp); //escreve valor no relatrio de log
}
if (val_serial == 13){ //se retorno de carrinho pular para prxima linha
output.println();
if (d != day()){ //se trocar para dia seguinte
media = soma / i; //tirar a mdia
output.println();
output.println("Temperatura mais alta: " + maior_temp); //temperatura mais alta
output.println("Hora: " + h_maior + ":" + m_maior +":" + s_maior); //hora

74
output.println();
output.println("Temperatura mdia: " + media); //temperatura mdia
output.flush();
output.close(); //finaliza relatrio
h_corrente = 0; //zera valores
m_corrente = 0;
s_corrente = 0;
maior_temp = 0;
soma = 0;
media = 0;
i = 0;
//cria novo relatrio de log para o dia seguinte
output = createWriter("log_temperatura_"+hour()+"_"+minute()+".txt");
output.println(Unipampa Reitoria);
output.println(Datacenter 01 - Medio de temperatura);
output.println();
output.println("Relatrio: "+day()+"/"+month()+"/"+year());
output.println();
d = day();
}
}
}
}
void keyPressed() { //encerra execuo do programa se alguma tecla for pressionada.
output.close();
exit();
}

75
ANEXO B CIRCUITO ELETRNICO

76

ANEXO C TABELA DE CUSTOS


Materiais utilizados no desenvolvimento do Gerenciador de Temperatura Digital:
Produto

Quant. Valor

Valor

Unit. (R$)

total (R$)

Freeduino BR

75,00

75,00

Resistor 100k

0,50

0,50

Led vermelho

0,75

0,75

Visor LCD
16x2

15,00

15,00

Sensor LM35

4,50

4,50

Protoshield

10,00

10,00

Speaker

Trimpot 10k

2,50

2,50

Cabos

5,00

Custo do produto por unidade: R$ 113,25

Obs.

Retirado de um
computador que
j estava em
desuso.

77
Custo individual das solues citadas nesta obra:
Produto

Valor

Obs.

Mdulo NetBotz 200

$ 644,69

O valor no inclui

com Sensor AP9335T

custo de frete e

e Luz de alarme

importao.

AP9324
DataLogger

R$ 273,60

Termmetro IP

R$ 880,00

Gerenciador de

R$ 113,25

Temperatura Digital

Ferramentas compradas para serem utilizadas durante as fases de projeto e


desenvolvimento do Gerenciador de Temperatura Digital:
Ferramenta

Valor Unit. (R$)

Soldador

20,00

Multmetro

15,00

Protoboard

22,00

Custo investimento em ferramentas para desenvolvimento: R$ 57,00


Custo total do projeto: R$ 170,25

Potrebbero piacerti anche