// Learn about the ESP32 WiFi simulation in
// https://docs.wokwi.com/guides/esp32-wifi
// Texto por LCDS
#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
LiquidCrystal_I2C LCD2 = LiquidCrystal_I2C(0x27, 20, 4);
const int ok_button = 26;
const int m_button = 25;
const int g_button = 27;
const int m_led = 35;
const int g_led = 33;
const int ok_led = 32;
boolean refresh = true;
boolean ok = false;
boolean m = false;
boolean g = false;
//#define NTP_SERVER "pool.ntp.org"
//#define UTC_OFFSET 0
//#define UTC_OFFSET_DST 0
void spinner() {
static int8_t counter = 0;
const char* glyphs = "\xa1\xa5\xdb";
LCD.setCursor(15, 1);
LCD.print(glyphs[counter++]);
if (counter == strlen(glyphs)) {
counter = 0;
}
}
void printLocalTime() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
LCD.setCursor(0, 1);
LCD.println("Connection Err");
return;
}
LCD.setCursor(8, 0);
LCD.println(&timeinfo, "%H:%M:%S");
LCD.setCursor(0, 1);
LCD.println(&timeinfo, "%d/%m/%Y %Z");
}
void inicio()
{
LCD2.init();
LCD2.backlight();
LCD2.setCursor(0, 0);
LCD2.print("Colocar llanta en la");
LCD2.setCursor(0, 1);
LCD2.print("base y presionar OK");
}
void ajuste()
{
LCD2.clear();
LCD2.setCursor(0, 0);
LCD2.print("Tipo de ajuste");
LCD2.setCursor(0, 1);
LCD2.print("MANUAL");
LCD2.setCursor(0, 2);
LCD2.print("o");
LCD2.setCursor(0,3);
LCD2.print("GUIADO");
}
void ajuste_guiado()
{
LCD2.clear();
LCD2.setCursor(0, 0);
LCD2.print("Ajuste GUIADO");
LCD2.setCursor(0, 1);
LCD2.print("Giro de llanta ");
LCD2.setCursor(0, 2);
LCD2.print("automatico para ");
LCD2.setCursor(0, 3);
LCD2.print("medir desviacion ");
}
void ajuste_manual()
{
LCD2.clear();
LCD2.setCursor(0, 0);
LCD2.print("Ajuste MANUAL");
LCD2.setCursor(0, 1);
LCD2.print("Girar llanta para ");
LCD2.setCursor(0, 2);
LCD2.print("medir desviacion ");
}
void setup() {
Serial.begin(115200);
//LCD.init();
//LCD.backlight();
//LCD.setCursor(0, 0);
//LCD.print("Colocar llanta ");
//LCD.setCursor(0, 1);
//LCD.print("en base");
// WiFi.begin("Wokwi-GUEST", "", 6);
//while (WiFi.status() != WL_CONNECTED) {
//delay(250);
//spinner();
//}
//Serial.println("");
//Serial.println("WiFi connected");
//Serial.print("IP address: ");
//Serial.println(WiFi.localIP());
//LCD.clear();
//LCD.setCursor(0, 0);
//LCD.println("Online");
//LCD.setCursor(0, 1);
//LCD.println("Updating time...");
//configTime(UTC_OFFSET, UTC_OFFSET_DST, NTP_SERVER);
pinMode(m_led, OUTPUT); //definir pin como salida
pinMode(g_led, OUTPUT); //definir pin como salida
pinMode(ok_led, OUTPUT); //definir pin como salida
pinMode(ok_button, INPUT);
pinMode(m_button, INPUT);
pinMode(g_button, INPUT);
//LCD.clear();
//LCD.setCursor(0, 0);
inicio(); // menu principal
}
void loop() {
//if (digitalRead(ok_button) == HIGH && ok == true)
if (digitalRead(ok_button) == HIGH)
{
LCD.setCursor(0, 3);
LCD.println(ok_button);
digitalWrite(ok_led, HIGH);
m = false;
g = false;
ajuste();
}
//if (digitalRead(m_button) == HIGH && g == true)
if (digitalRead(m_button) == HIGH)
{
LCD.setCursor(0, 3);
LCD.println(m_button);
digitalWrite(m_led, HIGH);
ok = false;
m = false;
ajuste_manual();
}
//if (digitalRead(g_button) == HIGH && m == true)
if (digitalRead(g_button) == HIGH)
{
LCD.setCursor(0, 3);
LCD.println(g_button);
digitalWrite(g_led, HIGH);
ok = false;
g = false;
ajuste_guiado();
}
delay(500);
}