Módulo 4

UART: conexión con GPS y módulos seriales

Periféricos Digitales

ESP32 Mecatrónica IoT UNAM

Introducción Teórica

La UART (Universal Asynchronous Receiver-Transmitter), o Unidad Asíncrona de Recepción y Transmisión, es un componente de hardware que maneja comunicaciones seriales en computadoras y microcontroladores. Esta tecnología es esencial para la mecatrónica e IoT, ya que permite la comunicación entre dispositivos, incluyendo módulos GPS y otros módulos seriales.

En un contexto industrial, la UART es frecuentemente utilizada para la comunicación entre dispositivos en una red de área local. Por ejemplo, un sistema de seguimiento de vehículos podría usar un módulo GPS para obtener datos de ubicación y luego transmitir estos datos a una base de datos central a través de una conexión UART.

Aplicaciones comunes: Comunicación con GPS, sensores, displays, módulos de comunicación y sistemas de telemetría.

Explicación Técnica Detallada

El ESP32 tiene tres UARTs disponibles con diferentes capacidades y características:

UART0
USB/Serial, completamente funcional
UART1
Completamente funcional, uso libre
UART2
TX/RX configurables

Para configurar la UART en el ESP32, utilizamos la función Serial.begin(baudrate). El baudrate es la velocidad de transmisión en bits por segundo (bps).

C++ - Configuración básica UART
void setup() {
  // Inicializar UART0 (puerto serial principal)
  Serial.begin(9600);
  
  // Inicializar UART2 con pines personalizados
  // Serial2.begin(baudrate, config, rxPin, txPin)
  Serial2.begin(9600, SERIAL_8N1, 16, 17);
}
Importante: Para conexión con módulo GPS, conectar RX del ESP32 al TX del GPS, y TX del ESP32 al RX del GPS. No olvidar alimentación y tierra.

Ejercicios Prácticos Visuales

1

Conexión UART con módulo GPS

Intermedio 40 min

Objetivo: Conectar un módulo GPS al ESP32 a través de UART y leer coordenadas.

Materiales: ESP32, módulo GPS (NEO-6M/7M), cables jumper, protoboard.

Conexiones: GPS TX → ESP32 Pin 16, GPS RX → ESP32 Pin 17, VCC/GND.

Resultados esperados: Mostrar latitud y longitud en el monitor serial.

2

Comunicación con sensor serial

Básico 25 min

Objetivo: Establecer comunicación bidireccional con un sensor via UART.

Materiales: ESP32, sensor serial (PM2.5, CO2), cables.

Resultados esperados: Lectura exitosa de datos del sensor.

C++ - Lectura de GPS con TinyGPS++
#include 
#include 

TinyGPSPlus gps;
SoftwareSerial ss(16, 17); // RX, TX

void setup() {
  Serial.begin(9600);
  ss.begin(9600);
  
  Serial.println("Iniciando lectura GPS...");
}

void loop() {
  while (ss.available() > 0) {
    if (gps.encode(ss.read())) {
      if (gps.location.isValid()) {
        Serial.print("Latitud: ");
        Serial.println(gps.location.lat(), 6);
        Serial.print("Longitud: ");
        Serial.println(gps.location.lng(), 6);
        Serial.print("Altitud: ");
        Serial.println(gps.altitude.meters());
        Serial.print("Satélites: ");
        Serial.println(gps.satellites.value());
        Serial.println("---");
      }
    }
  }
  
  if (millis() > 5000 && gps.charsProcessed() < 10) {
    Serial.println("No GPS detectado: revisar cableado.");
    while(true);
  }
}

Proyecto Aplicado

Sistema de seguimiento vehicular con GPS

Aplicación práctica en mecatrónica: Desarrollo de un sistema de seguimiento en tiempo real que utiliza GPS para obtener coordenadas y las transmite a un servidor central para monitoreo de flotas vehiculares.

Integración con sensores/actuadores: Módulo GPS, acelerómetro, comunicación celular/WiFi y sistema de alertas.

Lista de materiales:
  • ESP32
  • Módulo GPS (NEO-8M/NEO-9M)
  • Módulo GSM/LTE (SIM800L/SIM7600)
  • Acelerómetro MPU6050
  • Display OLED 128x64
  • Tarjeta microSD
  • Fuente de alimentación 12V/5V
  • Antena GPS externa
  • Caja protectora IP65
Funcionalidades del sistema:
  • Geolocalización precisa en tiempo real
  • Almacenamiento local en tarjeta SD
  • Transmisión de datos vía GSM/WiFi
  • Detección de movimiento y alertas
  • Geofencing y zonas de seguridad
  • Interfaz web para monitoreo

Evaluación y Troubleshooting

Problemas comunes:
  • GPS no detecta satélites
  • Datos UART corruptos o ilegibles
  • Conexiones RX/TX intercambiadas
  • Baudrate incorrecto
  • Alimentación insuficiente del GPS
  • Interferencia electromagnética
Soluciones:
  • Ubicar GPS en área exterior con cielo despejado
  • Verificar configuración Serial y pines
  • Revisar cableado: TX-GPS → RX-ESP32
  • Confirmar velocidad de comunicación (9600)
  • Usar fuente de 3.3V estable
  • Alejar de fuentes de ruido RF
Criterios de evaluación:
  • Comunicación UART estable sin errores
  • Lectura precisa de coordenadas GPS
  • Procesamiento correcto de datos NMEA
  • Integración exitosa con otros módulos
  • Almacenamiento y transmisión de datos
  • Manejo adecuado de errores de comunicación