DÍA 202 DE 365

Fase 4: FreeRTOS y Conectividad IoT

📖 Teoría a Estudiar

El Lenguaje AT (Attention Commands)

Los comandos AT fueron inventados en los años 80 para los módems telefónicos. Su premisa es hermosa por su simplicidad: todo se envía en texto ASCII, y todas las instrucciones inician con las letras AT (Attention). Al recibir la instrucción, el módem ejecuta la tarea compleja internamente y responde con un claro OK o ERROR.

Espressif Systems adoptó este estándar para el ESP32. En lugar de escribir 300 líneas de código C++ para escanear redes WiFi, negociar contraseñas WPA2, pedir una IP por DHCP y manejar certificados TLS, simplemente le envías al ESP32 el string: AT+CWJAP="MiRed","Pass123". El ESP-AT Firmware hace todo el trabajo sucio en milisegundos.

El Secreto del Final de Línea (CR + LF)

El error número uno que cometen los novatos al comunicarse con módulos AT es olvidar cómo "presionar Enter" para la máquina. El firmware ESP-AT es estricto: no procesará el comando a menos que termine EXACTAMENTE con el Retorno de Carro (Carriage Return, \r, 0x0D) seguido por un Salto de Línea (Line Feed, \n, 0x0A).
En C, esto significa que todo string que envíes debe terminar con \r\n.

MONTAJE DE LABORATORIO: PRUEBA MANUAL DE COMANDOS AT Computadora (PC) PuTTY / Tera Term Configuración: - Baudrate: 115200 - 8 Data bits, 1 Stop - Añadir CR+LF en Enter > AT OK > AT+GMR AT version:2.2.0... Módulo USB-TTL (FT232 / CH340) TX RX GND ¡CABLES CRUZADOS! ESP32 (ESP-AT FW) WiFi TX0 (Pin 1) RX0 (Pin 3) GND Flasheado con "AT_Firmware.bin"

⚙️ Ejercicios Prácticos

Ejercicio 1: Tu misión de hoy no requiere programar en C. Requiere un cable USB a TTL (ej. CH340 o FTDI), un ESP32 flasheado con el firmware oficial de Espressif AT, y un software de terminal en tu PC (como PuTTY o el monitor serial de Arduino IDE).

Conecta el TX del cable USB al RX del ESP32, y el RX del USB al TX del ESP32. Abre tu terminal a 115200 baudios y escribe los siguientes comandos exactamente como se muestran (presionando Enter después de cada línea para inyectar el \r\n).


// =======================================================
// SIMULACIÓN DE SESIÓN EN TERMINAL (Modo Interactivo)
// Los comandos que tú escribes están en BLANCO.
// Las respuestas del ESP32 están en VERDE.
// =======================================================

// 1. PRUEBA DE VIDA (Ping de Hardware)
// Envía un "Hola, ¿estás vivo?".
AT

OK

// 2. VERIFICACIÓN DE VERSIÓN
// Aseguramos que tenemos el firmware correcto de Espressif.
AT+GMR

AT version:2.2.0.0(s-2c6bf9e - ESP32 - Jul  2 2021)
SDK version:v4.2.2
compile time:Jul  2 2021 11:42:01
Bin version:2.2.0(WROOM-32)
OK

// 3. MODO DE OPERACIÓN
// El ESP32 puede ser Access Point (crear red) o Station (conectarse a red).
// Le decimos que queremos Modo Station (1).
AT+CWMODE=1

OK

// 4. ESCANEO DE REDES
// ¡Mira el poder del AT! Con una línea obligas al chip a escanear el aire
// y regresarte un JSON/String formateado con las redes disponibles.
AT+CWLAP

+CWLAP:(3,"Estacion_Gas",-55,"ec:8e:b5:xx:xx:xx",1,58,0)
+CWLAP:(3,"INFINITUM123",-82,"40:a0:8b:xx:xx:xx",6,4,0)
OK

// 5. CONEXIÓN A INTERNET
// Le ordenamos conectarse al router de la gasolinera.
AT+CWJAP="Estacion_Gas","PasswordSeguro123"

WIFI CONNECTED
WIFI GOT IP
OK

// 6. PRUEBA DE CONECTIVIDAD AL MUNDO EXTERIOR
// Hacemos ping a los servidores DNS de Google (8.8.8.8)
AT+PING="8.8.8.8"

+PING:22
OK
        

🚀 Avance del Proyecto Tesis: Despachador de Gas LP

Objetivo del día: Validación de Capa Física y Aislamiento de Firmware.

Muchos ingenieros jóvenes sufren semanas de frustración intentando programar librerías HTTP y MQTT dentro del mismo chip que hace girar sus motores, solo para ver la máquina congelarse por falta de memoria RAM. Para el Despachador de Gas LP, la seguridad es primero.

Al dominar los Comandos AT hoy, te has dado cuenta del inmenso poder de la abstracción. Tu microcontrolador principal (STM32) no necesita saber qué es un Handshake TLS, un servidor DHCP, una máscara de subred o un paquete TCP-ACK. Para tu STM32, "conectarse a internet" se ha reducido a enviar un simple printf("AT+CWJAP=\"Red\",\"Pass\"\r\n"); por su puerto serial UART y esperar que regrese la palabra "OK". Este nivel de aislamiento garantiza que, sin importar cuánto cambien los protocolos de internet en la próxima década, la lógica metrológica de tu despachador certificada ante las autoridades se mantendrá inmutable e inalterada.

📝 Resumen del Día