//Declaração do sensor de temperatura
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire pino(30);
DallasTemperature barramento(&pino);
DeviceAddress sensor1;
int temperatura1;
//Declaração do Display de LCD
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
//Declaração dos botões
const int bot1 = 6, bot2 = 5,
bot3 = 4, bot4 = 3, rele = 40;
//Declaração dos Leds
const int led1 = 49, led2 = 50,
led3 = 51, buzzer = 24;
//Declaração do ultrassônico 1
const int trig = 22, echo = 23;
float distancia;
//demais variaveis
int aux1 = 0;
//////////////////////////////////////////
void setup() {
//Iniciando o sensor de temperatura
barramento.begin();
barramento.getAddress(sensor1, 0);
//Iniciando o display
lcd.begin(16, 2);
//Iniciando os botões
pinMode(bot1, INPUT_PULLUP);
pinMode(bot2, INPUT_PULLUP);
pinMode(bot3, INPUT_PULLUP);
pinMode(bot4, INPUT_PULLUP);
pinMode(rele, OUTPUT);
digitalWrite(rele, 1);
//Iniciando os leds
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
//inicialização do ultrassônico 1
pinMode (trig, OUTPUT);
pinMode (echo, INPUT);
digitalWrite(trig, 0);
//Mensagem inicial do display
lcd.setCursor(0, 0);
lcd.print("Sistema Pronto");
lcd.setCursor(0, 1);
lcd.print("Aguardando...");
delay(1000);
}
/////////////////////////////////////////
void loop() {
//leitura dos sensores de temperatura
barramento.requestTemperatures();
temperatura1 = barramento.getTempC(sensor1);
//leitura do ultrassônico 1
digitalWrite(trig, 1);
delay(10);
digitalWrite(trig, 0);
distancia = pulseIn (echo, HIGH);
distancia = distancia / 58;
//////////////////////////////////////
//Programação:
/////////////////////////////////////
//Botão de desligar
if (digitalRead(bot1) == 0) {
digitalWrite(led1, 0);
digitalWrite(led2, 1);
digitalWrite(led3, 0);
digitalWrite(rele, 1);
aux1 = 0;
}
//Botão de ligar
if (digitalRead(bot2) == 0) {
digitalWrite(led1, 1);
digitalWrite(led2, 0);
digitalWrite(rele, 0);
aux1 = 1;
}
if (aux1 > 0 && temperatura1 >= 80)
{
digitalWrite(led3, HIGH);
lcd.setCursor(0, 1);
lcd.print("Temperatura Alta ");
}
else
{
digitalWrite(led3, LOW);
lcd.setCursor(0, 1);
lcd.print(" ");
}
if (distancia <= 5)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("RESERVATORIO");
lcd.setCursor(0, 1);
lcd.print("CHEIO!");
tone(buzzer, 1000);
delay(300);
noTone(buzzer);
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
digitalWrite(rele, 1);
}
//Controle da variavel display
if (aux1 > 0 && digitalRead(bot3) == 0)
{
aux1++;
while (digitalRead(bot3) == 0)
if (aux1 == 2)
aux1 = 1;
}
if (aux1 == 0) {
lcd.setCursor(0, 0);
lcd.print("Processo ");
lcd.setCursor(0, 1);
lcd.print("Desligado ");
}
if (aux1 == 1) {
lcd.setCursor(0, 0);
lcd.print("temp 1: ");
lcd.print(temperatura1);
lcd.print(" ");
}
if (aux1 == 2) {
lcd.setCursor(0, 0);
lcd.print("dist 1: ");
lcd.print(distancia);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
}
}
distancia
distancia1
bot1
bot2
bot3
bot4
bot5
led1
led2
led3