blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Sistema
  • Código no App Inventor
  • Materiais Necessários para o Projeto Automatização do Processo de Brassagem
  • Diagrama
  • Código Fonte
  • Considerações Finais
  • Sobre o Autor
Automação Residencial

Automatização do Processo de Brassagem

Eletrogate 21 de junho de 2022Atualizado em: 31 mar 2023

Introdução

Este projeto foi desenvolvido para ser implementado junto à panela de brassagem. Essa ideia tem, como base, a automação de processos longos e repetitivos, que são essenciais, por exemplo, na produção de cerveja.

Avisos importantes:

  • O consumo de bebidas alcoólicas por menores de 18 anos é proibido no Brasil. Por isso, este projeto deve ser implementado, exclusivamente, por pessoas com maior idade legal.
  • RISCO DE QUEIMA: Alguns dos procedimentos abordados neste post envolvem líquidos e objetos em altas temperaturas. Tome muito cuidado e tenha muita atenção ao acompanha-los.
  • A Eletrogate não se responsabiliza por danos, de qualquer categoria, ocorridos durante ou em decorrência da implementação deste projeto.

Sistema

O sistema consiste em uma panela de brassagem que será monitorada e controlada por um Uno. Este trocará informações com um celular por meio do módulo HC-05. A temperatura da panela será aferida por um sensor submersível e aumentada por uma resistência de alta potencia. No Arduino, estarão gravadas algumas receitas, dentre as quais poder-se-á escolher em um app, do qual o desenvolvimento é abordado no post. Além da temperatura, a placa gerenciará, também, os tempos envolvidos nos processos.


Código no App Inventor

Para realizar o controle do sistema, foi desenvolvido, no site MIT App Inventor, um aplicativo para Android. Caso seja seu primeiro contado com a plataforma de desenvolvimento, recomendamos que acesse os tutoriais da própria MIT App Inventor e o post “Controlando um led com movimentos do celular“, em nosso blog, que aborda o tema. Logo abaixo, temos a imagem que mostra a tela principal do aplicativo. Nela, encontramos alguns textos introdutórios e dois botões, chamados de “Procedimento 1” e “Procedimento 2”, que quando pressionados encaminham o usuário para uma nova página. Lá, ele realizará o controle do sistema e da receita escolhida.

Já na imagem abaixo, temos o código que permite essa troca de páginas. O “botão 1” representa o procedimento 1, que, quando selecionado, abre uma outra tela, chamada receita 1. O “botão 2” representa o procedimento 2, que, quando selecionado, abre a “receita 2”.

Em seguida, podemos ver a tela para a qual o cliente é direcionado após clicar em um dos botões. Nela, temos o nome da receita, posicionado no topo da tela, e o botão que, quando pressionado, envia uma letra “A”, via bluetooth, para o Uno, que a recebe em sua porta serial. Após a inicialização do processo, temos, no aplicativo, dois botões: “sim” e “não”. Eles servem para responder as questões que aparecerão no LCD. Abaixo, temos o botão do bluetooth. Quando pressionado, ele abre uma lista dos dispositivos bluetooth ao redor do smartphone. Nela, basta que você escolha o endereço código referente ao HC-05.

O código em blocos abaixo mostra a configuração do bluetooth. Quando pressionada, a “EscolheLista1”, representada pela imagem do símbolo do bluetooth, irá abrir uma lista de opções de aparelhos bluetooth na região.

O código abaixo trata da receita 1. Nele, podemos fazer uma breve analise. Quando o botão “iniciar” é acionado, ele envia um string para o Arduino.

Código da página da receita 2.


Materiais Necessários para o Projeto Automatização do Processo de Brassagem

  • Uno R3 + Cabo USB para Arduino
  • Display LCD 16×2 com I2C e Backlight Azul
  • Módulo Bluetooth HC-05
  • Módulo Relé 5V 30A
  • Resistencia de baixa densidade
  • Panela Brassagem
  • Sensor de Temperatura DS18B20 a Prova D’água
  • Resistor 220R 1/4W (10 Unidades)
  • Resistor 4K7 1/4W (10 Unidades)
  • Resistor 1K 1/4W (10 Unidades)
  • LED difuso verde
  • Fonte 5V 1A
  • Protoboard 830 pontos
  • Jumpers – Macho/Macho – 20 Unidades de 20cm

cta_cart


Diagrama

Para melhor compreensão, iremos fazer uma breve descrição das conexões que temos no diagrama acima. No Arduino, temos o “pino 13” configurado como entrada, que está ligado ao sensor de temperatura. Já o “pino 7” está como saída, que é conectado ao LED e ao módulo rele. O modulo bluetooth tem seus pinos GND e VCC conectados ao barramento da protoboard. Já os pinos TX e RX estão conectados ao Arduino. A conexão RX passa pelo divisor de tensão e, depois, entra no módulo. Por fim, temos o LCD, que é energizado pelo barramento e tem seus pinos SCL e SDA ligados aos pinos A5 e A4, respectivamente, do Arduino.


Código Fonte

Os procedimentos e parâmetros implementados neste código estão presentes no livro de receitas, disponível gratuitamente, no site sinnatrah.

#include <Wire.h> //INCLUSÃO DE BIBLIOTECA
#include <LiquidCrystal_I2C.h> //INCLUSÃO DE BIBLIOTECA

LiquidCrystal_I2C lcd(0x27,16,2);

#include <SoftwareSerial.h>//INCLUSÃO DE BIBLIOTECA
#include <OneWire.h>  //INCLUSÃO DE BIBLIOTECA
#include <DallasTemperature.h>//INCLUSÃO DE BIBLIOTECA

const int pinoRX = 2; //PINO DIGITAL 2 (RX)
const int pinoTX = 3; //PINO DIGITAL 3 (TX)
SoftwareSerial bluetooth(pinoRX, pinoTX); //PINOS QUE EMULAM A SERIAL, ONDE
//O PINO 2 É O RX E O PINO 3 É O TX
char dadoBluetooth = 0; // variavel que amarzena dados do bluetooth
#define led 7 // definindo o pino 7 como led 
#define dados 13// definindo o pino 13 como dados
OneWire oneWire(dados);  /* Protocolo OneWire */
/********************************************************************/
DallasTemperature sensors(&oneWire); /* encaminha referências OneWire para o sensor */
/********************************************************************/ 
/*****variveis*******/
int conta;
int escolha = 0;
int sensor = 0;

int sim = 0;
int nao = 0;

int ssim;
int nnao;

unsigned long time;
int realtemp;
int minu;
int seg;
/*************/
void setup() {
  Serial.begin(9600);// iniciando a serial 
  bluetooth.begin(9600);// inicia biblioteca 
  lcd.init();//inicia biblioteca 
  sensors.begin(); // inicia biblioteca 
  lcd.backlight();//inicia biblioteca 

  pinMode(led,OUTPUT);// definindo pino led como saida 
  lcd.setCursor(2,1);// iniciando curso na posição 
  lcd.print("escolha sua"); //escreve no LCD
  lcd.setCursor(0,2);// iniciando curso na posição 
  lcd.print("receita pelo app");//escreve no LCD
  delay(5000);
  lcd.clear(); //limpa o LCD
}
void loop(){
 
if(bluetooth.available()){ //SE O BLUETOOTH ESTIVER HABILITADO, FAZ
       dadoBluetooth = bluetooth.read(); //VARIÁVEL RECEBE O VALOR ENVIADO PELO BLUETOOTH
/*********************/  
  if(dadoBluetooth == 'A'){// se oque for recebido for igual a A 
   conta = 1; 
  }
  /*******/
  if(dadoBluetooth == 'B'){
   conta = 2; 
  }
   /*******************/
   if(dadoBluetooth == 'S'){
   sim = 1;
   nao = 0; 
  }
  if(dadoBluetooth == 'N'){
   nao = 1;
   sim = 0; 
  }
    switch(conta){
case 1:
      receita1();
      //Executa a função um
      break;
/*case 2:
      receita2();//Executa a função um
      break;*/
  }
 }
}
void leituraT(){
sensors.requestTemperatures(); /* Envia o comando para leitura da temperatura */
Serial.print(sensors.getTempCByIndex(0));
}
void receita1(){// subrotida da receita 1
  if(escolha == 0){
    lcd.setCursor(3,0);
    lcd.print("Receita 1");
    lcd.setCursor(2,1);
    lcd.print("Selecionada");
    delay(3000);


    lcd.setCursor(1,0);
    lcd.print("AMERICAN BROWN");
    lcd.setCursor(1,1);
    lcd.print("      ALE        ");
    delay(3000);


    lcd.setCursor(0,0);
    lcd.print(" Adicione Agua ");
    lcd.setCursor(4,1);
    lcd.print("tratada");
    delay(5000);

    lcd.clear();
       /******/
    escolha = 1;
  }
/************decisão 1 *******/
  if(escolha == 1){
    lcd.setCursor(0,0);
    lcd.print("Agua adicionada?");
    lcd.setCursor(0,1);
    lcd.print("sim"           );
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 1){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Iniciando etapa");
      lcd.setCursor(3,1);
      lcd.print("De Mostura  ");
      delay(3000);
       escolha = 20;
      lcd.clear();
        
  }
      if(nao == 1 && escolha == 1){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 1;
  }
/************decisão 2*******/
  if(escolha == 20){
    ssim = 0;
    sim = 0;
    lcd.setCursor(1,0);
    lcd.print("Adicione todos  ");
    lcd.setCursor(5,1);
    lcd.print("maltes");
    delay(3000);
    lcd.clear();
    escolha = 2;
    
}
 if(escolha == 2){
    lcd.setCursor(0,0);
    lcd.print("Maltes inseridos?");
    lcd.setCursor(0,1);
    lcd.print("sim      ");
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 2){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
        
      lcd.setCursor(0,0);
      lcd.print("Inicio das etapas");
      lcd.setCursor(1,1);
      lcd.print("   De Mistura");
      delay(3000);
       escolha = 3;
      lcd.clear();
       
  }
      if(nao == 1 && escolha == 1){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 2;
  }
/********inicio das etapas de mostura********/
while(escolha == 3){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) >= 52){
       
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 15){    //AJUSTE DE TEMPO 
     escolha = 4; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Primeira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/****************************/
while(escolha == 4){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
leituraT();
     if(sensors.getTempCByIndex(0) >= 67){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 60){    //AJUSTE DE TEMPO 
     escolha = 5; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Segunda Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/**********************************/
while(escolha == 5){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 10){    //AJUSTE DE TEMPO 
     escolha = 6; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Terceira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
   }
  
/************fim das 3 atepas de mustura*******/
if(escolha == 6){
    lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Iniciando Etapa  ");
      lcd.setCursor(0,1);
      lcd.print(" De Fervura  ");
      
      delay(3000);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Inicio da Etapa");
      lcd.setCursor(4,1);
      lcd.print("UM");
      delay(3000);
       escolha = 7;
      lcd.clear();
}
/********inicio das etapas de fervura********/
while(escolha == 7){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 30){    //AJUSTE DE TEMPO 
     escolha = 21; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Primeira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
      relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/****************************/
if(escolha == 21){
    lcd.setCursor(0,0);
      lcd.print("Insira o Simcoe");
    lcd.setCursor(6,1);
    lcd.print("6g"         );
    delay(3000);
     lcd.clear();
   escolha = 8;
}
if(escolha == 8){
    lcd.setCursor(0,0);
    lcd.print("Simcoe inserido?");
    lcd.setCursor(0,1);
    lcd.print("sim"           );
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 8){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Inicio da Etapa");
      lcd.setCursor(4,1);
      lcd.print("Dois");
      delay(3000);
       escolha = 9;
      lcd.clear();
        /*****/
  }
      if(nao == 1 && escolha == 8){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 8;
  }
/*******************************/
while(escolha == 9){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 40){    //AJUSTE DE TEMPO 
     escolha = 22; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("segunda Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
      relogio();
       minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/****************************/
if(escolha == 22){
  ssim = 0;
   sim = 0;
    lcd.setCursor(0,0);
    lcd.print("Insira o Simcoe");
    lcd.setCursor(6,1);
    lcd.print("20g"         );
    delay(3000);
     lcd.clear();
   escolha = 10;
}
if(escolha == 10){
    lcd.setCursor(0,0);
    lcd.print("Simcoe inserido?");
    lcd.setCursor(0,1);
    lcd.print("sim"           );
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 10){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Inicio da Etapa");
      lcd.setCursor(4,1);
      lcd.print("três");
      delay(3000);
       escolha = 11;
      lcd.clear();
        /*****/
  }
      if(nao == 1 && escolha == 1){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 8;
  }
/*******************************/
while(escolha == 11){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      relogio();
      lcd.setCursor(13,1);
      //lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 20){    //AJUSTE DE TEMPO 
     escolha = 12; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("terceira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
      relogio();
       minu = 0;
     delay(3000);
     lcd.clear();
     }
 }
    
    
    if(escolha == 12){
    lcd.setCursor(0,0);
    lcd.print("Escolhar sua");
    lcd.setCursor(0,1);
    lcd.print("Proxima receita");
    delay(2000);
    lcd.setCursor(1,0);
    lcd.print("Voltando para");
    lcd.setCursor(5,1);
    lcd.print("O menu");
    delay(2000);
      conta = 0;
      escolha = 0;
      lcd.clear();
  }
}

void receita2(){// subrotida da receita 1
  if(escolha == 0){
    lcd.setCursor(3,0);
    lcd.print("Receita 2");
    lcd.setCursor(2,1);
    lcd.print("Selecionada");
    delay(3000);


    lcd.setCursor(1,0);
    lcd.print("TRAPPIST STYLE");
    lcd.setCursor(1,1);
    lcd.print("   SINGLE     ");
    delay(3000);


    lcd.setCursor(0,0);
    lcd.print(" Adicione Agua ");
    lcd.setCursor(4,1);
    lcd.print("tratada");
    delay(5000);

    lcd.clear();
       /******/
    escolha = 1;
  }
/************decisão 1 *******/
  if(escolha == 1){
    lcd.setCursor(0,0);
    lcd.print("Agua adicionada?");
    lcd.setCursor(0,1);
    lcd.print("sim"           );
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 1){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Iniciando etapa");
      lcd.setCursor(3,1);
      lcd.print("De Mostura  ");
      delay(3000);
       escolha = 20;
      lcd.clear();
        
  }
      if(nao == 1 && escolha == 1){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 1;
  }
/************decisão 2*******/
  if(escolha == 20){
    ssim = 0;
    sim = 0;
    lcd.setCursor(1,0);
    lcd.print("Adicione todos  ");
    lcd.setCursor(5,1);
    lcd.print("maltes");
    delay(3000);
    lcd.clear();
    escolha = 2;
    
}
 if(escolha == 2){
    lcd.setCursor(0,0);
    lcd.print("Maltes inseridos?");
    lcd.setCursor(0,1);
    lcd.print("sim      ");
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 2){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
        
      lcd.setCursor(0,0);
      lcd.print("Inicio das etapas");
      lcd.setCursor(1,1);
      lcd.print("   De Mistura");
      delay(3000);
       escolha = 3;
      lcd.clear();
       
  }
      if(nao == 1 && escolha == 1){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 2;
  }
/********inicio das etapas de mostura********/
while(escolha == 3){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
      if(sensors.getTempCByIndex(0) >= 45){
     
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 5){    //AJUSTE DE TEMPO 
     escolha = 4; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Primeira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/****************************/
while(escolha == 4){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
leituraT();
     if(sensors.getTempCByIndex(0) >= 52){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 10){    //AJUSTE DE TEMPO 
     escolha = 5; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Segunda Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/**********************************/
while(escolha == 5){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
leituraT();
     if(sensors.getTempCByIndex(0) >= 64){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 60){    //AJUSTE DE TEMPO 
     escolha = 55; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Terceira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
   }
/********************************/
while(escolha == 55){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 10){    //AJUSTE DE TEMPO 
     escolha = 6; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Quarta Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
   }
  
/************fim das 3 atepas de mustura*******/
if(escolha == 6){
    lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Iniciando Etapa  ");
      lcd.setCursor(0,1);
      lcd.print(" De Fervura  ");
      
      delay(3000);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Inicio da Etapa");
      lcd.setCursor(4,1);
      lcd.print("UM");
      delay(3000);
       escolha = 7;
      lcd.clear();
}
/********inicio das etapas de fervura********/
while(escolha == 7){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) == 76){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 30){    //AJUSTE DE TEMPO 
     escolha = 21; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("Primeira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
      relogio();
      minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/************60min****************/
if(escolha == 21){
    lcd.setCursor(0,0);
    lcd.print("Insira o Hallertau");
    lcd.setCursor(5,1);
    lcd.print("25g"         );
    delay(3000);
    lcd.setCursor(0,0);
    lcd.print("Insira o  Saaz");
    lcd.setCursor(5,1);
    lcd.print("20g"         );
    delay(3000);
     lcd.clear();
   escolha = 8;
}
if(escolha == 8){
    lcd.setCursor(0,0);
    lcd.print("Produtos inserido?");
    lcd.setCursor(0,1);
    lcd.print("sim"           );
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 8){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Inicio da Etapa");
      lcd.setCursor(4,1);
      lcd.print("Dois");
      delay(3000);
       escolha = 9;
      lcd.clear();
        /*****/
  }
      if(nao == 1 && escolha == 8){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 8;
  }
/*******************************/
while(escolha == 9){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 30){    //AJUSTE DE TEMPO 
     escolha = 22; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("segunda Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
      relogio();
       minu = 0;
     delay(3000);
     lcd.clear();
     }
}
/************30****************/
if(escolha == 22){
  ssim = 0;
   sim = 0;
    lcd.setCursor(0,0);
    lcd.print("Insira o Hallertau");
    lcd.setCursor(5,1);
    lcd.print("10g"         );
    delay(3000);
    lcd.setCursor(0,0);
    lcd.print("Insira o  Saaz");
    lcd.setCursor(5,1);
    lcd.print("10g"         );
    delay(3000);
     lcd.clear();
   escolha = 10;
}
if(escolha == 10){
    lcd.setCursor(0,0);
    lcd.print("Produtos inserido?");
    lcd.setCursor(0,1);
    lcd.print("sim"           );
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 10){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Inicio da Etapa");
      lcd.setCursor(4,1);
      lcd.print("três");
      delay(3000);
       escolha = 11;
      lcd.clear();
        /*****/
  }
      if(nao == 1 && escolha == 1){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 8;
  }
/*******************************/
while(escolha == 11){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      lcd.setCursor(13,1);
     lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 25){    //AJUSTE DE TEMPO 
     escolha = 23; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("terceira Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
      relogio();
       minu = 0;
     delay(3000);
     lcd.clear();
     }
 }
/************5min******************/
if(escolha == 23){
  ssim = 0;
   sim = 0;
    lcd.setCursor(0,0);
    lcd.print("Insira o Hallertau");
    lcd.setCursor(5,1);
    lcd.print("25g"         );
    delay(3000);
    lcd.setCursor(0,0);
    lcd.print("Insira o  Saaz");
    lcd.setCursor(5,1);
    lcd.print("20g"         );
    delay(3000);
     lcd.clear();
   escolha = 10;
}
if(escolha == 10){
    lcd.setCursor(0,0);
    lcd.print("Produtos inserido?");
    lcd.setCursor(0,1);
    lcd.print("sim"           );
    lcd.setCursor(13,1);
    lcd.print("nao");
  }
    if(sim == 1 && escolha == 10){
      ssim = 2;    
    }
      if(ssim == 2){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Inicio da Etapa");
      lcd.setCursor(4,1);
      lcd.print("três");
      delay(3000);
       escolha = 12;
      lcd.clear();
        /*****/
  }
      if(nao == 1 && escolha == 1){
      nnao = 1;      
    }
      if(nnao == 1){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("Realize A Pre   ");
      lcd.setCursor(0,1);
      lcd.print("Etapa Essenciai"); 
      delay(3000);
      lcd.clear();
         /*****/
      nnao = 0;
      nao = 0; 
      escolha = 8;
  }
/***********************************/
while(escolha == 12){ //CTRAL+C / MUDAR ESCOLHA PARA VALOR DA OPÇAO A CIMA NO SIM 
   ssim = 0;
   sim = 0;
  leituraT();
     if(sensors.getTempCByIndex(0) >= 76){
      relogio();
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
      lcd.print("Temperatura");
      lcd.setCursor(11,0);
      lcd.print(minu);
      lcd.setCursor(3,0);
      lcd.print("Minutos:");       
      digitalWrite(led, 0);
   }
   else
   {
      
      digitalWrite(led, 1);
      lcd.setCursor(3,0);
      lcd.print("AJUSTANDO");
      lcd.setCursor(0,1);
      lcd.print("TEMPERATURA");
      lcd.setCursor(13,1);
      lcd.print(sensors.getTempCByIndex(0));
      lcd.setCursor(0,1);
   }
   if(minu == 5){    //AJUSTE DE TEMPO 
     escolha = 13; // MUDAR ESCOLHA PARA O PROXIMO NUMERO
        /****/  
     lcd.setCursor(0,0);
     lcd.print("quarta Etapa  "); //MUDAR SEQUENCIA
     lcd.setCursor(0,1);
     lcd.print("    Concluida       ");
      relogio();
       minu = 0;
     delay(3000);
     lcd.clear();
     }
 }
    
/********************************************/    
    if(escolha == 13){
    lcd.setCursor(0,0);
    lcd.print("Escolhar sua");
    lcd.setCursor(0,1);
    lcd.print("Proxima receita");
    delay(2000);
    lcd.setCursor(1,0);
    lcd.print("Voltando para");
    lcd.setCursor(5,1);
    lcd.print("O menu");
    delay(2000);
      conta = 0;
      escolha = 0;
      lcd.clear();
  }
}

void relogio(){
  
  int time = millis();
  int realtemp = time / 1000;
  seg++;
  Serial.println(seg);


int tempo = millis();
int ult_tempo;
if(tempo - ult_tempo >= 1000)

/*****************/
if(seg >= 60) {
seg = 0;
minu++;
}
/**************/
if(minu == 60) {
minu = 0;
realtemp++;
 }
}

Considerações Finais

Muito legal ver que você chegou até aqui. Espero que tenha entendido o artigo. No caso de dúvidas, pode deixar nos comentários, abaixo. Antes de ir, quero te desafiar: depois de montar e testar tudo, crie uma área que permita ao usuário que adicione uma receita própria no aplicativo. Assim, ele poderá alterar e configurar manualmente pela interface gráfica, sem precisar entrar no código fonte.

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Sobre o Autor


João Vitor
@v_ribeiro_v

Sou uma pessoa extremamente curiosa, acredito que viver é muito mais do que simplesmente aceitar as coisas com elas são. Por isso iniciei meus estudos nessa área de eletrônica para ir mais a fundo nesse mundo de tecnologia que nos consome cada dia mais.


Eletrogate

21 de junho de 2022 Atualizado em: 31 mar 2023

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Automação Residencial

Sistema de Monitoramento de CPD

Eletrogate28 de novembro de 2023

Sistema para monitoramento de CPD ou algum tipo sala que exija cuidados com Temperatura, Umidade, Luminosidade, detector de presença, detecção de fogo e fumaça.

Automação Residencial

Sistema de Monitoramento de CPD

Eletrogate28 de novembro de 2023

Sistema para monitoramento de CPD ou algum tipo sala que exija cuidados com Temperatura, Umidade, Luminosidade, detector de presença, detecção de fogo e fumaça.

Projetos

Kit DIY Detector de metais

Eletrogate21 de novembro de 2023

Neste post, apresentaremos o passo a passo para a montagem de nosso kit Do-It-Yourself detector passivo de metais.

Projetos

Kit DIY Detector de metais

Eletrogate21 de novembro de 2023

Neste post, apresentaremos o passo a passo para a montagem de nosso kit Do-It-Yourself detector passivo de metais.

Automação Residencial

Detecção de Movimento com Sensor PIR e LDR

Eletrogate14 de novembro de 2023 Atualizado em: 17 nov 2023

Se você está em busca de maneiras de reduzir o consumo de energia e, ao mesmo tempo, adicionar um toque de automação à sua casa, este guia é para você. Vamos explorar como criar um detector de movimento que acende as luzes somente em condições de baixa luminosidade e detecão de movimentos no ambiiente, graças a um sensor PIR e um sensor de luz LDR.

Automação Residencial

Detecção de Movimento com Sensor PIR e LDR

Eletrogate14 de novembro de 2023 Atualizado em: 17 nov 2023

Se você está em busca de maneiras de reduzir o consumo de energia e, ao mesmo tempo, adicionar um toque de automação à sua casa, este guia é para você. Vamos explorar como criar um detector de movimento que acende as luzes somente em condições de baixa luminosidade e detecão de movimentos no ambiiente, graças a um sensor PIR e um sensor de luz LDR.

Automação Residencial

Controle de Acesso RFID via Celular

Eletrogate7 de novembro de 2023 Atualizado em: 17 nov 2023

Já imaginou ter o controle total do acesso a qualquer ambiente na palma da sua mão? Neste post, você vai descobrir como transformar esse cenário em realidade, usando a combinação do Arduino e tecnologia RFID, além de conhecer uma plataforma que possibilita desenvolver um aplicativo de forma simples e rápida, o MIT App Inventor.

Automação Residencial

Controle de Acesso RFID via Celular

Eletrogate7 de novembro de 2023 Atualizado em: 17 nov 2023

Já imaginou ter o controle total do acesso a qualquer ambiente na palma da sua mão? Neste post, você vai descobrir como transformar esse cenário em realidade, usando a combinação do Arduino e tecnologia RFID, além de conhecer uma plataforma que possibilita desenvolver um aplicativo de forma simples e rápida, o MIT App Inventor.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

[email protected]


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.