Medindo temperatura e umidade com Arduino UNO utilizando Si7021 e LCD

Si7021

Introdução

 

Um dos projetos mais básicos e mais divertidos de se fazer com o Arduino é criar sua pequena estação meteorológica. É um projeto especialmente divertido pois permite que o Arduino interaja com o ambiente, além de requisitar pouquíssimos materiais. E é isso que que este artigo irá ensiná-lo a fazer. Mãos à obra!

 

 

LCD

 

O display LCD (Liquid Crystal Display) que utilizarei possui 16 colunas e 2 linhas, com luz de fundo azul e letras brancas. Ele é baseado no controlador SPLC780D, um clone popular do HD44780. Possui 16 pinos, dos quais 12 são usados para conexões básicas.

 

 

Si7021 (Temperatura e Umidade)

 

O sensor de temperatura e umidade que utilizarei é o Si7021 fabricado pela Adafruit. Ele utiliza I2C para transferência de dados, portanto funciona com a maioria dos microcontroladores. Ele registra temperaturas de -10°C até 85°C.

 

 

Materiais

 

  • Arduino UNO (1)
  • Sensor de temperatura e umidade (Si7021) (2)
  • Potenciômetro B100K (3)
  • LCD 1602A (4)
  • Jumpers (5)

 

Importante: Os modelos utilizados por mim são apenas sugestões. Outros modelos funcionam igualmente.

 

Materiais utilizados.
Figura 1 - Materiais utilizados.

 

 

Preparação do Hardware

 

  1. Com os materiais em mãos, vamos começar a montagem: Conecte o display LCD, o sensor e o potenciômetro na protoboard.
  2. Faça as conexões utilizando os jumpers conforme a figura a seguir:

 

Importante: o modelo do sensor da figura é diferente do modelo que eu estou utilizando, mas, como as portas usadas são as mesmas, não faz diferença.

 

Diagrama do projeto elaborado no Fritzing.
Figura 2 - Diagrama do projeto elaborado no Fritzing.

 

 

Programação

 

Importante: Para a programação do código, estarei utilizando o Visual Studio Code com PlatformIO IDE. Para aprender a usar esta plataforma, acesse o artigo.

 

  1. Abra o VSCode e o PIO Home em seguida (Figura 3).

 

PIO Home.
Figura 3 - PIO Home.

 

2. Já na IDE, clique em Libraries, do lado esquerdo esquerdo do ícone do PlatformIO (Figura 4).

 

Libraries.
Figura 4 - Libraries.

 

3. Digite no campo de busca "Adafruit Si7021". Clique na biblioteca então clique em "Install" (Figura 5).

 

Instalando a biblioteca.
Figura 5 - Instalando a biblioteca.

 

4. Pronto! Com a biblioteca já instalada, volte para o PIO Home e crie um novo projeto com Arduino UNO: Hora de programar!

 

5. Para consultar o código usado, acesse o Git. Aqui segue uma explicação detalhada da função exercida por cada comando dentro do código.

 

O código.
Figura 6 - O código.

 

#include <Arduino.h> /*Chama a biblioteca relacionada ao Arduino*/
#include <LiquidCrystal.h> /*Chama a biblioteca relacionada ao display LCD*/
#include <Adafruit_Si7021.h> /*Chama a biblioteca relacionada ao sensor de temperatura e umidade (Si7021)*/

Adafruit_Si7021 sensor = Adafruit_Si7021(); /*Cria o objeto Adafruit Si7021. Detalhe: como estamos usando I2C, não há pinos*/

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7); /*Associa os pinos da interface LCD aos pinos no Arduino aos quais eles estão conectados*/

sensor.begin(); /*Inicializa o sensor*/

lcd.begin(16, 2); /*Estabelece o número de colunas e fileiras do LCD (no caso, 2 fileiras e 16 colunas)*/

lcd.print(); /*Imprime a informação contida entre os parênteses no display*/

lcd.setCursor(7,0); /*Estabelece o local do cursor (no caso, linha 0 e coluna 7)*/

sensor.readHumidity(); /*Lê a umidade*/

sensor.readTemperature(); /*Lê a temperatura*/

 

6. Passe o código para o Arduino e tudo deve funcionar. Caso não veja direito no display, gire o potenciômetro para alterar o contraste.

 

 

Conclusão

 

Parabéns, agora você é o portador de uma incrível estação meteorológica em miniatura! Além disso, os aprendizados adquiridos com este artigo abrem portas para diversos outros tipos de projetos, como um cronômetro utilizando o display ou até uma estação meteorológica monitorada pelo celular. Gostaria de acrescentar que o código para este e para todos os meus outros artigos publicados pelo Embarcados podem ser encontrados aqui. Aproveite e me siga lá!

 

 

Saiba mais

 

MQTT-SN: MQTT para rede de sensores

Introdução à Calibração de Sensores

Medindo vazão utilizando um sensor ultra-sônico de distância

Usando o sensor de temperatura na LPCXpresso4337 no mbed

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Giovanni Cerqueira
17 anos. Apaixonado por programação e placas de desenvolvimento. Sou especialmente fã da plataforma Arduino, na qual tenho mais experiência. De vez em quando me aventuro com RaspberryPi. Iniciante na área, busco sempre aprender coisas novas.

Deixe um comentário

avatar
 
  Notificações  
Notificar