#include <WiFiManager.h>
#include <WiFi.h>
#include <HardwareSerial.h>
bool connected = false;
const int botonIzquierdaPin = 25;
const int botonDerechaPin = 26;
const int botonSeleccionPin = 27;
void setup() {
Serial.begin(115200);
Serial.setTimeout(2000);
Serial.println("Conectado a la red WiFi");
pinMode(botonIzquierdaPin, INPUT);
pinMode(botonDerechaPin, INPUT);
pinMode(botonSeleccionPin, INPUT);
}
void loop() {
if (Serial.available() > 0) {
String command = Serial.readStringUntil('\n');
command.trim();
if (command == "scan") { //COMANDO PARA SCAN DE REDES
int numNetworks = WiFi.scanNetworks();
String networks = "";
for (int i = 0; i < numNetworks; i++) {
networks += WiFi.SSID(i);
if (i < numNetworks - 1) {
networks += ",";
}
}
Serial.println(networks);
} else if (command == "get_ip") { //COMANDO PARA OBTENER IP
if (WiFi.status() == WL_CONNECTED) { //CONEXION COMPLETA
Serial.println("IP:" + WiFi.localIP().toString());
} else {
Serial.println("Not connected to WiFi");
}
} else {
WiFi.disconnect();
String ssid = command;
String password = Serial.readStringUntil('\n');
password.trim();
WiFi.begin(ssid.c_str(), password.c_str());
unsigned long startTime = millis();
while (WiFi.status() != WL_CONNECTED) { //CONEXION INCOMPLETA
delay(500);
Serial.print(".");
if (millis() - startTime > 10000) {
Serial.println("\nError: No se pudo conectar a la red " + ssid);
break;
}
}
if (WiFi.status() == WL_CONNECTED) { //CONEXION COMPLETA
connected = true; // Marca la conexión como exitosa
Serial.println("\nConexion exitosa a la red " + ssid);
Serial.println("IP address: " + WiFi.localIP().toString());
// Envía un mensaje al formulario de C# indicando que se ha conectado a la red
Serial.println("Connected");
}
}
} //LECTURA DE BOTONES Y ESCRITURA SERIAL
if (digitalRead(botonIzquierdaPin) == HIGH) {
Serial.println("bi");
delay(300);
} else if (digitalRead(botonDerechaPin) == HIGH) {
Serial.println("bd");
delay(300);
} else if (digitalRead(botonSeleccionPin) == HIGH) {
Serial.println("bs");
delay(300);
}
}