🛠 Automatización IoT robusta con UEXT-CH390 y ESPHome
Objetivos
Este tutorial tiene como objetivo crear un nodo de monitoreo ambiental completo y confiable. A diferencia de las soluciones Wi-Fi sujetas a interferencias, utilizaremos la conectividad Ethernet cableada de 10/100 Mbps del módulo UEXT-CH390 para garantizar una latencia mínima y una estabilidad máxima. El objetivo es integrar este nodo en un ecosistema de domótica (Home Assistant) con actualizaciones OTA y descubrimiento automático, aprovechando los 16KB de SRAM del controlador WCH CH390 para un procesamiento fluido de paquetes de red.
Hardware Necesario
- Módulo Olimex UEXT-CH390 (controlador WCH CH390, MAC/PHY integrado).
- Microcontrolador compatible: Raspberry Pi Pico (RP2040) o ESP32 (S3, C3, C5, C6) con conector UEXT o pUEXT.
- Cable Ethernet RJ45 estándar.
- Fuente de alimentación estable de 3.3V (vía USB-C del microcontrolador o alimentación externa).
- Ordenador con ESPHome 2026.9.0 o superior instalado.
Pasos
- Configuración de Hardware: Inserte el módulo UEXT-CH390 en el conector UEXT de su placa anfitriona. Asegúrese de que la alimentación esté correctamente configurada a 3.3V. El módulo utiliza líneas SPI (MOSI, MISO, SCK, CS) y señales de control. Verifique la compatibilidad de pines según el esquema oficial de Olimex para evitar conflictos.
- Preparación del Firmware: Cree un nuevo proyecto ESPHome. En el archivo YAML, configure el bus SPI. Tenga en cuenta que el CH390 admite los modos SPI 0 y 3 hasta 72 MHz, pero comience con una frecuencia conservadora (ej. 10 MHz) para validar la comunicación.
spi:
clk_pin: GPIO2
mosi_pin: GPIO3
miso_pin: GPIO4
cs_pin: GPIO5
- Integración del Driver CH390: Utilice el driver específico desarrollado para RP2040 o bibliotecas compatibles con ESPHome. Habilite la interfaz Ethernet.
ethernet:
type: CH390
spi_bus: spi
reset_pin: GPIO6
- Configuración de Red y Servicios: Configure DHCP para una asignación automática de IP. Habilite el descubrimiento de Home Assistant y el servidor web local para depuración.
wifi: # Deshabilitado o ignorado
ethernet:
dhcp: true
web_server:
port: 80
- Adición de Sensores: Integre sus sensores (DHT22, BMP280, etc.) y expóngalos mediante MQTT o API nativa de Home Assistant.
Verificación
- Conecte el cable Ethernet. El LED del módulo debe encenderse.
- Abra el monitor serie para verificar los registros de conexión DHCP.
- Acceda a la dirección IP asignada a través de un navegador web para ver la interfaz local.
- En Home Assistant, verifique que el nodo aparezca automáticamente y que los datos de los sensores se actualicen en tiempo real.
Para Ir Más Allá
Explore el uso directo del SDK de Raspberry Pi Pico con la pila lwIP para aplicaciones de tiempo real críticas, u optimice las actualizaciones OTA para minimizar la huella de memoria.
Otros tutoriales para esta placa
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)