/*
   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_I2C.h>

LiquidCrystal_I2C lcd(0x20, 16, 2);

#define PINO_TRIGGER 10
#define PINO_ECHO    9

int polegadas = 0;
int centimetros = 0;

long readUltrasonicDistance() {

  digitalWrite(PINO_TRIGGER, LOW);
  delayMicroseconds(2);
  digitalWrite(PINO_TRIGGER, HIGH);
  delayMicroseconds(10);
  digitalWrite(PINO_TRIGGER, LOW);

  return pulseIn(PINO_ECHO, HIGH);

}

void setup() {

  pinMode(PINO_TRIGGER, OUTPUT);
  pinMode(PINO_ECHO, INPUT);

  lcd.init();
  lcd.backlight();
  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);

  lcd.clear();

}

void loop() {

  //lcd.clear();

  centimetros = 0.01723 * readUltrasonicDistance();
  polegadas = (centimetros / 2.54);

  lcd.setCursor(0, 0);
  lcd.print("Dist.: ");
  lcd.print(centimetros);
  lcd.print(" cm   ");

  lcd.setCursor(0, 1);
  lcd.print("Dist.: ");
  lcd.print(polegadas);
  lcd.print(" pol   ");

  delay(100);

}