🛠 Integración de GPIO con Ethernet UEXT-CH390
Objetivos
Este tutorial tiene como objetivo dominar la interacción entre periféricos locales (GPIO) y la conectividad de red proporcionada por el módulo UEXT-CH390. Configuraremos un microcontrolador para leer un sensor o controlar una pantalla, transmitiendo datos a través de Ethernet. El objetivo es entender cómo gestionar la concurrencia entre tareas locales rápidas e interrupciones de red, una habilidad clave para proyectos IoT fiables.
Material Necesario
- Placa compatible: Raspberry Pi Pico 2 o módulo ESP32 (S3, C3, C5, C6).
- Módulo Olimex UEXT-CH390 (Ethernet 10/100 Mbps).
- Sensor simple (ej. botón pulsador o sensor de temperatura DHT11) o LED.
- Cables de conexión y protoboard.
- Entorno de desarrollo: Arduino IDE o ESPHome (versión 2026.9.0 recomendada para controladores RP2040).
- Fuente de alimentación estable de 3.3V.
Pasos
- Conexión de Hardware: Inserte el módulo UEXT-CH390 en el conector UEXT o pUEXT de su placa. Asegúrese de que la alimentación sea de 3.3V. Conecte su sensor a un pin GPIO libre (no utilizado por el bus SPI del CH390).
- Configuración del Proyecto: En su IDE, seleccione la placa objetivo. Si usa ESPHome, defina el bloque
spicon los pines MISO, MOSI, SCK y CS correspondientes al módulo CH390. Active el soporte Ethernet mediante el componenteethernetespecificando el modeloch390. - Inicialización de Software: Importe las bibliotecas necesarias. Para Arduino, inicialice primero la interfaz SPI, luego el controlador Ethernet. Para ESPHome, configure el bloque
sensorpara leer su sensor GPIO y el bloqueweb_serveromqttpara la transmisión de red. - Lógica de Control: Escriba el bucle principal para leer el estado GPIO. Si el sensor detecta un cambio, actualice una variable global. Esta variable será publicada automáticamente en la red por la capa Ethernet configurada.
- Compilación y Carga: Compile el código. Verifique que no haya errores de conflicto de pines. Cargue el firmware en el microcontrolador.
Verificación
Abra un navegador web e introduzca la dirección IP asignada por DHCP a su placa. Debería ver una interfaz web local o datos en un panel (como Home Assistant). Presione el botón o cambie el valor del sensor: el valor mostrado en la interfaz web debe cambiar casi instantáneamente, demostrando que el flujo GPIO -> Memoria -> Ethernet funciona correctamente.
Para Ir Más Allá
Explore el uso de interrupciones de hardware (ISR) para GPIO para reducir la latencia. Intente añadir una actualización OTA (Over-The-Air) a través de la red Ethernet para modificar el código GPIO sin reconexión física.
Otros tutoriales para esta placa
- Primer enlace y puesta en marcha del UEXT-CH390
- Controlar GPIO y sensores con UEXT-CH390
- Caso de uso completo: Conectividad Ethernet para Raspberry Pi Pico
- Primera conexión y puesta en marcha del UEXT-CH390
- Conecta un RP2040 a la red con UEXT-CH390 y ESPHome
- Inicio avanzado: UEXT-CH390 y Raspberry Pi Pico
Ejemplos de código para esta placa
esp32-ch390-lwip-station.inoC++rp2040-pico-ch390-micropython.pyPythonesp32-ch390-udp-sensor-gateway.inoC++esp32-ch390-web-server-local.inoC++rp2040-ch390-iot-home-assistant.inoYAMLrp2040-lwip-ethernet-ping-6.inoC/C++ (Raspberry Pi Pico SDK)