#include <Wire.h> // Se incluye la librería que permite la comunicación con el protocolo I2C
#include <Adafruit_GFX.h> // Se incluye la librería que proporciona funcionalidades gráficas
#include <Adafruit_SSD1306.h> // Se incluye la librería para controlar la pantalla OLED SSD1306
#include <ESP8266WiFi.h> // Se incluye la librería para que se pueda conectar a internet
#define SCREEN_WIDTH 128 // Ancho de la pantalla oled en pixeles
#define SCREEN_HEIGHT 64 // Alto de la pantalla oled en pixeles
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // Crea un objeto que representa la pantalla OLED y está conectada vía I2C
//Nombre y contraseña de la red
const char* nombre_red = "";
const char* pass = "";
void setup() {
Serial.begin(115200); // Inicia la comunicación serial a 115200 baudios.
// Inicializa la pantalla OLED con la dirección I2C 0x3C.
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { //Si no se puede iniciar, imprime un mensaje de error
Serial.println(F("failed to start SSD1306 OLED")); // Imprime un mensaje de error y entra en un bucle infinito
while (1);
}
//Conexión WiFi
WiFi.begin(nombre_red, pass); //Empieza la conexión con la red
while (WiFi.status() != WL_CONNECTED) { // Inicia un bucle mientras que el estado del WiFi no sea conectado
delay(500); // Pausa de 500 milisegundos
Serial.print("."); // Imprime un punto hasta que se conecte
}
Serial.println("WiFi conectado");
oled.clearDisplay(); // Limpia la pantalla OLED
oled.setTextSize(1); // Establece el tamaño de la letra
oled.setTextColor(WHITE); //Establece el color de la letra
oled.setCursor(0,0); // Indica dónde se va a escribir
oled.println("WiFi conectado!");
oled.display(); // Muestra contenido en la pantalla OLED
delay(2000); // Muestra el mensaje por 2 segundos
}
void loop() {
if (Serial.available()) { // Verifica si hay datos disponibles para leer en el puerto serial
char c = Serial.read(); // Lee el caracter enviado al ESP8266
if (isLowerCase(c)) { // Verifica si el caracter es una letra minúscula
c = toupper(c); // Convierte el caracter a mayúscula
}
// Limpia la pantalla y muestra el caracter en mayúscula
oled.clearDisplay(); // Limpia la pantalla OLED
oled.setCursor(0,0); // Indica dónde se va a escribir
oled.print("Caracter: ");
oled.println(c);
oled.display(); // Muestra contenido en la pantalla OLED
}
}