Вы находитесь на странице: 1из 6

Sistema Embarcado Linux para Análise de Sensores de

Temperatura DHT11 e LM35


Tiago A. F. Queiroz1, Douglas L. Dias1, Pedro H. M. Araújo1, Renan P.
Figueiredo1, Sandro C. S. Jucá1

¹Área da Telemática – Instituto Federal de Educação, Ciência e Tecnologia do Ceará


(IFCE) CEP 61939-140 – Campus Maracanaú – CE – Brasil
tiago.queiroz_2009@hotmail.com, {dldouglaslopes, hericsonaraujo2013,
renanpdef, sandro.juca}@gmail.com

Abstract. This paper describes a system for generating graphics on web page
of a room temperature from two sensors: DTH11 and LM35. Connected to a
Raspberry Pi, this Linux embedded system stores the data detected by the
sensor in a SQLite database, it is soon generated a csv file, which is developed
graphics. After this, a comparison is made between the sensors.

Resumo. Este trabalho descreve um sistema para geração de gráficos em


página web sobre temperatura de um ambiente a partir de dois sensores:
DTH11 e LM35. Conectados a um Raspberry Pi, esse sistema Linux
embarcado armazena os dados detectados pelo sensor em um banco de dados
SQLite, logo é gerado um arquivo csv, o qual é desenvolvido os gráficos. Após
isso, é feita uma comparação entre os sensores.

1. Introdução
A necessidade de monitoramento da temperatura está presente em diversos ambientes,
tanto em empresas como residências. A análise desse fator é importante para verificação
de problemas que possam ocorrer em equipamentos que precisam dessas informações,
pois a temperatura é um atributo que modifica o funcionamento, causando até mesmo a
danificação dos mesmos.
Para realizar a detecção da temperatura, são utilizados dois sensores térmicos:
sensor LM35 e sensor DHT11. Os sensores elétricos de temperatura transformam a
grandeza física de temperatura do ar em sinais elétricos – em forma de tensão ou
resistência elétrica [de Oliveira Júnior 2014]. O LM35 [Texas Instruments 2015] é
conectado a uma placa microcontrolada PIC18F2550 [Microship 2009] por meio da
comunicação serial e envia os dados a um Raspberry Pi (RPI), sistema embarcado
Linux. O DTH11 [D-Robotics 2010] por ter um microcontrolador embutido é conectado
somente ao RPI. Os programas dessa detecção foram desenvolvidos em linguagem C e
para o armazenamento dos dados foi utilizado o banco de dados SQLite.
Este relatório tem como objetivo facilitar o monitoramento da temperatura de
ambientes, bem como a comparação dos valores obtidos em cada sensor. Para isso, é
construído um gráfico em uma página web localizado no servidor Apache do RPI.
2. Descrição de componentes

2.1. Raspberry Pi
Para o desenvolvimento do sistema de monitoramento de temperatura foi necessária a
utilização de um microcomputador Raspberry Pi (RPI). Esse microcomputador foi
desenvolvido com o propósito de ensinar programação às crianças [Foundation 2015],
No entanto é possível usa-lo para desenvolver sistemas de monitoramento através da
aquisição de dados, com baixo custo e com maior simplicidade, de forma a difundir o
uso desses sistemas automatizados em pequenas empresas, ou mesmo no ambiente
doméstico.
Assim como em um computador pessoal, é necessário instalar um sistema
operacional no RPI. Neste trabalho será utilizado a distribuição Linux Raspbian, que é
uma variante do Debian otimizada para o conjunto de instruções do hardware do
Raspberry Pi. O Raspbian é um Software Livre com mais de 35.000 pacotes pré-
compilados que podem ser facilmente instalados como um sistema embarcado Linux no
Raspberry Pi [Raspbian 2015].
Encontram-se na literatura diversos trabalhos que utilizam o RPI na área de
sistemas embarcados, para automatizar processos e serviços ou promover a educação,
como pode ser verificado nas diversas pesquisas: Raspberry Pi e Experimentação
Remota [Crotti 2013], Low-Cost Speaker and Language Recognition Systems Running
on a Raspberry Pi [D’Haro 2014], Desenvolvimento de Software de Controle para um
Veículo Aquático Autônomo [Perez 2014], Music Beat Tracker Device [Mesquita
2014].

2.2. Placa Microcontrolada SanUSB


Através do sistema de desenvolvimento SanUSB que é uma ferramenta composta de
software e hardware básico da família PIC18Fxx5x com interface USB, foi possível a
realização do projeto. Esta ferramenta possibilita que a compilação, a gravação e a
simulação real de um programa, como também a comunicação serial através da
emulação de uma porta COM virtual, possam ser feitos de forma rápida e eficaz a partir
do momento em que o microcontrolador esteja conectado diretamente a um computador
via USB [Jucá 2009].
Os componentes básicos do circuito para gravação do PIC via porta USB são um
microcontrolador PIC18F2550, um cristal de 20 MHz, dois capacitores de 22 pF, dois
capacitores de 1 µF, um resistor de 2k2, 1 diodo, 1 led e 1 resistor de 390 Ω.

2.3. Sensor DHT11


O DHT11 é um sensor digital de temperatura e umidade que permite medir temperaturas
de 0 a 50 Celsius com precisão de 2,0° C para mais ou para menos, e umidade na faixa
de 20 a 90% com precisão de mais ou menos 5%. O sensor envia os dados para o
microcontrolador utilizando apenas um pino, os outros dois são Vcc e GND, sendo que
o terceiro pino não é utilizado [Blog FlipFlop 2015]. O sensor contém também uma
interface analógica-digital, para que não seja necessária calibração ou conversão digital
como acontece no caso de termistores.
Para montagem do circuito (Figura 1) foram utilizados os pinos 1 (VCC), 7
(GPIO4) e 6 (GND) do RPI ligados respectivamente ao pinos 1 (VCC), 2 (sinal) e 4
(GND) do sensor, entre os pinos 1 e 2 foi colocado um resistor de 10k ohm [Baume
2013]. O DHT11 utiliza a própria interface serial, que pode ser acessada através da
biblioteca wiringPi em C.

Figura 1. Circuito com o sensor DTH 11 conectado ao Raspberry Pi

O firmware implementado em linguagem C e armazenado no Raspberry Pi


recebe os dados do sensor DHT11 e guarda dentro de um vetor a parte decimal e inteira
tanto da temperatura quanto da umidade, juntamente com um checksum para verificação
da integridade dos dados. Posteriormente, os valores de temperatura e umidade são
impressos e transmitidos pelo firmware.

2.4. Sensor LM35


O LM35 (Figura 2) é um sensor analógico que apresenta uma saída de tensão linear
relativa à temperatura alimentado por uma tensão de 4-20Vdc e GND, tendo em sua
saída um sinal de 10mV para cada Grau Celsius de temperatura. Ele possui uma faixa de
medição de -55° a 150° Celsius com uma precisão de 0,5° C para mais ou para menos.

Figura 2. Sensor LM35.


Para a realização do circuito, foi utilizado uma placa SanUSB com o sensor
LM35 conectada ao PIC18F2550. O sensor é composto por 3 pinos: VCC, GND e pino
de se sinal analógico. A partir do último pino, os dados de tensão são enviados para o
PIC da placa. O software foi implementado em C utilizando a ferramenta MPLABX
com a biblioteca SanUSB.
Após isso, o microcontrolador analisa as informações e converte o sinal de
tensão do sensor para graus Celsius. Essa temperatura é transmitida pelo PIC ao
Raspberry Pi por meio dos pinos de comunicação serial TX e RX como ilustrado no
circuito da Figura 3.
Figura 3. Circuito de conexão entre a placa SanUSB e o Raspberry Pi

3. Banco de Dados Livre


O armazenamento dos valores obtidos pelos sensores e data atual do sistema foi feito
através do banco de dados SQLite (Figura 4). Ele é uma boa opção para sistemas
embarcados Linux por ser fácil de instalar, livre e open source. Os bancos de dados são
armazenados em um único arquivo que é possível se conectar diretamente a partir de seu
código, sem a necessidade de um processo de servidor em execução. As bibliotecas são
customizadas, ou seja, ocupa menos espaço no disco.

Figura 4. Banco de Dados com interface do PhpLiteAdmin.

O phpLiteAdmin é uma ferramenta front-end baseada em PHP para gerenciar e


manipular bancos de dados com SQLite. O phpLiteAdmin consiste em um único
arquivo de origem, phpliteadmin.php, que é armazenado em um diretório do servidor
WEB e pode ser acessado pelo navegador. As operações disponíveis, conjunto de
recursos, interface e experiência do usuário é comparável ao do phpMyAdmin
[Bitbucket 2015].

4. Resultados
Para integrar os resultados, foi criado um arquivo Shell Script que recebe as saídas dos
programas do DHT11 e LM35, juntamente com a data e a hora atual do sistema. As
informações são armazenadas no banco de dados, logo após é feita a busca do conteúdo
existente e gravada em um arquivo csv (Figura 5). Para fazer a execução do script a cada
minuto, foi utilizado o comando crontab -e, e adicionado a linha:
* * * * * cd /var/www/admin; /bin/bash temp.sh
Figura 5. Arquivo csv.

Com o armazenamento dos dados no arquivo csv foi possível gerar um gráfico
utilizando a biblioteca javascript dygraphs. Foi instalado o servidor Apache no RPI,
para hospedar a página Web. A página pode ser acessada pela rede local, onde é feito o
monitoramento da temperatura.
Ao analisar o gráfico com dados de umidade, em verde, temperatura do DHT11,
em lilás, e temperatura do LM35, em azul (Figura 6), observa-se que o DHT11 possui
uma estabilidade maior na medição térmica em relação ao LM35. Porém, o LM35 se
comporta melhor com as variações térmicas, pois possui uma melhor precisão
comparada ao do DHT11 e, além disso, o LM35 pode calcular temperaturas mais
extremas, como temperaturas abaixo de 0° C.

Figura 6. Gráfico gerado a partir dos dados obtidos pelos sensores.


5. Considerações finais
Este relatório demonstrou a comparação das características e do funcionamento de dois
sensores de temperatura: DHT11 e LM35. Os dois sensores tiveram resultados
satisfatório, e podem ser utilizados em diversas aplicações.
A partir dos resultados foi possível concluir que o sensor LM35 é um ótimo
componente para aplicações que necessitem medir temperaturas mais extremas, como
temperaturas negativas ou bastante elevadas. Já o DHT11 seria de muita utilidade em
sistemas de medição da temperatura ambiente e umidade, como em uma sala ou
laboratório.

Referências
Blog FlipFlop (2015), “Monitorando Temperatura com DHT11 e Raspberry Pi”,
http://blog.filipeflop.com/embarcados/temperatura-umidade-dht11-com-raspberry-
pi.html. Acesso em 03/11/2015.
D-Robotics (2010), “Datasheet: DHT11”, http://files.amperka.ru/datasheets/dht11.pdf .
Acesso em 04/11/2015.
Baume, C. (2013). “BEER MONITORING WITH MY RASPBERRY PI”,
https://chrisbaume.wordpress.com/2013/02/10/beer-monitoring/. Acesso em
03/11/2015.
Instruments, T. (2015), “Datasheet: LM35”, http://www.ti.com/lit/ds/symlink/lm35.pdf.
Acesso em 03/11/2015.
Júnior, A. J. O., Vicentin, T. A., e da Cunha, A. R. (2014). Avaliação do sensor DHT11-
medidas de temperatura e umidade relativa do ar. In III JORNACITEC.
Foundation, R. P., “Raspberry Pi”. Disponível em: http://www.raspberrypi.org. Acesso
em 15/03/2015.
Raspbian, “Welcome to Raspbian”, http://www.raspbian.org/. Acesso em 22/01/2015.
Crotti, Y., Silva, J. B., Marcelino, R., Vilson, G. e Casagrande, L. C. S., (2013)
“Raspberry Pi e Experimentação Remota”. Araranguá (SC).
L. F. D’Haro, R. de Córdoba, J. I. Rojo, J. Díez, D. Avendaño e J.M. Bermudo, (2014)
“Low-Cost Speaker and Language Recognition Systems Running on a Raspberry Pi”
IEEE Latin America Transactions, vol.12, no.4.
Perez, T. D. “Desenvolvimento de Software de Controle para um Veículo Aquático
Autônomo”. Monografia (Curso de Engenharia Elétrica). Universidade de São Paulo,
São Carlos (SP), 2014.
Mesquita, M. (2014) ”Music Beat Tracker Device”. Dissertação (Mestrado Integrado em
Engenharia Eletrotécnica e de Computadores). Universidade do Porto.
Microchip (2009), “Datasheet: PIC18F2455/2550/4455/4550”. Disponível em:
http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf. Acesso em
01/11/2015.
Bitbucket (2015), “What is phpLiteAdmin?”. Disponível em:
https://bitbucket.org/phpliteadmin/public/wiki/Home. Acesso em :09/11/2015.

Вам также может понравиться