Descrição:
Esse projeto é semelhante ao primeiro, só que dessa vez utilizaremos mais um componente para exibir os resultados além do Monitor serial. Trata-se do display LCD 16x2 (16 colunas
por 2 linhas). Como já dissemos anteriormente, os dados coletados por esses sensores poderão ser também armazenados em um cartão SD caso você queira analisá-los posteriormente.
Isso poderá ser feito adicionando um shield apropriado ao Arduino.
Mas agora vamos conhecer os componentes que farão parte desse projeto.
Sensor DHT11:
Esse tipo de sensor contêm um chip que faz a conversão de analógico para digital e retorna um sinal digital com as informações sobre a temperatura e a umidade do ambiente. Ele dispõe
de um componente medidor de umidade e um componente NTC para temperatura, ambos conectados a um controlador de 8-bits. O interessante neste componente é o protocolo usado para
transferir dados entre o MCDU e o DHT11, pois as leituras do sensor são enviadas usando apenas um único fio de barramento.
O sensor DHT11 que vamos utilizar em nosso projeto é o mostrado na Figura 2.1:
Figura 2.1 – Sensor DHT11 (Módulo completo) Frente e verso.
(Imagem: do Autor)
Pinagem:
Esse sensor dispõe de apenas três pinos (ou terminais). Considerando a imagem de frente do sensor, a partir da esquerda, temos:
• VCC – 5V.
• OUT – sinal.
• GND – terra.
Vejamos algumas especificações técnicas desse componente de acordo com o fabricante:
• Modelo: DHT11.
• Alimentação: 3,0 a 5,0 VDC (5,5 VDC máximo).
• Corrente: 200uA a 500mA, em standby de 100uA a 150 uA.
• Faixa de medição de umidade: 20 a 90% UR.
• Faixa de medição de temperatura: 0º a 50ºC.
• Precisão de umidade de medição: ± 5,0% UR.
• Precisão de medição de temperatura: ± 2.0 ºC.
• Tempo de resposta: < 5s.
• Precisão absoluta: ± 5%.
• Repetibilidade: ± 1%.
• Estabilidade a longo prazo: ± 1% ao ano.
É aconselhável utilizar o módulo completo do sensor de três pinos (Figura 2.1), e não ele isolado, tendo em vista que o módulo já vem
com o respectivo resistor, evitando dessa forma de você utilizar um resistor no seu projeto.
Display LCD 16x2:
Esse componente é utilizado para exibir informações provenientes de resultados obtidos da leitura de outros componentes, como sensores de movimento, ultrassônicos, infravermelho,
de temperatura, etc. Essas informações serão exibidas em um visor de cristal líquido contendo 16 colunas por 2 linhas. Esse componente poderá ser usado com vários tipos de placas
e microcontroladores, tais como Arduino, Raspberry PI, PIC, entre outros. O tamanho, as cores de fundo e dos caracteres variam de acordo com o modelo e o fabricante. Entretanto,
essas características não afetam a finalidade do nosso projeto.
O tipo de display que vamos utilizar em nosso projeto é o mostrado na Figura 2.2:
Figura 2.2 – Display LCD 16x2 Frente e verso.
(Imagem: do Autor)
Pinagem:
Esse componente dispõe de 16 pinos para conexão com o Arduino, conforme mostra a Figura 2.3:
Figura 2.3 – Pinagem do display LCD 16x2.
(Imagem: do Autor)
Vejamos algumas especificações técnicas desse componente de acordo com o fabricante:
• Módulo I2C 1602 LCD Azul 16x2.
• Tela de cristal líquido para Arduino e outros microcontroladores.
• Com o conversor serial I2C, o módulo usa o chip pcf8574.
• Ele permite que você use este LCD com apenas 4 pinos. Há uma luz de fundo que levaria um quinto pino se você quiser ligar e desligar.
• Tela retro iluminada azul de 16x2 caracteres.
• O conversor I2C incluído salva os pinos no seu projeto.
• O LCD e o conversor são componentes separados com os pinos soldados no conversor.
• Será necessário soldar o conversor no LCD.
Agora que você já conhece o componente essencial para esse projeto, vejamos o material necessário para sua execução:
• 1 Arduino Uno (recomendado) ou compatível.
• 1 Protoboard.
• 1 Sensor de Temperatura e Umidade DHT11.
• 1 Display LCD 16x2.
• Alguns jumpers.
Conectando os componentes ao Arduino:
Estando com todo o material em mãos, conecte-os de acordo com o esquema mostrado na Figura 2.4, mas antes certifique-se que o cabo USB do
Arduino esteja desconectado do computador:
Figura 2.4 – Conexão esquemática dos componentes com o Arduino e a protoboard.
(Imagem: do Autor)
Faça as conexões da seguinte forma:
• Arduino – conecte o pino 5V a um dos pinos da trilha vermelha da protoboard (fio vermelho), e o pino GND a um dos pinos da trilha preta
da protoboard (fio preto).
• Sensor DHT11 – conecte o terminal da esquerda (VCC) a um dos pinos da trilha vermelha da protoboard (fio azul), o segundo terminal
(OUT) conecte ao pino digital 7 do Arduino (fio lilás), e o último terminal (GND), conecte a um dos pinos da trilha preta da protoboard (fio verde).
• Display LCD – conecte o primeiro pino da esquerda, VSS (Ground), a um dos pinos da trilha preta da protoboard (fio marrom),
o segundo pino, VDD (5V), conecte a um dos pinos da trilha vermelha da protoboard (fio azul), o terceiro pino, VE (Contrast), deixe desconectado, ou conecte um potenciômetro
para controlar a luminosidade do LCD. O quarto pino RS conecte à saída digital 12 do Arduino (fio lilás), o quinto pino, RW, conecte a um dos pinos da trilha preta da protoboard
(fio ciano), o sexto pino (E – Enable), conecte à saída digital 11 do Arduino (fio verde), deixe os pró-ximos 4 pinos desconectados (D0 a D3), o pino D4, conecte à saída
digital 5 do Arduino (fio laranja), o pino D5, conecte à saída digital 4 do Arduino (fio azul), o pino D6, conecte à saída digital 3 do Arduino (fio verde), o pino D7, conecte
à saída digital 2 do Arduino (fio vermelho), o penúltimo pino, Backlight Anode, conecte à um dos pinos da trilha vermelha da protoboard (fio vermelho), e finalmente o último pino,
Backlight Cathode, conecte à um dos pinos da trilha preta da protoboard (fio preto).
Para facilitar a conexão do LCD 16x2 com o Arduino e a protoboard, consulte a tabela a seguir:
Tabela 2.1 – Conexão dos pinos do LCD 16x2 com o Arduino e a protoboard.
(Imagem: do Autor)
Veja nas Figura 2.5 e 2.6 o mesmo projeto na versão real:
Figura 2.5 – Visão real das conexões dos componentes com
o Arduino e a protoboard.
(Imagem: do Autor)
Figura 2.6 – Detalhe do LCD mostrando a
temperatura e a umidade do ambiente.
(Imagem: do Autor)
Criando o sketch:
Para a criação do nosso sketch, você precisa primeiro baixar a biblioteca a seguir necessária para a execução do projeto. Caso essa biblioteca já esteja instalada, execute o passo seguinte:
• Faça o download da biblioteca DHT11 no link:
Biblioteca DHT11
e salve-a em algum lugar de sua preferência.
• Descompacte o arquivo e mova ou copie a pasta DHT para o diretório libraries do Arduino (onde ele foi instalado).
• Execute o Arduino e verifique se a biblioteca instalada faz parte da lista de bibliotecas utilizando o menu: Sketch >> Incluir Biblioteca.
Ela deve estar no final da lista com o nome: DHT sensor library.
OBS.: Se o Arduino já estiver sendo executado será necessário fechá-lo e executá-lo novamente para que a biblioteca seja incluída na lista.
Agora que a biblioteca está devidamente instalada, digite o código da Listagem 2.1 (desconsidere os números à esquerda, só servem como referência), ou carregue
o arquivo (sensor_dht11_lcd) utilizando o link:
sensor_dht11_lcd.ino
E abra no editor do Arduino.
Listagem 1.1
Salve esse projeto com o nome (sugestão) de: sensor_dht11_lcd.
Alguns comentários sobre o código:
1) Na linha 7 foi incluída a biblioteca DHT, necessária para a execução do nosso projeto.
2) Na linha 9 incluímos também a biblioteca do LCD, que já faz parte do Arduino, não precisa ser baixada.
3) Na linha 11 são definidos os pinos do Arduino onde serão conectados os pinos do LCD.
4) Na linha 13 definimos o tipo de sensor que vamos utilizar. Na linha 15 definimos o pino digital 7 do Arduino onde o pino OUT do sensor deverá ser conectado.
5) Nas linhas 22 e 23 o LCD e o sensor são inicializados.
6) Na linha 28 criamos uma variável (u) do tipo float para armazenar o valor da umidade, e na linha 29 criamos a variável (t) do tipo float para armazenar o valor da
temperatura, em Celsius.
7) Na linha 31 criamos uma condição para o caso de haver alguma falha na leitura do sensor ou algum outro tipo de problema. Se houver algum problema com o sensor será
impressa a mensagem da linha 33 e você deverá procurar saber o problema ou substituir o componente para dar prosseguimento ao projeto. Caso não haja nenhum tipo de problema,
serão impressas a umidade e a temperatura ambiente tanto no Monitor serial quando no LCD.
Executando o projeto:
Inicialmente conecte o cabo USB no computador, selecione uma porta utilizando o menu Ferramentas/Porta, e em seguida faça o upload do código para o
Arduino clicando no ícone Carregar (ou utilize o menu Sketch >> Carregar). Se o seu código apresentar algum tipo de erro, ele será identificado
com uma tarja sobre a linha onde se encontra o erro e/ou no rodapé do Editor, isso vai depender do tipo de erro. Cabe a você procurar saber que tipo de erro ocorreu e consertá-lo.
Testando o projeto:
Após a execução do código, o projeto deverá mostrar no Monitor serial os valores da umidade e da temperatura (em Celsius), conforme mostra a Figura 2.7:
Figura 2.7 – Monitor mostrando a umidade e a temperatura (em Celsius),
captadas pelo sensor DHT11.
(Imagem: do Autor)
OBS.: As leituras desse sensor podem variar de acordo com a temperatura e a umidade do ambiente onde o sensor está sendo testado. Como exercício,
experimente fazer vários testes expondo o sensor em ambientes diferentes.
Atividades:
1) Adicione um LED vermelho ao projeto e altere o código de forma que, quando a tempera-tura atingir um determinado valor (estabeleça um valor qualquer), mostre uma mensagem no
LCD alertando o ocorrido e acenda o LED, caso contrário, o LED deverá permanecer apagado, e essa informação deverá ser mostrada no LCD.
2) Adicione um alarme ao projeto e altere o código de forma que, quando a temperatura atingir um determinado valor (estabeleça um valor qualquer), mostre uma mensagem
no LCD alertando o ocorrido e dispare o alarme, caso contrário, o alarme deverá permanecer mudo, e essa informação deverá ser mostrada no LCD.
Dúvidas:
E-mail: jorge.eider@gmail.com
WhatsApp: (55) 84-99988-4136
|
|