#include <WiFi.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <Keypad.h>
#define TFT_CS 5
#define TFT_RESET 22
#define TFT_DC 21
#define CAPACITOR_3V3 2
#define CAPACITOR_GND 4
#define LED_WIFI_CONNECTED 25
#define LED_WIFI_DISCONNECTED 26
Adafruit_ILI9341 tft(TFT_CS, TFT_DC, TFT_RESET);
const char *ssid = "Wokwi-GUEST";
const char *password = "";
const byte ROWS = 4; // Definindo o número de linhas do teclado de membrana
const byte COLS = 4; // Definindo o número de colunas do teclado de membrana
char keys[ROWS][COLS] = { // Definindo os rótulos das teclas do teclado de membrana
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
uint8_t rowPins[ROWS] = {9, 8, 7, 6}; // Pinos conectados às linhas do teclado de membrana
uint8_t colPins[COLS] = {5, 4, 3, 2}; // Pinos conectados às colunas do teclado de membrana
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); // Inicializando o teclado de membrana
void conectarAoWiFi();
void exibirQRCode(const char *url);
void sendHtml();
void controlarLEDsWifi();
void processarTeclado(char key); // Assinatura da função processarTeclado
bool wifiConnected = false;
void setup()
{
pinMode(CAPACITOR_3V3, OUTPUT);
pinMode(CAPACITOR_GND, OUTPUT);
digitalWrite(CAPACITOR_3V3, HIGH);
digitalWrite(CAPACITOR_GND, LOW);
pinMode(LED_WIFI_CONNECTED, OUTPUT);
pinMode(LED_WIFI_DISCONNECTED, OUTPUT);
delay(1000);
Serial.begin(115200);
delay(1000);
Serial.println("- setup() started -");
tft.begin();
tft.setRotation(2);
tft.fillScreen(ILI9341_BLACK);
conectarAoWiFi(); // Conecta ao Wi-Fi ao iniciar
// Ajuste o código para iniciar o servidor HTTP, se necessário
// server.on("/", HTTP_GET, sendHtml);
// server.begin();
Serial.println("HTTP server started");
}
void loop()
{
// Ajuste o código para manipular as requisições do servidor HTTP, se necessário
// server.handleClient();
char key = keypad.getKey(); // Captura a tecla pressionada pelo teclado de membrana
if (key != NO_KEY)
{
processarTeclado(key); // Processa a tecla pressionada
}
// Outras tarefas podem ser adicionadas aqui, se necessário
}
void processarTeclado(char key)
{
switch (key)
{
case '1':
exibirQRCode("www.uteiserazoaveis.com");
break;
case '2':
exibirQRCode("www.uteiserazoaveis.com/seo");
break;
case '3':
exibirQRCode("www.uteiserazoaveis.com/programacao");
break;
case '4':
exibirQRCode("www.uteiserazoaveis.com/web-designer");
break;
case '5':
exibirQRCode("www.uteiserazoaveis.com/conteudos");
break;
case '6':
exibirQRCode("www.uteiserazoaveis.com/marketing-e-comunicacao");
break;
default:
// Lógica para tratar outras teclas pressionadas, se necessário
break;
}
}
void conectarAoWiFi()
{
// Lógica para conexão Wi-Fi
}
void exibirQRCode(const char *url)
{
// Implemente aqui a lógica para desenhar o QR Code na tela
}
void sendHtml()
{
// Lógica para enviar o HTML para o cliente
}
void controlarLEDsWifi()
{
// Lógica para controlar os LEDs indicadores de status do Wi-Fi
}