/*
   Código demonstrativo para a aula de Bancos de Dados aplicados à Internet das Coisas,
   Curso de Engenharia e Administração de Sistemas de Banco de Dados,
   Faculdade de Tecnologia - UNICAMP.
*/

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void menu() {

  lcd.clear();

  Serial.println("        Menu de Opcoes       ");
  Serial.println("-----------------------------");
  Serial.println("0. Opcao 00.");
  Serial.println("1. Opcao 01.");
  Serial.println("2. Opcao 02.");
  Serial.println("3. Opcao 03.");
  Serial.println("-----------------------------");
  Serial.println("Sua escolha: ??");

  lcd.setCursor(0, 0);
  lcd.print("Sua escolha: ??");

  Serial.println();
  Serial.println();
  Serial.println();

}

void setup() {

  Serial.begin(9600);
  lcd.begin(16, 2);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("Fac.  Tecnologia");
  lcd.setCursor(0, 1);
  lcd.print("Unicamp  Limeira");

  delay(3000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("Bancos de Dados ");
  lcd.setCursor(0, 1);
  lcd.print("Aplicados a IoT ");

  delay(3000);

  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print("   Exercicio    ");
  lcd.setCursor(0, 1);
  lcd.print("----------------");

  delay(3000);

  menu();

}

void loop() {

  while (Serial.available() > 0) {

    int opcao = Serial.parseInt();

    lcd.clear();

    Serial.println("-------------------------------------------");
    switch (opcao) {
      case 0:
        Serial.println("Voce escolheu a Opcao 00.");
        lcd.setCursor(0, 0);
        lcd.print("Voce escolheu a ");
        lcd.setCursor(0, 1);
        lcd.print("Opcao 00.");
        break;
      case 1:
        Serial.println("Voce escolheu a Opcao 01.");
        lcd.setCursor(0, 0);
        lcd.print("Voce escolheu a ");
        lcd.setCursor(0, 1);
        lcd.print("Opcao 01.");
        break;
      case 2:
        Serial.println("Voce escolheu a Opcao 02.");
        lcd.setCursor(0, 0);
        lcd.print("Voce escolheu a ");
        lcd.setCursor(0, 1);
        lcd.print("Opcao 02.");
        break;
      case 3:
        Serial.println("Voce escolheu a Opcao 03.");
        lcd.setCursor(0, 0);
        lcd.print("Voce escolheu a ");
        lcd.setCursor(0, 1);
        lcd.print("Opcao 03.");
        break;
      default:
        Serial.println("Voce escolheu uma opcao nao disponivel.");
        lcd.setCursor(0, 0);
        lcd.print("     Opcao      ");
        lcd.setCursor(0, 1);
        lcd.print(" Nao Disponivel ");

    }
    Serial.println("-------------------------------------------");
    delay(3000);
    Serial.println("");
    Serial.println("");
    Serial.println("");
    menu();
  }
}