View
215
Download
0
Category
Preview:
Citation preview
Guilherme Rocha da Costa
Monitoramento de variáveis ambientais para
um data center
Sorocaba
2018
UNIVERSIDADE ESTADUAL PAULISTA
“JÚLIO DE MESQUITA FILHO”
Campus Experimental de Sorocaba
Guilherme Rocha da Costa
MONITORAMENTO DE VARIÁVEIS AMBIENTAIS
PARA UM DATA CENTER
Trabalho de Conclusão de Curso apresentado ao
Instituto de Ciência e Tecnologia de Sorocaba,
Universidade Estadual Paulista (UNESP), como
parte dos requisitos para a obtenção do grau de
Bacharel em Engenharia de Controle e
Automação.
Orientador: Prof. Dr. Galdenoro Botura Junior
Sorocaba
2018
1
Costa, G. R. Monitoramento de variáveis ambientais para um data center, Trabalho de
Conclusão do Curso de Engenharia de Controle e Automação – Universidade Estadual Paulista,
Sorocaba – SP, 2018.
RESUMO
Para que as indústrias atendam eficazmente as exigências crescentes do
mercado, é de extrema importância que elas consigam garantir um tempo de atividade alto, um
alto grau de confiabilidade nos seus sistemas e também o desempenho de sistemas produtivos.
Desta forma, medir e acompanhar as variáveis de sistemas de data centers tornou-se
indispensável e imprescindível na execução de atividades de toda indústria, comércio e
empresa, uma vez que todos estes setores têm sistemas críticos presos a servidores
computacionais. A distribuição, monitoramento e controle dessas informações pode ser
implementada através de sistemas de monitoria. Tais sistemas permitem a integração de
inúmeros dispositivos controlados em uma única central de controle, proporcionando a
visualização e tomada de ação com base nas informações contidas nele. A implementação
desses sistemas é feita através de sensores, microcontroladores e interfaces capazes de se
comunicar via web a fim de monitorar e permitir o controle de variáveis importantes para a
performance e vida útil de hardwares de informática. As etapas desse projeto consistem no
desenvolvimento de um programa para rodar em um microcontrolador integrado com sensores
e placas comunicadoras e enviar estes dados a um servidor web que os tratará e os
disponibilizará para monitoria. Os conhecimentos adquiridos nesse trabalho podem ser
expandidos e generalizados para a implementação de outros sistemas baseados em tecnologias
como IoT, Web server e tratamento de dados digitais.
Palavras-chave: variáveis de ambiente; Data Center; Microcontrolador; Arduino;
monitoria.
2
ABSTRACT
In order to effectively meet the growing requirements of the market it is extremely
important that companies must able to guarantee uptime, system reliability and also
performance in their productive environments. Thus, to measure and track environmental
variables for data centers has become indispensable and essential for the activities of
industries, companies and stores as these segments of the economy are dependent on
computational servers for their critical systems. The distribution, monitoring and control of this
information can be enforced through tracking systems. Such systems allow the integration of
many devices in a single process center, providing the viewing and decision-making capabilities
from the information contained therein. The implementation of these systems is done using
sensors, microcontrollers and interfaces capable of communication through web protocols to
track and keep important variables to guarantee the performance and lifespan of hardware.
This project aims to develop a code to run in a microcontroller that is integrated with sensors
and communication boards to send the sensor data to a web server that will process it and make
it available for monitoring. The knowledge acquired in this work can be expanded and
extrapolated to the implementation of any other system based in IoT technologies and digital
data treatment.
Keywords: Environmental variables; Data Center; Microcontroller; Arduino;
monitoring.
3
LISTA DE FIGURAS
Figura 1 – Fumaça após incêndio em um datacenter na região sul do Brasil ......................... 9
Figura 2 – PUE para todos os datacenters de larga escala do google. ................................ 10
Figura 3 – Estrutura de rede do Data Center da IBM ........................................................... 13
Figura 4 – Medição de tensão entregue aos sensores por dia ............................................ 14
Figura 5 – Detecção de pontos de aquecimento .................................................................. 15
Figura 6 – Pontos de aquecimentos após as correções no sistema de resfriamento ........... 15
Figura 7 – Variação da temperatura em um servidor em relação ao quarto todo ................. 16
Figura 8 – Arquitetura do Data Center Genome ................................................................... 17
Figura 9 – Genomote master e escravo, comparados com uma moeda de 25 centavos
americanos. ......................................................................................................................... 19
Figura 10 – Concentração de ar gelado no meio dos racks. ................................................ 20
Figura 11 – Arduino Uno ...................................................................................................... 23
Figura 12 – Interface IDE Arduino ........................................................................................ 24
Figura 13 – ESP8266 - 01 ................................................................................................... 25
Figura 14 – Pinagem do ESP8266 ....................................................................................... 25
Figura 15 – DHT 22 ............................................................................................................. 26
Figura 16 – Circuito montado ............................................................................................... 29
Figura 17 – Configuração de um Device e seu Token.......................................................... 31
Figura 18 – Diagrama de funcionamento da carga no Thingsboard ..................................... 31
Figura 19 – Configuração de um gráfico .............................................................................. 32
Figura 20 – Dashboard de demonstração dos dados coletados. .......................................... 32
Figura 21 – Diagrama de processor do código..................................................................... 36
Figura 22 – Valores medidos sem uso de fontes de calor externas ..................................... 37
Figura 23 – Aumento da humidade relativa do ar. ................................................................ 38
4
LISTA DE TABELAS
Tabela 1 – Requisitos mínimos para um datacenter ............................................................ 21
Tabela 2 – Diferenças entre os principais Arduinos do mercado .......................................... 22
Tabela 3 – Pinagem ESP8266 ............................................................................................. 25
Tabela 4 – Detalhamento operacional DHT 22 .................................................................... 26
Tabela 5 – Pinagem DHT22................................................................................................. 26
Tabela 6 – Valor médio dos componentes utilizados ........................................................... 28
Tabela 7 – Tabela de Conexões ESP8266 .......................................................................... 29
Tabela 8 – Tabela de conexões do DHT22 .......................................................................... 30
5
LISTA DE ABREVIATURAS E SIGLAS
IBM International Business Machines
MQTT Message Queuing Telemetry Transport
rDCP Reliable Data Collection Protocol
IoT Internet of Things
CoAP Constrained Application Protocol
HTTP Hypertext Transfer Protocol
DC Datacenter
TI Tecnologia da Informação
API Application Programming Interface
6
SUMÁRIO
RESUMO........................................................................................................................................1
ABSTRACT....................................................................................................................................2
1. INTRODUÇÃO......................................................................................................................7
1.1 Justificativa ........................................................................................................................................ 7
1.1.1 Demanda Corporativa ........................................................................................................................ 7
1.1.2 Demanda Energética .......................................................................................................................... 9
1.2 Objetivos ........................................................................................................................................... 11
2. LEVANTAMENTO BIBLIOGRÁFICO........................................................................12
2.1 IBM Datacenter em Genova ............................................................................................................. 12
2.1.1 Rede Wireless ................................................................................................................................... 12
2.1.2 Resultados ......................................................................................................................................... 13
2.1.2.1 Avaliação da rede ......................................................................................................................... 13
2.1.2.2 Avaliação da temperatura ............................................................................................................ 14
2.2 Projeto Genome ................................................................................................................................ 16
2.2.1 Arquitetura de Medição ................................................................................................................... 17
2.2.2 Rede sem fio ...................................................................................................................................... 18
2.2.3 Genomotes ........................................................................................................................................ 18
2.2.4 Resultados ......................................................................................................................................... 19
3. MATERIAL E MÉTODO.................................................................................................21
3.2 MATERIAIS....................................................................................................................22
3.2.1 ARDUINO UNO..........................................................................................................22
3.2.2 ESP8266........................................................................................................................24
3.2.3 DHT22...........................................................................................................................26
3.2.4 THINGSBOARD.........................................................................................................27
3.2.5 CUSTO..........................................................................................................................27
3.3 DESENVOLVIMENTO................................................................................................28
3.3.1 MONTAGEM DO CIRCUITO................................................................................28
3.3.2 Configuração do Thingsboard ......................................................................................................... 30
3.3.3 Código ............................................................................................................................................... 33
4. RESULTADOS...................................................................................................................37
5. CONCLUSÃO.....................................................................................................................40
6. TRABALHOS FUTUROS................................................................................................41
7. REFERÊNCIAS BIBLIOGRÁFICAS............................................................................42
7
1. INTRODUÇÃO
1.1 Justificativa
1.1.1 Demanda Corporativa
Ao olhar para uma empresa de grande ou médio porte e mais atentamente a evolução
que estas passaram nos últimos anos fica claro o impacto que a transformação digital teve.
Pequenos softwares, planilhas, papéis e processos manuais, dentre outros, foram todos dando
espaço para softwares empresariais de grande porte. Hoje dificilmente vemos uma empresa que
não possui um ERP (Enterprise Resource Planning, Planejamento de recursos empresariais, em
tradução livre) como o software principal para gestão de gastos, recursos e planejamento
financeiro. Atrelados ao ERP vemos sistemas de HCM (Human Capital Management, Gestão
de Capital Humano) para o setor de recursos humanos de uma empresa e CX (Customer
Experience, Experiência do consumidor) para a área de vendas. Conforme uma empresa cresce
ela começa a ficar tão dependente de sistemas como este que poucas horas com um sistema fora
do ar significa que os funcionários não têm trabalho, significa que os fornecedores podem deixar
de receber, os credores de pagar e o negócio de crescer, isso se traduz em um prejuízo enorme
para a empresa. Um exemplo claro do dia-a-dia é imaginarmos se o servidor de e-mail de uma
empresa parasse, o quanto ela não deixaria de operar até que se voltasse a normalidade? Em
2013 o site da Amazon, maior site de vendas dos Estados Unidos ficou fora do ar por cerca de
30 minutos, de acordo com a Forbes a estimativa é que o prejuízo tenha sido na casa de 2
milhões de dólares (FORBES, 2013)
Uma companhia opera de forma previsível, os gastos já estão todos previstos, a
rentabilidade é pré calculada baseada em diversos indicadores econômicos e o lucro está todo
baseado no pipeline e forecast da área de vendas. Para a área de tecnologia da informação não
é diferente e para atender as áreas de negócio com previsibilidade são instituídos SLAs (Service
Level Agreement) que é um compromisso assumido por um prestador de serviços de TI perante
um cliente. Este compromisso descreve o serviço de TI, os níveis de qualidade que devem ser
garantidos, as responsabilidades das partes e eventuais compensações quando os níveis de
qualidade não forem atingidos (ANS, 2018). Para atender esses níveis de serviço a arquitetura
de um software é toda planejada de forma que este seja altamente disponível, evitando pontos
8
únicos de falha e muitas vezes eles são replicados, uma ou até duas vezes, em locais geográficos
diferentes de forma a evitar que o software fique fora do ar.
Um dos principais pontos de uma arquitetura redundante é o custo. A replicação total
dos sistemas em uma outra região dobra o valor de implementação o que pode barrar o projeto
ou o ambiente redundante. Muitas empresas, dependendo de seu tamanho e dos sistemas que
rodam, acabam por possuir somente um ambiente de desastre sendo esse menor do que o
ambiente produtivo, visto que esse só ficará ativo enquanto o ambiente de produção retorna ao
ar. Assim o ambiente produtivo deve ser extremamente monitorado e controlado para que sua
interrupção seja a menor possível e para isso um dos pontos de maior importância que deve ser
monitorado é o hardware.
O hardware é o servidor físico que hospeda as aplicações de uma empresa e é um dos
componentes mais caros quando falamos em computação. Para o hardware não existe um
ambiente de desastre, ele é o próprio hospedeiro do ambiente de desastre, e assim garantir a
perfeita operação e tempo de atividade de um é de extrema importância
Um exemplo da importância de monitoria e controle de um datacenter ocorreu em março
deste ano. O datacenter da BRDigital, um dos maiores fornecedores de collocation e hosting do
sul do país, pegou fogo no fim de semana do dia 6 de março e pelo menos 50% de todos os
racks foram afetados de alguma maneira pelas chamas que se iniciaram em apenas 2 dos 50
racks do andar (BAGUETE, 2018). Algumas empresas tiveram seus serviços offline por conta
do incidente, como foi o caso da Unimed de Porto Alegre que ficou horas sem seus sistemas
relativos a consultas e exames fora do ar e o Esporte Clube Internacional que ficou um dia fora
do ar, antes de uma partida contra o Grêmio, equipe rival, por 24 horas, complicando a venda
para mais de 75 mil torcedores que estavam tentando fazer o check-in para a partida. A figura
1 mostra uma foto do prédio onde fica localizado o datacenter, na figura pode-se ver a fumaça
que está sendo expelida pelo sistema de contra incêndio do datacenter.
9
Figura 1 – Fumaça após incêndio em um datacenter na região sul do Brasil
Fonte: (BAGUETE, 2018)
1.1.2 Demanda Energética
Cerca de 7% de toda a energia consumida atualmente é gasta pela área de Tecnologia
da Informação e é esperado que esse número cresça para 13% até 2030 (SADLER, 2017). Desse
total cerca de 40% é utilizado somente para os sistemas de refrigeração (KHAJAJ, 2016).
Levando em conta que toda essa geração energética é responsável por 2% de todas as emissões
globais de CO2 fica clara uma preocupação também ambiental com relação ao consumo
energético e geração de gases nocivos ao efeito estufa.
Para se medir a eficiência energética em um datacenter é medido o seu PUE (Power
Usage Efffectiveness), que foi definido como o padrão global para medição da eficiência de um
data center (ISSO, 2016) e é a energia total entregue ao DC pela energia consumida pelos
equipamentos de TI, como mostra a equação 1.
10
𝑃𝑈𝐸 = %&'()*+-./+0&.12%&'()*+/./+03.4'56*7+8'&/.3'-9
(1)
Então, valores mais baixos de PUE são ideais para um DC com alta eficiência energética.
O valor ideal e mínimo é 1, sem considerar reutilização de calor gerado para alimentação
energética. Com a crescente preocupação ambiental dos últimos anos, empresas de tecnologia
de ponta, como Google e Facebook investiram em tecnologias disruptivas e técnicas de
instalação novas para poder diminuir o valor de PUE de seus datacenters e em 2015 e 2016,
respectivamente, apresentaram datacenters com PUE de aproximadamente 1,10, como pode ser
visto na figura 2, o PUE médio dos datacenters do Google ao longo dos últimos 10 anos
(GOOGLE, 2018) (FACEBOOK, 2018).
Figura 2 – PUE para todos os datacenters de larga escala do google.
Fonte: (GOOGLE, 2018)
Porém nem as empresas apresentam essa mesma preocupação que as gigantes da internet
e a média reportada para a indústria de tecnologia é um PUE de em média 2,9, sendo que menos
de 20% dos datacenters pesquisados possuíam um PUE menor do que 2.
Assim, fica claro que empresas mais novas e com os meios para tal estão buscando novas
formas de ter uma performance energética melhor, mas que essa não é a realidade da indústria.
Para tal o primeiro ponto para se buscar uma melhor eficiência energética é o monitoramento
11
das variáveis ambientais afim de se evitar o resfriamento demasiado, que contribui para um
maior PUE, maior gasto energético (BELL, 2009) e até mesmo aumento na taxa de falha de
unidades de disco (PINHEIRO, 2007)
1.2 Objetivos
Este trabalho objetiva desenvolver um sistema de monitoria de temperatura e humidade
com funcionamento remoto e de baixo custo. Desta maneira iremos avaliar se uma das partes
mais críticas na implementação de um data center, sua monitoria, impõe uma dificuldade
financeira ou técnica para ser implementada dentro das melhores práticas do mercado.
12
2. Levantamento Bibliográfico
2.1 IBM Datacenter em Genova
A fim te atender as necessidades de resfriamento, redução de custo e aprimoramento de
seus serviços a IBM montou seu próprio sistema de monitoria para seu Data Center em Genova,
na Suíça. Com foco em otimização de recursos de resfriamento a IBM montou uma rede se
sensores com o objetivo de reduzir a utilização excessiva de resfriamento.
2.1.1 Rede Wireless
A figura 3 apresenta a arquitetura da Rede wireless do datacenter. Esta é composta por
diversos sensores a bateria localizados em regiões estratégicas dos servidores. Cada um desses
sensores envia suas medidas periodicamente para o broker MQTT-S que se comporta como
gateway que encaminha as mensagens para as aplicações.
O gerenciamento da rede funciona de duas maneiras: Um modo de gerenciamento e um
modo de sincronismo. No modo de gerenciamento o gateway monitora a rede em relação a
qualidade do link e assim pode calcular as melhores rotas e cronograma para os sensores
enviarem os dados. Configurado a parte de gerenciamento o gateway estabelece o modo de
sincronismo em que os sensores só operam ou em modo de envio ou recebimento, dependendo
de seu cronograma, assim toda a rede consegue operar em modo de baixo consumo energético.
A opção pelo MQTT-S se deu por ser um protocolo de mensageria desenhado para redes
de baixo consumo e também por sua performance em diferentes tipos de rede, como redes locais
e de celular. (WEISS, 2011)
13
Figura 3 – Estrutura de rede do Data Center da IBM
Fonte: (WEISS,2011)
2.1.2 Resultados
2.1.2.1 Avaliação da rede
Com os sensores implementados em uma topologia estrela em relação ao seu gateway
foram avaliadas as variáveis de rede onde a força e qualidade do sinal sem fio foram medidos
para ver a viabilidade do datacenter para suportar tal topologia. Após os sucessos dos testes
foram iniciados os testes e durante 35 dias 29 milhões de resultados de temperaturas foram
coletados. Uma das principais medidas feitas foi a taxa de entrega de pacotes, uma relação entre
a quantidade de pacotes que o gateway recebeu em relação a taxa de pacotes que o gateway
enviou. Na média a taxa ficou em 97,63%, um excelente valor. Sensores que apresentaram uma
taxa pior tiveram seus pacotes roteados por outros com melhores taxas de entrega.
Por fim a rede foi avaliada em relação ao seu consumo energético. Como os sensores
funcionam a bateria a entrega da tensão por estas foi medida diariamente e está representada
14
pela figura 4. Percebe-se o comportamento natural de baterias alcalinas na queda tensão
entregue ao longo do tempo. O período sem medição foi reflexo de um problema na rede que
impediu a comunicação e medição por 3 dias.
Figura 4 – Medição de tensão entregue aos sensores por dia
Fonte: (WEISS,2011)
Como durante os testes as baterias não chegaram a ser descarregadas não foi possível
precisar o tempo de duração das mesmas, mas testes em laboratórios, feitos pela própria IBM
estimam em 8 meses de duração.
2.1.2.2 Avaliação da temperatura
Durante os testes foram observados 3 pontos principais onde as correntes de ar gelado
não estavam sendo suficientes para atender a temperatura desejada (abaixo dos 25ºC), como
apresentado na figura 5.
15
Figura 5 – Detecção de pontos de aquecimento
Fonte: (WEISS,2011)
Com base nos dados gerados por esta monitoria foram feitas as alterações necessárias,
neste caso a substituição da grade perfurada que compunha o chão por uma grade também
perfurada, porém com furos maiores, que permitiu o melhor fluxo do ar gelado. Com isso a
redução da temperatura ficou evidente nos softwares de monitoria, como apresentado na figura
6.
Figura 6 – Pontos de aquecimentos após as correções no sistema de resfriamento
Fonte: (WEISS,2011)
16
Apesar das mudanças físicas na base do datacenter a temperatura geral do mesmo do
mesmo não se alterou, porém, os valores obtidos nos locais de atenção foram corrigidos, como
pode ser observado na figura 7.
Figura 7 – Variação da temperatura em um servidor em relação ao quarto todo
Fonte: (WEISS,2011)
2.2 Projeto Genome
A fim de entender como a energia é consumida em relação ao design do datacenter, sua
capacidade de resfriamento, seu tipo de hardware e a distribuição da carga de trabalho em
relação a estes hardwares o centro de pesquisa da Microsoft implementou, em seus data centers
um projeto de milhares sensores e uma rede de sensores proprietária, RACNet, para capturar,
medir e analisar os dados de temperatura do datacenter. (LIU, 2011)
17
2.2.1 Arquitetura de Medição
O sistema implementado para o projeto Genome não foi somente um sistema de
melhoria, mas sim de gerenciamento de datacenter, onde são medidos e controladas variáveis
físicas e digitais para que seja possível um controle mais granular e uma melhor otimização do
datacenter, como apresentado na figura 8. A arquitetura proposta tem por base a coleta de
informações do layout do datacenter para ser a base das informações coletadas, o sistema de
resfriamento que fornece informações da atuação dos ar-condicionado, sistemas de retirada de
humidade, resfriadores de água e outros para um controle de energia, os sistemas de alimentação
para se obter um detalhamento do consumo de energia, já os sistemas de performance dos
servidores e as variações de carga no mesmo para que seja possível relacionar as variáveis
ambientes como temperatura do ambiente com a temperatura do próprio hardware e pôr fim a
coleta de informações de variáveis ambientais.
Figura 8 – Arquitetura do Data Center Genome
Fonte: (LIU, 2014)
18
Os dados coletados então passam por uma área de manipulação de dados para
alimentarem sistemas de apresentação de dados, backup, e ferramentas analíticas para que sejam
gerados relatórios e melhorias ao datacenter.
2.2.2 Rede sem fio
Assim como o projeto do datacenter em Genova da IBM a Microsoft também utilizou
uma rede específica para sensores em seu projeto, a RACNet que teve por objetivo atender 3
pré-requisitos fundamentais para qualquer rede se sensores:
• Baixo custo de implementação: Permitindo que a tecnologia possa ser facilmente
adotada
• Alta confiabilidade dos dados: A rede deve gerar stream de dados constante para poder
alimentar os sistemas de modelagem e análise de dados para a tomada de decisões
• Integração transparente: A rede deve ser fácil de simples de ser integrada a diversos
sistemas de gerenciamento e entrega de dados para que sua adoção seja rápida e de baixo
custo ainda atendendo todas as necessidades técnicas do projeto.
Para então atender a necessidade de alta confiabilidade dos dados a RACNet utiliza um
protocolo próprio, rDCP, que por sua vez utiliza algumas tecnologias chave para sua
performance: Sua diversidade de canais permite que se conecte a diversos sensores mestre de
uma vez, sendo um sensor por canal, reduzindo a probabilidade de conflito de pacotes, sua
tecnologia de árvore de adaptação permite que sejam escolhidos os links mais performáticos
dentro da rede para garantir a qualidade da comunicação e por fim é o próprio gateway da rede
que faz a coleta dos dados, ao invés de os sensores enviarem, assim é mais uma garantia que
não existira perda de pacotes na rede.
2.2.3 Genomotes
Para a coleta de dados o instituto de pesquisa da Microsoft desenvolveu o que eles
chamaram de Genomotes, sensores que atendem a especificações básicas para o projeto: baixo
custo, fácil instalação e baixo consumo de energia. Eles são capazes de coletar informações
como temperatura e humidade e são divididos em escravos e mestres. Os mestres possuem
comunicação wireless através do padrão IEE 802.15.4, que especifica a camada física e efetua
o controle de acesso para rede sem fios e é a base para especificações como ZigBee (IEEE
19
802.15 document 15-13-0257-06-0000). Os Genomotes escravos apresentam portas serias para
comunicação com o mestre, que está instalado em cima dos servidores. Um exemplo de
Genomotes pode ser visto na figura 9.
Figura 9 – Genomote master e escravo, comparados com uma moeda de 25 centavos
americanos.
Fonte: (LIU, 2014)
2.2.4 Resultados
Após a implementação dos Genomotes em diversos datacenters foi possível entender
padrões de comportamento da refrigeração e temperatura nos racks com mais clareza.
A figura 10 mostra a diferença de temperatura entre diferentes alturas de um rack, ou
seja, com a capacidade de ventilar o are gelado a alturas maiores pode ser possível aumentar a
temperatura média entregue a sala sem danificar o equipamento. O efeito Venturi nos diz que
quanto maior a velocidade de um fluido menor é sua pressão, assim o ar gelado que se move
rapidamente perto do chão cria bolsões de baixa pressão que atraem o a quente, por isso a
concentração de ar gelado no meio dos racks (Venturi).
20
Figura 10 – Concentração de ar gelado no meio dos racks.
Fonte: (LIU, 2014)
A utilização da RACNet foi uma das primeiras tentativas de fornecer dados detalhados
sobre a operação dos datacenters. Sua capacidade de escalabilidade, confiabilidade e custo
atenderam as exigências mais complexas em termos de monitoria e se apresenta como uma
excelente opção na montagem de um sistema completo para controle de variáveis físicas e
digitais.
21
3. MATERIAL E MÉTODO
3.1 Especificações
Esta sessão irá tratar do desenvolvimento proposto para esse trabalho, assim como da
descrição dos materiais e metodologias aplicadas na construção de um sistema de
monitoramento.
Este projeto visa como objetivo final o desenvolvimento da programação e montagem
de um medidor de temperatura e humidade com apresentação dos dados em tempo real. A seguir
estão descritos os principais componentes que foram utilizados para a montagem do coletor de
variáveis ambientais bem como o processo de montagem do mesmo. O trabalho não abrange a
parte de criação de alarmes e regras de monitoria que ajudariam a complementar as capacidades
de análise e atuação das medições feita, uma vez que o sistema de realimentação para um
componente de refrigeração de ar depende que o componente permita essa realimentação, como
a ideia do projeto é um sistema de baixo custo supõem-se que estes refrigeradores precisem de
intervenção manual
A TIA (Telecommunications Industry Association) é credenciada a ANSI para
desenvolver padrões e consensus para a indústria de Tecnologia e comunicação. Em 2005 a TIA
publicou sua primeira versão do ANSI/TIA-942, com normas e padrões a serem seguidos na
implantação de datacenters e centros de operações. Após diversas reestudos e alterações a TIA
lançou, em julho de 2017 o ANSI/TIA-942-B com informações mais detalhadas sobre a normas
para construção de um datacenter. Em seu conjunto de normas a TIA também informa os
melhores valores para a operação do DC, em termos de temperatura e humidade para a operação
do datacenter, estes estão apresentados na tabela 1.
Tabela 1 – Requisitos mínimos para um datacenter
Requisitos Valores Mínimos Máximos
Temperatura 20ºC 25ºC Humidade Relativa 40% 55% Taxa máxima de mudança - 5ºC/Hora Ponto de Orvalho - 21ºC
Baseando-se nas informações da Tabela 1 o sistema a ser montado tem que ser capaz de
coletar informações de temperatura entre 20 e 25ºC, 40 e 50% de humidade e capaz de registrar
mudanças de até 5ºC dentro de 1 hora.
22
3.2 Materiais
3.2.1 Arduino UNO
O Arduino é uma plataforma de hardware código livre, de fácil utilização, ideal para a
criação de dispositivos que permitam interação com o ambiente, dispositivos estes que utilizem
como entrada sensores de temperatura, luz, som etc., e como saída leds, motores, displays,
autofalantes etc., criando desta forma possibilidades ilimitadas para projetos profissionais e
caseiros (SOUZA, 2011).
A maior parte das placas Arduino consiste em estruturas com microcontroladores de 8-
bit AVR da Atmel e possuem uma vasta quantidade de memória flash, entradas e saídas e outras
características disponíveis (ARDUINO).
Existem inúmeros modelos de Arduino, desde Arduinos para controle de videogames
até Arduino para vestimentas. Para determinar qual seria o modelo ideal para este trabalho
foram levantados os principais e mais comuns modelos do mercado, Arduino Uno, Mega,
ethernet e Due. A diferença física entre estes Arduinos pode ser vista na Tabela 2.
Tabela 2 – Diferenças entre os principais Arduinos do mercado
Uno Mega Ethernet Due Alimentação 5v 5v 5V 5v Portas Digitais 14 54 14 54 Portas PWM 6 15 6 12 Portas Analógicas
6 16 6 12
Memória 32K 256K 32K 512K Conexão USB USB FTDI Micro USB
Ao analisas as placas pelas suas configurações físicas fica claro a diferença de propósito
que cada uma atende. Arduino uno, a mais básica possui menos interfaces I/O e menos memória
que as demais. As placas Mega e Due possuem muitas portas e bem mais memória,
recomendadas para projetos de grande escala com diversos Shields conectados. Por fim a placa
Ethernet possui uma facilidade pois já vem com uma interface para conexão com redes ethernet
o que permite a comunicação entre o Arduino e outros serviços em redes locais ou internet.
Por ser uma plataforma extremamente difundida no mercado, de baixo custo e fácil
manipulação foi optado pela utilização do Arduino uno para o projeto de monitoria de variáveis
ambientais. As placas Mega e Due possuem mais portas que não seriam usadas e sua memória
23
não é necessária para o código desenvolvido, já a placa Ethernet não se faz necessária pois o
propósito do trabalho é desenvolver um medidor capaz de enviar dados através de redes sem
fio. Então o Arduino uno, figura 11, irá fazer as vezes de controlador do sistema, seu
processador será responsável pela execução do código construído quer captura as informações
digitais dos sensores via porta serial, faz o tratamento das informações e o envia para o esp8266.
Figura 11 – Arduino Uno
Fonte: (ARDUINO)
O Arduino é alimentado via USB com 5v e possui saídas de 3V e 5V, porém estas não
foram utilizadas, uma vez que elas não conseguem suprir corrente suficiente para alimentar o
esp8266 e os sensores adjacentes. Para isso foi utilizada uma fonte externa de 5V.
As placas já possuem programação de bootloader de fábrica, uma rotina de inicialização
que facilita o envio de programas para a memória interna do chip do microcontrolador. Tal
envio é feito, nas placas atuais, através de conexão no computador via porta USB (Arduino,
2018). Já no que diz respeito ao Software, os programas para Arduino podem ser escritos em
qualquer linguagem que possua compiladores que convertam o código em linguagem de
máquina para o processador da placa em uso. A Arduino oferece uma interface de
desenvolvimento integrada (do inglês, IDE – Integrated Development Environment),
multiplataforma, através da qual o usuário pode utilizar a linguagem Wiring similar à C/C++
24
para escrever seus programas. Tais códigos são salvos pela interface no computador utilizando
a extensão .ino e são chamadas de Sketch. Assim, um Sketch nada mais é do que um programa
para Arduino escrito na interface do próprio fabricante (Arduino, 2018).
A figura 12 apresenta o ambiente IDE com um código exemplo desenvolvido.
Figura 12 – Interface IDE Arduino
Fonte: Autoria Própria.
3.2.2 ESP8266
EPS8266 é o nome de um sistema embarcado projetado pela Espressiff Systems. O
ESP8266 se define como uma solução de redes Wi-fi autossuficiente se oferecendo como uma
ponte entre um micro controlador pré-existente e a rede com sinal Wi-fi, e que também é capaz
de executar aplicações de maneira independente. (KOLBAN, 2015).
Existem diversos modelos de placas com variações de operações e funcionalidades, para
esse projeto utilizamos o modelo 01, figura 13, que além de possuir um custo baixíssimo é um
dos mais utilizados no mercado. Também foi o shield mais fácil de encontrar à venda.
25
Figura 13 – ESP8266 - 01
Fonte: (KOLBAN,2015)
Um ponto de atenção em relação ao trabalho com o ESP8266 é sua pinagem, conforme
figura 14. A listagem de seus pinos aparece na tabela 3.
Tabela 3 – Pinagem ESP8266
Pino Função RX Recebimento de dados TX Transmissão de dados
GND Terra Vcc Alimentação 3,3V
Reset Ativo quando em alto GPIO0 Uso geral, entrada e saída GPIO2 Uso geral CH_PD Habilitação do chip para funcionamento
Figura 14 – Pinagem do ESP8266
Fonte: (ESP8266)
26
3.2.3 DHT22
O DHT 22 é um sensor digital que permite a captura de valores de temperatura e
humidade do ar. Sua escolhe se deu pela facilidade de ser encontrado no mercado, pela
simplicidade de uso e comunicação com o Arduino, através de sua interface digital. A Tabela 4
também mostra sua capacidade de medida de valores extremos, referência técnica e acuracidade
na coleta de dados, já a tabela 5 nos mostra sua pinagem.
Tabela 4 – Detalhamento operacional DHT 22
DHT 22 Valores Alimentação 3,3V – 5,5V Valores de operação: Humidade 0-100%RH Valores de Operação: Temperatura -40~80 °C Acuracidade +-2%RH, +-0,5 °C
Tabela 5 – Pinagem DHT22
DHT 22 Terminal 1 Alimentação Terminal 2 Pino de dados Terminal 3 Sem função Terminal 4 Terra
Figura 15 – DHT 22
Fonte: (DHT22)
27
3.2.4 ThingsBoard
Para a apresentação dos dados foi utilizada o ThingsBoard, uma plataforma de código
livre que permite um rápido desenvolvimento, gerenciamento e escalonamento de projetos de
IoT (THINGSBOARD).
A plataforma permite a ingestão de dados utilizando diversos protocolos de mensageria
e transferência via web, como por exemplo CoAP, HTTP e MQTT. Neste projeto foi utilizado
o protocolo MQTT uma vez que as bibliotecas do Arduino facilitam sua implementação.
Para garantir que o valor que está sendo transimitido pelo Arduino seja entendível pelo
Thingsboard, este possui uma API MQTT que diz quais são as formas possíveis em que a troca
de informação pode acontecer para que eles se entendem.
Segundo a documentação do Thingsboard (THINGSBOARD,b) a comunicação é feita
via JSON, um formato de arquivo para troca de dados, onde as informações passadas podem
ser ou booleanas, double, long ou string. O exemplo abaixo é um tipo de JSON que pode ser
enviado ao ThingsBoard:
"stringKey":"value1", "booleanKey":true, "doubleKey":42.0, "longKey":73
Para pode enviar o JSON primeiro é necessário dizer que tipo de cliente você é para a
API do Thingsboard e em seguida o que você deseja fazer. Estes tipos de clientes são,
PUBLISH, uma publicação, ou seja, um cliente para envio de informação e SUBSCRIBE, para
receber as informações. Para dizer o que você deseja fazer é necessário enviar a mensagem de
PUBLISH ou SUBSCRIBE para um determinado tópico, por exemplo para enviar os valores
de temperatura e humidade para o Thingsboard você deve enviar sua mensagem para o tópico
v1/devices/me/telemetry, da mesma forma, se você quiser coletar informações do Thingsboard
você precisa enviar uma mensagem SUBSCRIBE para o mesmo tópico.
3.2.5 Custo
A fim de analisar a viabilidade do projeto estão listados os principais custos para a
construção do protótipo na tabela 6. Estes valores podem variar muito, principalmente em
28
relação a localização (frete), loja e quantidade comprada, assim servem apenas para base da
análise
Tabela 6 – Valor médio dos componentes utilizados
Componente Preço Esp8266 22,90 Arduino uno 36,90 DHT22 29,90 Fonte 8,90 Protoboard 11,90 Total 110,50
3.3 Desenvolvimento
3.3.1 Montagem do circuito
O primeiro passo da montagem foi o estudo individual de cada um dos componentes do
trabalho. Como cada um dos equipamentos operavam e qual a forma de comunicação e coleta
de dados deles.
Para o Arduino a própria interface IDE apresenta sketchbooks de exemplos e tutorias
para sua programação, bem como o envio e recebimento de comandos através da sua interface
serial, o que por sua vez se tornou essencial para fazer testes com o código em relação a captura
e envio das informações.
O esp8266 se apresentou como o mais difícil de configurar sua porta serial para
comunicação teve de ser alterada para permitir a comunicação correta através do Arduino e de
sua interface serial monitor (terminal 2 e 3). No período de testes também ficou claro que o
Arduino não conseguia entregar corrente suficiente para o ESP8266 e por isso foi necessária
uma fonte externa de 3,3v para alimentá-lo com uma corrente superior a 500mA
O DHT22 só possui um terminal para envio de dados de forma digital assim sua
configuração foi mais simples.
Depois dos estudos e testes necessários foi iniciada a montagem do circuito. O ESP8266
foi montado conforme a tabela 7. Tanto seu pino alimentação quando CH_PD foram conectados
diretamente na alimentação de 3.3V isso pois o pino CH_PD necessita de um sinal alto para
habilitar seu funcionamento. Apesar de não ter sido necessário no cenário deste projeto
29
recomenda-se a utilização de um resistor de pull-up para manter o nível lógico do pino CH_PD
em alto sem danificar o componente. As saídas seriais do ESP8266 não foram ligadas as saídas
TX e RX do próprio Arduino para que fosse possível utilizar a interface serial monitor do
Arduino IDE para monitorar a comunicação entre os componentes, sendo assim foram
conectadas nos terminais 2 e 3 das saídas digitais e foi utilizada a biblioteca SoftwareSerial.h
do Arduino para simular a conexão serial e o recebimento e envio de informações. A figura 16
mostra o esquema de conexões do sistema pronto.
Figura 16 – Circuito montado
Fonte: Autoria Própria.
Nota-se que a terminal data do DHT22 está conectada por um resistor pull-up de 10k
para certificar que se tenha um sinal logico positivo e garantir o funcionamento do DHT22. Tabela 7 – Tabela de Conexões ESP8266
Esp8266 Componente VCC Fonte 3,3V
CH_PD Fonte 3,3V GND Negativo da fonte RX Arduino 2 TX Arduino3
30
Tabela 8 – Tabela de conexões do DHT22
DHT22 Componente VCC Fonte 3,3V Data Resistor entre 4,7kΩ e 10kΩ NC -
GND Negativo da fonte
3.3.2 Configuração do Thingsboard
A configuração do Thingsboard foi feita no próprio ambiente de demo que é
disponibilizado no site da aplicação. É possível também instalar e configurar um servidor
thingsboard em uma máquina virtual para rodar em um computador local, porém essa
configuração adiciona dificuldades técnicas e de segurança uma vez que será necessária uma
máquina com capacidade para rodar uma máquina virtual, configurações de rede para expor as
portas http na máquina virtual para o computador host, do computador host para o modem ou
appliance de rede que por sua vez irá expor uma porta aberta da sua rede local na internet.
Utilizando o ambiente demo da própria Thingsboard ele já vem configurado e preparado para
uso, além de não ser necessária a preocupação com a parte de segurança do sistema.
O ponto principal de comunicação do Thingsboard com o esp8266 é a configuração de
um “device”, figura 17, que fará as vezes de um gateway dentro do servidor para coletar a
informação e alimentar os componentes (gráficos) do painel de apresentação. Este gateway fica
escutando a porta configurada no servidor, para este projeto, utilizando o ambiente demo da
Thingsboard, a porta 1883, quando uma tentativa de conexão é gerada ele confere se o Token
que está sendo passado é o mesmo que está registrado nele mesmo, em caso positivo ele permite
a conexão e captura os dados. O valor deste token é fornecido pelo “device” e configurado no
código do Arduino.
O diagrama da figura 18 apresenta um diagrama que simplifica o funcionamento da
comunicação entre o código, o esp8266 e o “Device” do servidor na internet.
31
Figura 17 – Configuração de um Device e seu Token
Fonte: Autoria Própria.
Figura 18 – Diagrama de funcionamento da carga no Thingsboard
Fonte: Autoria Própria.
Encapsulamento
• O protocolo MQTT encapsula o payload com as informações coletadas
Conexão• Inicia a conexão, passando host, porta e Token ID
Desencapsulamento
• O Device desencapsula as informações e alimenta os componentes definidos
32
Configurado o device é a vez de montar o dashboard. Utilizando os widgets prontos da
própria plataforma configuramos, vide figura 19, a coleta de informações a partir do device e
por fim são inseridos os gráficos no próprio dashboard.
Figura 19 – Configuração de um gráfico
Fonte: Autoria Própria.
Com os gráficos prontos foi montado um dashboard, como apresentado na figura 20.
Figura 20 – Dashboard de demonstração dos dados coletados.
Fonte: Autoria Própria.
33
3.3.3 Código
Com toda a montagem concluída foi escrito o código apresentado no anexo I, comentado
e identado, e carregado para o Arduino através do Arduino IDE. Para fins de teste e correção
de problemas foi mantido no código toda a parte de teste de conexão e envio das cargas para o
Thingsboard para acompanhamento através da interface serial.
No primeiro momento, como pode ser visto no código abaixo, são carregadas as
bibliotecas. Também são declaradas as informações de conexão para a rede Wi-Fi do local, o
token do device Thingsboard, as portas seriais utilizadas e as configurações para a comunicação
com o servidor web.
A Bibliotecas utilizadas e suas funções são:
• DHT.h: A biblioteca DHT é utilizada para os sensores DHT11 e DHT22, por isso na
declaração das variáveis da função dht, o pino do Arduino utilizado, 4, e o tipo DHT22
são passados. A biblioteca também permite a inicialização do DHT e a coleta de suas
variáveis através de funções prontas.
• WiFiEsp.h, WiFiEspClient.h: A bibliotecas para permitir o Arduino a se transformar em
um client para a conexão com o thingsboard.
• PubSubClient.h: é a biblioteca que permiteo encapsulamento MQTT e faz a
comunicação UDP com o servidor thingsboard.
• SoftwareSerial.h: Permite que os pinos digitais sejam utilizados para comunicação
serial.
• ESP8266.h: Permite a comunicação do Arduino com o ESP8266
#include "DHT.h" #include <WiFiEspClient.h> #include <WiFiEsp.h> #include <PubSubClient.h> #include "SoftwareSerial.h" #include "ESP8266.h" #define WIFI_AP "Nome_da_sua_rede" #define WIFI_PASSWORD "Senha da sua rede Wifi" #define TOKEN "Token_do_devide_thingsboard" #define DHTPIN 4 #define DHTTYPE DHT22 char thingsboardServer[] = "demo.thingsboard.io"; WiFiEspClient espClient; DHT dht(DHTPIN, DHTTYPE);
34
PubSubClient client(espClient); SoftwareSerial soft(2, 3); ESP8266 wifi(soft); int status = WL_IDLE_STATUS; unsigned long lastSend; void setup() Serial.begin(9600); dht.begin(); InitWiFi(); client.setServer( thingsboardServer, 1883 ); lastSend = 0;
Então são inicializadas as conexões com a rede Wi-Fi, como não estão sendo utilizadas
as portas seriais a interface serial monitor apresenta as em mensagens os prints a seguir, que
servem como ferramenta de logs.
void loop() status = WiFi.status(); if ( status != WL_CONNECTED) while ( status != WL_CONNECTED) Serial.print("Tentando conectar a rede Wifi: "); Serial.println(WIFI_AP); status = WiFi.begin(WIFI_AP, WIFI_PASSWORD); delay(500); Serial.println("Conectado"); if ( !client.connected() ) reconnect();
Com o Wi-Fi conectado a leitura do DHT22 é feita a cada 2 segundos. Seu valor é
impresso na tela e armazenado em variáveis que serão utilizadas na formação da carga que será
enviada. Com o valor de temperatura e humidade armazenados é então montado um JSON como
o exemplo a seguir:
"temperature":x", "humidity":xx
Seguindo os próprios requisitos da documentação da Thingsboard
(THINGSBOARD,b). O JSON é então enviado como uma string como uma mensage
35
PUBLISH para o tópico "v1/devices/me/telemetry" do device dentro do servidor e a conexão é
mantida enquanto o wi-fi estiver ativa.
if ( millis() - lastSend > 1000 ) getAndSendTemperatureAndHumidityData(); lastSend = millis(); client.loop(); void getAndSendTemperatureAndHumidityData() Serial.println("Coletando dados:"); float h = dht.readHumidity(); float t = dht.readTemperature(); String temperature = String(t); String humidity = String(h); Serial.print( "Enviando dados : [" ); Serial.print( Temperatura ); Serial.print( "," ); Serial.print( Humidade ); Serial.print( "] -> " ); String payload = ""; payload += "\"temperature\":"; payload += temperature; payload += ","; payload += "\"humidity\":"; payload += humidity; payload += ""; char attributes[100]; payload.toCharArray( attributes, 100 ); client.publish( "v1/devices/me/telemetry", attributes ); Serial.println( attributes );
Por fim o Wi-Fi, caso esteja desconectado é conectado novamente e a conexão com a
plataforma Thingsboard é estabelecida, já passando o valor do token para permitir a conexão
void InitWiFi() soft.begin(9600); WiFi.init(&soft); if (WiFi.status() == WL_NO_SHIELD) Serial.println(“Sem Esp"); while (true); Serial.println("Connecting to AP ..."); while ( status != WL_CONNECTED) Serial.print("Tentando se reconectar: "); Serial.println(WIFI_AP);
36
status = WiFi.begin(WIFI_AP, WIFI_PASSWORD); delay(500); Serial.println("Conectado"); void reconnect() while (!client.connected()) Serial.print("Conectado no Thingsboard ..."); if ( client.connect("Arduino Uno Device", TOKEN, NULL) ) Serial.println( "[DONE]" ); else Serial.print( "[FAILED] [ rc = " ); Serial.print( client.state() ); Serial.println( " Reconectando ); delay( 5000 );
A figura 21 apresentada o diagrama esquemático do código para facilitar seu
entendimento.
Figura 21 – Diagrama de processor do código
Fonte: Autoria Própria.
• Carga de Bibliotecas;• Inicialização das variáveis de
conexão wi-fi e Thingsboard;• Configuração inicial dos pinos
e funções.
Setup Inicial
• Configuração do ESP8266 para conexão com a rede Wi-Fi.
Wi-Fi• Coleta das variáveis
ambientais pelo DHT22;• Formação do JSON de carga
no device;• Conexão com o Device.
DHT22-Thingsboard
• Verificação da conexão Wi-Fi e em caso negativo inicialização de uma nova conexão;
• Conexão com o servidor Thingsboard.
Conexão Thingsboard
37
4. RESULTADOS
Após deixar o medidor de variáveis ambientais ligados por aproximadamente 1 hora o
DHT22 coletou aproximadamente 107,942 amostras de temperatura, mas pelo o que foi
observado através da interface serial monitor do Arduino IDE apenas 23 pacotes não foram
enviadas para o servidor web. Isso resulta em uma taxa de 99,97% de coleta de informações. O
principal motivo de interferência na comunicação com o servidor foi a qualidade da internet
sem fio no local de teste. O modem provedor da comunicação sem fio já é antigo e apresenta
perdas de pacote ainda na rede local. Os mesmos testes rodados através de uma rede 4g de
celular apresentaram, também em testes de 1 hora, 100% de transmissão de pacotes.
O segundo levantamento foi o tempo de resposta para alterações de input de leitura. Ao
aproximar uma fonte de calor do sensor este levou aproximadamente 5 segundos para começar
a apresentar os novos resultados, levando em conta o tempo de coleta de novas informações do
DHT22 de 2 segundos e o tempo para a nova fonte de calor se propagar ao sensor é seguro
afirmar que o tempo de resposta é excelente as necessidades de um datacenter.
A figura 22 apresenta o resultado da temperatura e umidade no local de provas sem
alterações de fontes externas de calor.
Figura 22 – Valores medidos sem uso de fontes de calor externas
Fonte: Autoria Própria.
38
A figura 23 apresenta os valores obtidos após a saturação do ambiente com vapor
d’água, aumentando a humidade relativa do ambiente de provas. Pode se observar o aumento
exponencial nas medições até a saturação em 100% de umidade relativa. Visto que o vapor
d’água se encontra a uma temperatura maior do que a temperatura do ar é possível notar também
o incremento na temperatura do local.
Figura 23 – Aumento da humidade relativa do ar.
Fonte: Autoria Própria.
O projeto foi todo desenvolvido utilizando fontes de energia externas. O DHT22 e o
ESP8266 foram alimentados através de uma fonte ajustável de 110V para 3,3V e o Arduino
através interface USB do computador. Em um cenário de implementação o ideal é o uso de
baterias para não necessitar a introdução de novos elementos na rede elétrica do datacenter.
O consumo do ESP866 e o DHT22 ficou em torno de 110mA e do Arduino cerca de
40mA, portanto o consumo total do projeto gira em torno de 150mA. Neste momento o projeto
não levou em conta nenhuma otimização do consumo energético, porém esta seria necessária
para permitir o uso de baterias por longos períodos de tempo.
39
Fatores que podem ser estudados em uma otimização energética para o projeto levam
em conta tanto hardware quanto software. Tanto o Arduino quanto o ESP822 possuem estados
de baixo consumo de energia enquanto não estão funcionando, estes estados, aliado a um
possível agendamento dos períodos de funcionamento do sistema, por exemplo, coletas a cada
5 ou 10 segundos pode reduzir o consumo energético para níveis mais aceitáveis para o uso
com bateria. Alterações mais específicas também podem ser feitas, como por exemplo
desabilitar leds do Arduino e esp8266 e usar um diferente Arduino com menor consumo
energético.
40
5. CONCLUSÃO
Esse projeto realizou o desenvolvimento de um sistema de monitoria de temperatura e
umidade de baixo custo que viabilizasse sua implementação em datacenters de maneira ágil,
barata e com alta confiabilidade.
A análise de performance do sistema demonstra sua confiabilidade, em que mesmo com
redes mais instáveis ou até mesmo redes mais complexas, como de celular sua taxa de
transferência de pacotes fica acima de 99,9%. Seu tempo de feedback fica próximo ao limiar
do próprio sensor DHT22 o que prova sua rápida resposta a drásticas mudanças nas variáveis
medidas e podendo ser aprimorado, dada a necessidade do projeto, pela utilização de outros
sensores. Assim é possível atender as especificações técnicas estipuladas pela própria TIA-942.
Os valores de produtos do mercado com características semelhantes (conexão sem fio,
geração de alerta, variáveis monitoradas) possuem uma grande variabilidade, mas encontramos
diversos na casa dos milhares de reais (SENSOR, 2018). Uma simples comparação entre o custo
de produção e a facilidade de construção do sistema apresentado nesse trabalho com estes
produtos encontrados no mercado já nos mostra que o sistema está apto a atender as
necessidades mais comuns de pequenos datacenters.
Um ponto importante a ser considerado é que para datacenters maiores e mais
complexos as necessidades de monitoria e detalhamento das funções são mais granulares e
exigem um nível de monitoria que considerem essas variáveis. Para se atender as necessidades
de monitoria como fluxo do ar, altura dos servidores, quantidade de sensores, conflitos de
pacotes na rede, alimentação energética e outros, não só é necessário um sistema mais completo
e ágil, mas também uma rede sem fio capaz de entregar confiabilidade e agilidade no
fornecimento destes dados. Dessa maneira o projeto aqui discutido deve ser estudado para
verificar se ele possui a capacidade de ser incrementado para atender as necessidades citadas.
E se uma rede local pode atender as demandas da mesma forma que redes de sensores.
41
6. TRABALHOS FUTUROS
Para trabalhos futuros existem alguns pontos que podem ser estudados e discutidos
quanto a sua viabilidade. Estes pontos podem ser separados em dois grandes grupos, atender
necessidades corporativas de datacenters maiores e mais complexos e baratear o custo de
fabricação do projeto citado.
Para atender as necessidades de datacenters mais complexos alguns detalhes devem ser
considerados, como por exemplo: a capacidade de medição de fluxo de ar, a integração de mais
sensores para a medição em diferentes alturas dos servidores e a implementação de uma rede
que consiga gerencia a presença de diversos medidores ao mesmo tempo.
Pensando em baratear os custos de produção deste projeto uma das possibilidades é a
implementação do código dentro do chip ESP8266. Uma técnica recente e que está começando
a ganhar força em outros projetos é a capacidade de remover o firmware do próprio ESP e rodar
o código nele, eliminando a necessidade do Arduino e assim barateando ainda mais o projeto.
42
7. REFERÊNCIAS BIBLIOGRÁFICAS
Forbes. Amazon.com Goes Down, Loses $66,240 Per Minute, outubro 2013.
https://www.forbes.com/sites/kellyclay/2013/08/19/amazon-com-goes-down-loses-66240-per-
minute/#1d097606495c (acessado em janeiro de 2018)
ANS. Acordo de nível de serviço. Disponível em:< https://pt.wikipedia.org/wiki/Acordo_de_n%C3%ADvel_de_servi%C3%A7o>. Acesso em: 15/03/2018.
Baguete. BRDigital depois do incêndio. Disponível ein: < https://www.baguete.com.br/noticias/13/03/2018/brdigital-depois-do-incendio>. Acesso em 10 de maio de 2018
Sadler, R. Video Demand Drives up Global CO2 Emissions. Disponível em: http://climatenewsnetwork. net/video-demand-drives-global-co2-emissions/ Acesso em 10 junho 2017.
Khalaj, A.H.; Scherer, T.; Halgamuge, S.K. Energy, environmental and economical saving potential of data centres with various economizers across Australia. Appl. Energy 2016
ISO. ISO/IEC 30134-2:2016. Disponível em <: https://www.iso.org/standard/63451.html>. Acessado em 10 de junho 2018.
GOOGLE, 2018. Efficiency: how we do it. Google—Data Centers. Disponível em <: https://www.google.com/about/datacenters/efficiency/internal/>. Acessado em 15 de abril de 2018
FACEBOOK, 2016. Forest City Data Center—PUE/WUE. Disponível em<: https://www. facebook.com/ForestCityDataCenter/app/288655784601722/>. Acessado em 10 de junho de 2018.
Digital Realty Trust 2013. North America Campos Survey Results. Disponível em <: https://c.na6.content.force.com/sfc/dist/version/download?oid=00D300000005uRq&ids=06880000000k573&d=/a/80000000CpC7/k_RJOcsv31zvPC4hgEz9NMQjNd0m4KjS_CzGO5_ni48% 3D&viewId=05H80000000EDGV&operationContext=DELIVERY.> Acessado em 10 de junho de 2018
43
Bell, Geoffrey C., Cliff Federspiel. September 2009. Demonstration of Datacenter
Automation Software and Hardware (DASH) at the California Franchise Tax Board
California Energy Commission. Disponível em <:
https://escholarship.org/uc/item/639529jk>
Pinheiro, E., W. D. Weber, and L. A. Barroso, 2007, “Failure Trends in a Large Disk
Drive Population” Proceedings of the 5th USENIX Conference on File and Storage
Technologies (FAST ’07).
WEISS, Beat; TRUONG, Linh. Wireless Sensor Network for Continuously
Monitoring Temperatures in Data Centers. Disponível em:
<http://domino.watson.ibm.com/library/cyberdig.nsf/papers/11D5DB9B654E35AD852578C4
004D6EC1/$File/rz3807.pdf>
LIU, Jie; Zhao, Feng. Project Genome: Wireless Sensor Network for Data Center
Cooling. Disponível em <:
https://www.researchgate.net/publication/255563465_Project_Genome_Wireless_Sensor_Net
work_for_Data_Center_Cooling>
TIA. TIA-942. Disponível em
<:https://manuais.iessanclemente.net/images/9/9f/Tia942.pdf>
Venturi. Wikipedia. Disponível em: < THINGSBOARD. ThingsBoard Global Website.
Disponível em: < https://thingsboard.io/docs/getting-started-guides/what-is-thingsboard/>.
Acesso em: 01 maio.2018.>. Acesso em: 01 maio.2018.
“802.15.4-2015 - IEEE Standard for Low-Rate Wireless Networks” IEEE 802.15
document 15-13-0257-06-0000, 2015.
SOUZA, Anderson; PAIXÃO, Alexsander. A placa Arduino: uma opção de baixo
custo para experiências de física assistidas pelo PC. Instituto de F´ısica, Universidade
Federal do Rio de Janeiro, Rio de Janeiro, RJ, Brasil, 2011.
DHT22. Dht22. Disponível em <: https://leeselectronic.com/en/product/7375.html >.
Acesso em 14 de junho de 2018
ARDUINO. What is Arduino? Arduino, 2018a. Disponivel em: . Acesso em: 13
Fevereiro 2018.
44
KOLBAN, Neil. Kolban's Book on ESP8266.Texas, USA. 2015.
THINGSBOARD. ThingsBoard Global Website. Disponível em: <
https://thingsboard.io/docs/getting-started-guides/what-is-thingsboard/>. Acesso em: 01
maio.2018.
THINGSBOARD,b. ThingsBoard, Global Website. Disponível em: <
https://thingsboard.io/docs/iot-gateway/getting-started/#step-81-mqtt-broker-file-
configuration/>. Acesso em: 01 maio.2018.
SENSOR. Valor de sensor wireless. Disponível em: <https://www.mundoclima.com.br/instrumentos-de-medicao-climatica/higrometros/monitor-de-temperatura-e-umidade-via-internet/>. Acesso em 02/05/2018.
ESP8266. ESP866 PINOUT. Disponível em <: https://iotbytes.wordpress.com/esp8266-pinouts/> . Acesso em 02 de junho de 2018
45
Anexo I – Código desenvolvido
#include "DHT.h"
#include <WiFiEspClient.h>
#include <WiFiEsp.h>
#include <WiFiEspUdp.h>
#include <PubSubClient.h>
#include "SoftwareSerial.h"
#include "ESP8266.h"
#define WIFI_AP "Nome_da_sua_rede"
#define WIFI_PASSWORD "Senha da sua rede Wifi"
#define TOKEN "Token_do_devide_thingsboard"
// DHT
#define DHTPIN 4
#define DHTTYPE DHT22
char thingsboardServer[] = "demo.thingsboard.io";
// Inicialização do esp8266
WiFiEspClient espClient;
// Inicialização do dht22
DHT dht(DHTPIN, DHTTYPE);
// Encapsulamento MQTT payload
PubSubClient client(espClient);
// Declaração
SoftwareSerial soft(2, 3); // RX, TX
46
ESP8266 wifi(soft);
int status = WL_IDLE_STATUS;
unsigned long lastSend;
void setup()
// Initializando portas serial e de envio para thingsboard. Atenção ao valor de 9600 que pode
ser diferente dependendo do esp
Serial.begin(9600);
dht.begin();
InitWiFi();
client.setServer( thingsboardServer, 1883 );
lastSend = 0;
void loop()
status = WiFi.status();
if ( status != WL_CONNECTED)
while ( status != WL_CONNECTED)
Serial.print("Tentando conectar a rede Wifi: ");
Serial.println(WIFI_AP);
status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);
delay(500);
Serial.println("Conectado");
if ( !client.connected() )
reconnect();
if ( millis() - lastSend > 2000 )
getAndSendTemperatureAndHumidityData();
47
lastSend = millis();
client.loop();
void getAndSendTemperatureAndHumidityData()
Serial.println("Coletando dados:");
// Coleta humidade
float h = dht.readHumidity();
// Coleta Temperatura
float t = dht.readTemperature();
String temperature = String(t);
String humidity = String(h);
// Debugging messages da formação do payload e envio
Serial.print( "Enviando dados : [" );
Serial.print( Temperatura ); Serial.print( "," );
Serial.print( Humidade );
Serial.print( "] -> " );
// Montando JSON para envio do payload
String payload = "";
payload += "\"temperature\":"; payload += temperature; payload += ",";
payload += "\"humidity\":"; payload += humidity;
payload += "";
// Envio do payload
char attributes[100];
payload.toCharArray( attributes, 100 );
client.publish( "v1/devices/me/telemetry", attributes );
48
Serial.println( attributes );
void InitWiFi()
// Initializando ESP
soft.begin(9600);
// initialize ESP module
WiFi.init(&soft);
if (WiFi.status() == WL_NO_SHIELD)
Serial.println(“Sem Esp");
// don't continue
while (true);
Serial.println("Connecting to AP ...");
// Conectando na rede
while ( status != WL_CONNECTED)
Serial.print("Tentando reconectar: ");
Serial.println(WIFI_AP);
status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);
delay(500);
Serial.println("Conectado");
void reconnect()
while (!client.connected())
Serial.print("Conectado no Thingsboard ...");
if ( client.connect("Arduino Uno Device", TOKEN, NULL) )
Serial.println( "[DONE]" );
else
Serial.print( "[FAILED] [ rc = " );
Recommended