Projeto de cafeteira

Estou começando nessa parte de programação e tenho um projeto para ser feito já, é um projeto smples, apenas ligar uma cafeteira simples, através de programação de um arduino.
A minha ideia é de ao clicar em um botão, bata um rele e o mesmo fique alterando conforme a temperatura (de 95 a 100 °), pois essa cafeteira joga a água conforme a mesma entra em ebulição. Quando o café estiver pronto, quero que, ao apertar outro botão, a parte de comando do primeiro botão desligue e vá para o segundo, que seria a cafeteira apenas manter uma temperatura (de 70 até 80°C mais ou menos) e ao clicar novamente no botão, desligue a cafeteira. Preciso que também seja mostrado a temperatura em um display e queria alguma mensagem a mais, tipo ao clicar no primeiro botão “Esquentando a água”, e ao apertar o outro botão “Café pronto, sirva-se”.
O sensor de temperatura que estou usando é o DS18B20.
O código abaixo é o que eu desenvolvi pesquisando algumas coisas e com outras que aprendi, mas o mesmo não está acionando quando eu aperto os botões, talvez seja algo simples, mas eu não estou conseguindo resolver. Se alguém conseguir me dar uma ajudinha, agradeço!

const int botao = 10;
const int botao2 = 8;
const int rele = 13;
const int rele2 = 9;

int buttonstate = 1;

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

// Porta do pino de sinal do DS18B20
#define ONE_WIRE_BUS 3

// Define uma instancia do oneWire para comunicacao com o sensor
OneWire oneWire(ONE_WIRE_BUS);

// Armazena temperaturas minima e maxima
float tempMin = 999;
float tempMax = 0;

DallasTemperature sensors(&oneWire);
DeviceAddress sensor1;

// Inicializa o LCD
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);

void setup()
{
pinMode(rele, OUTPUT);
pinMode(botao, INPUT);
pinMode(rele2, OUTPUT);
pinMode(botao2, INPUT);

Serial.begin(9600);
sensors.begin();
// Localiza e mostra enderecos dos sensores
Serial.println(“Localizando sensores DS18B20…”);
Serial.print(“Foram encontrados “);
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(” sensores.”);
if (!sensors.getAddress(sensor1, 0))
Serial.println(“Sensores nao encontrados !”);
// Mostra o endereco do sensor encontrado no barramento
Serial.print("Endereco sensor: ");
mostra_endereco_sensor(sensor1);
Serial.println();
Serial.println();
lcd.begin(16, 2);
}

void mostra_endereco_sensor(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
// Adiciona zeros se necessário
if (deviceAddress[i] < 16) Serial.print(“0”);
Serial.print(deviceAddress[i], HEX);
}
}

void loop()
{
// Le a informacao do sensor
sensors.requestTemperatures();
float tempC = sensors.getTempC(sensor1);

//ligou rele1
if (digitalRead (botao) == HIGH)
{
digitalWrite (rele2, LOW);
delay(1);
if (digitalRead(botao) == LOW)
{
if (tempC < 95)
{
digitalWrite (9, HIGH);
}
else if (tempC > 100)
{
digitalWrite (9, LOW);
}
}
}

//ligou rele2
else if (digitalRead (botao2) == HIGH)
{
digitalWrite (rele, LOW);
delay(1);
if (digitalRead(botao2) == LOW)
{
if (tempC < 70)
{
digitalWrite (13, HIGH);
}
else if (tempC > 80)
{
digitalWrite (13, LOW);
}
}
}

// Mostra dados no serial monitor

Serial.print("Temp C: ");
Serial.println(tempC);

// Mostra dados no LCD
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp.: ");
//Simbolo grau
lcd.write(223);
lcd.print(“C”);
lcd.setCursor(7,0);
lcd.print(tempC);
delay(3000);
}

Fala @leonhardttiago teria como postar foto do projeto para melhor solução do seu problema?

Att
Max