Help with arduino code on temperature controller

Good evening guys, I need help with an arduino code. I'm trying to copy, but it does not work. The program is a temperature controller with relay. The problem is to edit the value of the maximum and minimum temperature through buttons to activate and deactivate the relay. Can someone help me?

CODE_______

#include <DHT.h> //Inclui a bilbioteca DHT
#include <LiquidCrystal.h> //Inclui a biblioteca LiquidCrystal
#define DHTPIN 12 //Define o pino do DHT no Arduino
#define DHTTYPE DHT11 //Define modelo do DHT
#define pino_rele 13 //Define o pino de ativação da relé
#define pino_aumenta_max 8 //Define o pino de entrada para aumentar a temperatura máxima
#define pino_diminui_max 9 //Define o pino de entrada para diminuir a temperatura máxima
#define pino_aumenta_min 10 //Define o pino de entrada para aumentar a temperatura mínima
#define pino_diminui_min 11 //Define o pino de entrada para diminuir a temperatura máxima

int temp_min = 20; //Define temperatura mínima
int temp_max = 22; //Define temperatura máxima
int tm; //Define a variável temperatura como inteira
int hm; //Define a variável humidade como inteira
int aumenta_max, diminui_max; //Lista as variáveis do botão de temperatura máxima
int aumenta_min, diminui_min; //Lista as variáveis do botão de temperatura mínima
LiquidCrystal lcd(1, 3, 4, 5, 6, 7); //Define os pinos do LCD (RS, E, D4, D5, D6, D7)
DHT dht (DHTPIN, DHTTYPE);

byte grau[8] ={ B00001100, //Montagem do simbolo "grau"
B00010010, //Montagem do simbolo "grau"
B00010010, //Montagem do simbolo "grau"
B00001100, //Montagem do simbolo "grau"
B00000000, //Montagem do simbolo "grau"
B00000000, //Montagem do simbolo "grau"
B00000000, //Montagem do simbolo "grau"
B00000000,}; //Montagem do simbolo "grau"

unsigned long previousMillis = 0;
const long interval = 2000; //Intervalo de tempo da medida

void draw()
{
lcd.setCursor(0,0); //Posiciona o cursor no canto superior esquerdo do display
lcd.print("Temp: "); //Mostra o texto "Temp" no LCD
lcd.print(" "); //Adiciona um caractere de espaço
lcd.setCursor(8,0); //Posiciona a informação de temperatura aferida pelo sensor
lcd.print(tm,1); //Inclui a informação de temperatura aferida pelo sensor
lcd.setCursor(11,0); //Posiciona o símbolo de grau formado pelo array
lcd.write((byte)0); //Mostra o símbolo de grau formado pelo array
lcd.print("C"); //Mostra o símbolo da unidade Celsius
lcd.print(" "); //Adiciona um caractere de espaço
lcd.print(temp_max,1); //Inclui a informação de temperatura máxima setada
lcd.setCursor(15,0); //Posiciona a informação da temperatura máxima setada

lcd.setCursor(0,1); //Posiciona o cursor no canto inferior esquerdo do display
lcd.print("Umid : "); //ostra o texto "Umid" no LCD
lcd.print(" "); //Adiciona um caractere de espaço
lcd.setCursor(8,1); //Posiciona a informação de umidade aferida pelo sensor
lcd.print(hm,1); //Inclui a informação de umidade aferida pelo sensor
lcd.setCursor(11,1); //Posiciona o símbolo de porcentagem
lcd.print("%"); //Mostra o símbolo de porcentagem de umidade
lcd.print(" "); //Adiciona um caractere de espaço
lcd.print(temp_min,1); //Inclui a informação de temperatura mínima setada
lcd.setCursor(15,1); //Posiciona a informação da temperatura mínima setada

if (tm >= temp_min && tm <= temp_max) //Condição para acionamento do módulo Relé

{ //Se tm (temp. medida) for maior/igual que temp_min (temp. minima)
digitalWrite(pino_rele, LOW); //O módulo Relé liga
}
else
{ //Se tm (temp. medida) for menor que temp_min (temp. minima)
digitalWrite(pino_rele, HIGH); //O módulo Relé desliga
}
}

void setup(void)
{
Serial.begin(9600); //Iniciliza a porta serial
lcd.begin(16,2); //Inicializa o LCD e especifica sua dimensao
lcd.clear(); //Limpa o LCD
lcd.createChar(0, grau); //Cria o caractere de grau
pinMode(pino_rele, OUTPUT); //Seta o pino como saída
pinMode(pino_aumenta_max, INPUT); //Seta o pino como entrada
pinMode(pino_diminui_max, INPUT); //Seta o pino como entrada
pinMode(pino_aumenta_min, INPUT); //Seta o pino como entrada
pinMode(pino_diminui_min, INPUT); //Seta o pino como entrada
}

void loop(void)
{
unsigned long currentMillis = millis(); //Timer para ler o valor da temperatura
{
tm = dht.readTemperature(); //Leitura do valor de temperatura
hm = dht.readHumidity(); //Leitura do valor de umidade
previousMillis = currentMillis;
}
aumenta_max = digitalRead(pino_aumenta_max); //Lê o pino de entrada para aumentar a temperatura máxima
if (aumenta_max == 1)
{temp_max++;}
while (digitalRead(pino_aumenta_max) == 1)
{delay(10);}

diminui_max = digitalRead(pino_diminui_max); //Lê o pino de entrada para diminuir a temperatura máxima
if (diminui_max == 1)
{temp_max--;}
while (digitalRead(pino_diminui_max) == 1)
{delay(10);}

aumenta_min = digitalRead(pino_aumenta_min); //Lê o pino de entrada para aumentar a temperatura mínima
if (aumenta_min == 1)
{temp_min++;}
while (digitalRead(pino_aumenta_min) == 1)
{delay(10);}

diminui_min = digitalRead(pino_diminui_min); //Lê o pino de entrada para diminuir a temperatura mínima
if (diminui_min == 1)
{temp_min--;}
while (digitalRead(pino_diminui_min) == 1)
{delay(10);}

do
{
draw();
}
while (lcd.display());

delay(50); //Intervalo de leitura do sensor

}

DHT11_com_arduino.ino (6.82 KB)

Bom dia

Realmente não compila, segue mensagem de erro:

Arduino: 1.8.8 (Windows 7), Placa:"Arduino/Genuino Uno"

In file included from D:\Denilson\Arduino\arduino-1.8.8-windows\arduino-1.8.8 - Portable\libraries\DHT-sensor-library-master\DHT_U.cpp:22:0:

D:\Denilson\Arduino\arduino-1.8.8-windows\arduino-1.8.8 - Portable\libraries\DHT-sensor-library-master\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

compilation terminated.

exit status 1
Erro compilando para a placa Arduino/Genuino Uno

Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"

Quem puder ajudar ...

Dzlisboa

Tens de instalar a biblioteca Adafruit_sensor

Sabes como instalar?