Adaptador de puente WIFI a Ethernet con ESP32 WT32-ETH01 y USB-C
Table of Contents
Este puente WIFI a Ethernet basado en el módulo WT32-ETH01 es ideal para cámaras.
La cámara se alimenta directamente a través de USB-C; Se requieren 12V en la entrada. Un pequeño convertidor DCDC suministra 3,3 V al módulo WT32-ETH01.
materialista
- Módulo WT32-ETH01
- Módulo USB-C PD para 12 V
- Convertidor reductor DCDC 12V -> 3.3V
- 5521 toma de corriente continua
- Vivienda (impresión 3D)
Code
https://github.com/doctormord/esp32-wifi-bridge
gracias a Owen Walpole para la implementación inicial del código.
Instrucciones: compilar código en GitHub Codespaces
Esta es una guía paso a paso para compilar el proyecto en un entorno de nube (GitHub Codespaces) sin problemas con la cadena de herramientas local.
1. Preparar el entorno de codespace
Antes de iniciar el espacio de código, es necesario indicarle al repositorio qué imagen de Docker usar (para que Rust y ESP-IDF estén preinstalados).
- Crea el archivo en tu fork
.devcontainer/devcontainer.json. - Inserte el siguiente contenido:
{
"name": "ESP-RS Env",
"image": "espressif/idf-rust:all_latest",
"runArgs": ["--privileged"],
"customizations": {
"vscode": {
"extensions": ["rust-lang.rust-analyzer", "tamasfe.even-better-toml"]
}
}
}
Ahora reinicie el espacio de código (o cree uno nuevo) para cargar esta configuración.
2. Ajustar los archivos de configuración (en la terminal Codespace)
Una vez que el codespace esté en funcionamiento, realice estos cambios para solucionar problemas de memoria y actualizar las dependencias.
A. Establecer dependencias de Cargo.toml
abre eso Cargo.toml y asegúrese de que el [dependencies] El bloque se ve exactamente así:
[dependencies]
esp-idf-sys = "0.36"
esp-idf-hal = "0.45"
esp-idf-svc = "0.50"
# ... andere Abhängigkeiten ...
B. Speicher-Fix en sdkconfig.defaults
Ejecute estos comandos en Terminal para reducir los buffers WiFi de 64 a 32 (evita errores de "no mem"):
sed -i 's/CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64/CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32/' sdkconfig.defaults
sed -i 's/CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64/CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32/' sdkconfig.defaults
3. Compilando el firmware
Copie este bloque en la terminal Codespace. Carga el entorno, exporta sus datos WiFi (para lógica alternativa) y construye el proyecto.
(¡Reemplace los marcadores de posición en los comandos de exportación con sus datos reales!)
# 1. Umgebungsvariablen laden (Wichtig!)
source /opt/esp/export.sh
# 2. Alten Build-Cache löschen (Zwingend bei Config-Änderungen)
rm -rf target
rm Cargo.lock
# 3. WLAN-Zugangsdaten setzen (Wird in die Firmware kompiliert)
export WIFI_SSID_1="DeinHauptWLAN"
export WIFI_PASS_1="DeinPasswort1"
export WIFI_SSID_2="DeinBackupWLAN"
export WIFI_PASS_2="DeinPasswort2"
# 4. Kompilieren (Release-Modus)
cargo build --release
4. Fusionar archivos de firmware
Después de una compilación exitosa, el gestor de arranque, la tabla de particiones y la aplicación deben fusionarse en un solo archivo. Ejecute este comando en el espacio de código:
esptool.py --chip esp32 elf2image target/xtensa-esp32-espidf/release/esp32-wifi-bridge
esptool.py --chip esp32 merge_bin -o merged-firmware.bin \
0x1000 target/xtensa-esp32-espidf/release/bootloader/bootloader.bin \
0x8000 target/xtensa-esp32-espidf/release/partition-table.bin \
0x10000 target/xtensa-esp32-espidf/release/esp32-wifi-bridge.bin
Ahora carga el archivo fusionado-firmware.bin (Haga clic derecho en el explorador de archivos -> Descargar) a su PC local.
5. Flashear localmente
(requiere instalación esptool):
esptool.py --chip esp32 --port DEIN_COM_PORT --baud 921600 \
--before default_reset --after hard_reset write_flash \
--flash_mode dio --flash_freq 40m \
0x1000 merged-firmware.bin
(Reemplazar DEIN_COM_PORT en consecuencia, p.e. por COM3 bajo Windows o /dev/ttyUSB0 bajo Linux).

