Sensor de temperatura HDC1080 com Arduino

Hoje vamos mostrar como usar o Sensor de Temperatura e Umidade HDC1080 com Arduino Uno, uma excelente opção para o seu projeto de automação residencial ou estação meteorológica usando Arduino.

Por utilizar a interface I2C, é um sensor muito simples de conectar pois usa somente dois fios para comunicação com o microcontrolador.

O sensor de temperatura e umidade HDC1080

HDC1080 (datasheet) é um sensor de temperatura e umidade de alta precisão com 14 bits de resolução, precisão de temperatura de 0,2 °C e de umidade 2%, realizando medições entre -40 e +125 °C. A comunicação é feita pela interface I2C, o que facilita bastante a conexão e utilização com os mais diversos tipos de placas e microcontroladores, já que a maioria conta com I2C nativo.

Você pode alimentar este módulo com tensões entre 2.7 e 5.5 VDC, e na placa temos também dois furos que podem ser utilizados para fixação.

Circuito HDC1080 com Arduino

Neste teste vamos usar o sensor de temperatura e umidade HDC1080 com Arduino Uno e um display LCD 16×2 I2C. Isso vai simplificar a conexão já que tanto o sensor como o display LCD vão usar o mesmo barramento para comunicação com o Arduino.

Na imagem acima, os mesmo pinos que estamos usando para ligar o sensor serão usados também para conexão com o display: pinos VCC (5V), GND, SDA (conectado ao pino A4 do Arduino) e SCL (pino A5).

Biblioteca e programa sensor HDC1080

Antes de mais nada vamos instalar as bibliotecas necessárias para que o programa funcione corretamente. A primeira é a biblioteca do display I2C, a LiquidCrystal I2C

Instale à partir da IDE do Arduino, no menu Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Procure por “liquidcrystal_i2c” e clique em instalar, conforme a imagem abaixo:

Faça o mesmo com a biblioteca ClosedCube HDC1080, procurando por “hdc1080” no Gerenciador de Biblioteca:

Após a instalação, carregue o programa abaixo na IDE do Arduino:

//Programa: Sensor de temperatura e umidade HDC1080 com Arduino
//Autor: Arduino e Cia

#include <Wire.h>
#include <ClosedCube_HDC1080.h>
#include <LiquidCrystal_I2C.h>

ClosedCube_HDC1080 hdc1080;

//Inicializa o display no endereco 0x3B
//e define o numero de colunas e linhas do display
LiquidCrystal_I2C lcd(0x3B, 16, 2);

//Array que desenha o simbolo de grau
byte grau[8] = {B00110, B01001, B01001, B00110,
                B00000, B00000, B00000, B00000,};

void setup()
{
  Serial.begin(9600);

  //Inicializa o HDC1080 no endereço 0x40
  hdc1080.begin(0x40);

  Serial.println("Sensor HDC1080 com Arduino");

  //Inicializa o display LCD I2C
  lcd.init();
  lcd.backlight();

  //Atribui a "1" o valor do array "grau", que desenha o simbolo de grau
  lcd.createChar(1, grau);

  //Mostra no display as informações iniciais
  lcd.setCursor(0, 0);
  lcd.print("Temp.: XX.XX  C");
  lcd.setCursor(0, 1);
  lcd.print("Umid.: YY.YY %");
}

void loop()
{
  //Le os valores de temperatura e umidade
  float t = hdc1080.readTemperature();
  float h = hdc1080.readHumidity();

  //Mostra os valores no display
  lcd.setCursor(7, 0);
  lcd.print(t);
  lcd.setCursor(13, 0);
  lcd.write(1);
  lcd.setCursor(7, 1);
  lcd.print(h);

  //Mostra os valores no Serial Monitor
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.print(" C, Umidade: ");
  Serial.print(h);
  Serial.println(" %");
  delay(3000);
}

No programa acima, inicializamos o sensor HDC1080 com o endereço padrão 0x40 na linha 23. Depois disso a leitura dos dados de temperatura e umidade é feita nas linhas 44 e 45, respectivamente. Os valores são então mostrados tanto no display como no serial monitor:

Se quiser conhecer outros sensores de temperatura para o Arduino, clique aqui e confira posts sobre DHT11, DHT22, LM35 e DS18B20 aqui mesmo no Arduino e Cia!

5/5 - (3 votos)

Related posts

Tutorial: como acessar a internet com o Arduino GSM Shield SIM900

by Arduino e Cia
9 anos ago

Resistor de elevação

by Arduino e Cia
12 anos ago

Contador de visitantes com Arduino usando led IR e fototransistor

by Arduino e Cia
10 anos ago
Sair da versão mobile