Адаптер моста WIFI-Ethernet с ESP32 WT32-ETH01 и USB-C
Table of Contents
Этот мост WIFI-Ethernet на основе модуля WT32-ETH01 идеально подходит для камер.
Питание камеры осуществляется напрямую через USB-C; На входе необходимо 12В. Небольшой преобразователь DCDC подает на модуль WT32-ETH01 напряжение 3,3 В.
материалистический
- Модуль WT32-ETH01
- Модуль USB-C PD на 12 В
- Понижающий преобразователь DCDC 12 В -> 3,3 В
- 5521 Розетка постоянного тока
- Корпус (3D-печать)
Code
https://github.com/doctormord/esp32-wifi-bridge
благодаря Оуэн Уолпол для первоначальной реализации кода.
Инструкции: скомпилируйте код в кодовых пространствах GitHub.
Это пошаговое руководство по компиляции проекта в облачной среде (GitHub Codespaces) без проблем с локальной цепочкой инструментов.
1. Подготовьте среду кодового пространства
Перед запуском кодового пространства репозиторию необходимо указать, какой образ Docker использовать (чтобы Rust и ESP-IDF были предварительно установлены).
- Создайте файл в своей вилке
.devcontainer/devcontainer.json. - Вставьте следующий контент:
{
"name": "ESP-RS Env",
"image": "espressif/idf-rust:all_latest",
"runArgs": ["--privileged"],
"customizations": {
"vscode": {
"extensions": ["rust-lang.rust-analyzer", "tamasfe.even-better-toml"]
}
}
}
Теперь перезапустите кодовое пространство (или создайте новое), чтобы загрузить эту конфигурацию.
2. Настройте файлы конфигурации (в терминале Codespace).
Как только кодовое пространство будет запущено, внесите эти изменения, чтобы устранить проблемы с памятью и обновить зависимости.
A. Установите зависимости Cargo.toml
Откройте это Cargo.toml и убедитесь, что [dependencies] Блок выглядит именно так:
[dependencies]
esp-idf-sys = "0.36"
esp-idf-hal = "0.45"
esp-idf-svc = "0.50"
# ... andere Abhängigkeiten ...
Б. Исправление Speicher в sdkconfig.defaults
Запустите эти команды в Терминале, чтобы уменьшить количество буферов Wi-Fi с 64 до 32 (предотвращает ошибки «нет памяти»):
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. Сборка прошивки
Скопируйте этот блок в терминал Codespace. Он загружает среду, экспортирует ваши данные Wi-Fi (для резервной логики) и строит проект.
(Замените заполнители в командах экспорта своими реальными данными!)
# 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. Объединяем файлы прошивки
После успешной компиляции загрузчик, таблицу разделов и приложение необходимо объединить в один файл. Запустите эту команду в кодовом пространстве:
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
Теперь загрузите файл объединенный-firmware.bin (Щелкните правой кнопкой мыши в проводнике -> Загрузить) на локальный компьютер.
5. Прошить локально
(требуется установленный 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
(Заменять DEIN_COM_PORT соответственно, напр. к COM3 под Windows или /dev/ttyUSB0 под Linux).

