Anda di halaman 1dari 3

Digispark Attiny 85 DHT11 Display LCD 16x2

R1 = 1K Ω DHT 11
1 2 3 4

P0 R1
Digispark P1
Attiny 85 P2
P3 Botão
P4
P5

5V GND Vin

GND
VCC Interface
SDA I2C LCD
SCL

LCD
#include <LiquidCrystal_I2C.h>

#include <TinyWireM.h>

#include <TinyDHT.h>

#define DHTTYPE DHT11 // DHT 11


#define DHTPIN 1 // Sensor conectado no P1

#define botao 3 //botão de amostra


//Pino P3 possui resistor de pul-up interno a placa
//então temos que trabalhar em low

//Endereco I2C do display LCD 16x2


#define END_DISP 0x27

int buttonState = 0; // variavel para ler o estado do botao

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(END_DISP, 16, 2);

void setup() {
pinMode(botao, INPUT);

//Inicializa a biblioteca I2C


TinyWireM.begin();
//Inicializa o LCD
lcd.init();
lcd.backlight();
dht.begin();
}
void loop() {
buttonState = digitalRead(botao);

//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 {
if ( buttonState == LOW ) {
lcd.backlight();
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);
} else {
lcd.clear();
lcd.noBacklight();
}
}