A pouco tempo atrás, publicamos um post mostrando como conectar um display oled na Digispark Attiny85. O post de hoje vai ser um post no estilo “2 em 1”: vamos mostrar como usar a Digispark com display LCD 16×2 I2C, e também como mostrar nesse display as informações de temperatura e umidade usando um sensor de temperatura DHT11.

O uso do display LCD 16×2 I2C com a Digispark permite mostrar de maneira simples informações como temperatura, contadores e mensagens de aviso sem grandes recursos gráficos, consequentemente economizando a memória do microcontrolador.

Conexão do DHT11 e LCD 16×2 I2C

Para conectar o sensor e o display na Digispark, vamos rever a pinagem do módulo, observando que vamos precisar da interface I2C (destacada em verde na imagem abaixo), que está nos pinos D0 (SDA) e D2 (SCL) para conectar o display LCD 16×2 I2C:

Pinagem Digispark ATtiny85

Já o sensor de temperatura e umidade DHT11 será conectado na porta digital 1 (D1).

Usaremos uma mini protoboard para realizar as conexões, e o nosso circuito fica assim:

Circuito Digispark ATtiny85 DHT11 e LCD 16x2 I2C

Você pode usar tanto a Digispark com conector micro USB quanto o modelo que você liga direto na porta USB. O esquema de conexão é o mesmo.

Programa Digispark com DHT11 e display LCD 16×2 I2C

Para usar a Digispark com o display LCD 16×2 I2C, vamos usar a biblioteca TinyWireM. Essa biblioteca é instalada quando você adiciona a Digispark na IDE do Arduino (para ver como usar a Digispark ATtiny85 com a IDE, instalação de drivers e exemplo básico, acesse este post). 

O DHT11 será usado com a biblioteca TinyDHT,uma biblioteca otimizada pra uso com esse tipo de microcontrolador e está disponível para instalação na própria IDE do Arduino.

Para instalar, acesse o menu Sketch -> Instalar biblioteca -> Gerenciar Bibliotecas e procure por TinyDHT:

Instalação biblioteca TinyDHT na IDE Arduino

A leitura da temperatura e umidade é feita à cada 5 segundos. Não se esqueça de desconectar a Digispark do seu computador ao compilar o programa. Reconecte apenas quando solicitado pela IDE (Plug in Device Now, ou Conecte o dispositivo agora):

Aviso de conexão do dispositivo

Vamos então ao programa, lembrando que você deve colocar, na linha 16, o endereço I2C do display que vc está usando (os endereços mais comuns são 0x27 e 0x3F):

//Programa: Digispark com DHT11 e display LCD 16x2 I2C
//Autor: Arduino e Cia

//I2C Master lib para ATTiny
#include <TinyWireM.h>
#include <LiquidCrystal_I2C.h>
#include <TinyDHT.h>

//Define o tipo do sensor DHT
#define DHTTYPE DHT11

//Sensor conectado no pino 1 Digispark
#define DHTPIN 1

//Endereco I2C do display LCD 16x2
#define END_DISP     0x27

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(END_DISP, 16, 2);

void setup()
{
  //Inicializa a biblioteca I2C
  TinyWireM.begin();
  //Inicializa o LCD
  lcd.init();
  //Inicializa o DHT22
  dht.begin();
  lcd.backlight();
}

void loop()
{
  //Leitura da umidade
  int8_t h = dht.readHumidity();
  //Leitura da temperatura: Use 0 para
  //Celsius, 1 para Fahrenheit
  int16_t t = dht.readTemperature(0);

  //Verifica se o sensor esta respondendo
  if ( t == BAD_TEMP || h == BAD_HUM )
  {
    lcd.clear();
    lcd.print("Erro sensor!");
  }
  else
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Temp.:    C");
    lcd.setCursor(7, 0);
    lcd.print(t);
    lcd.setCursor(0, 1);
    lcd.print("Umid.:    %");
    lcd.setCursor(7, 1);
    lcd.print(h);
  }
  delay(5000);
}

Após o carregamento, aguarde alguns segundos e a sua Digispark irá mostrar as informações de temperatura e umidade no display.

Gostou? Então confira outros posts usando Digispark ATtiny85 aqui mesmo no Arduino e Cia!

5/5 - (1 voto)