Адаптер моста WIFI-Ethernet с ESP32 WT32-ETH01 и USB-C

Этот мост WIFI-Ethernet на основе модуля WT32-ETH01 идеально подходит для камер.

Wi-Fi2Ethernet Чехол Фото2

Wi-Fi2Ethernet Чехол Фото2

Питание камеры осуществляется напрямую через USB-C; На входе необходимо 12В. Небольшой преобразователь DCDC подает на модуль WT32-ETH01 напряжение 3,3 В.

материалистический

  • Модуль WT32-ETH01
  • Модуль USB-C PD на 12 В
  • Понижающий преобразователь DCDC 12 В -> 3,3 В
  • 5521 Розетка постоянного тока
  • Корпус (3D-печать)
Фото корпуса Wifi2Ethernet1

Фото корпуса Wifi2Ethernet1

Code

https://github.com/doctormord/esp32-wifi-bridge

благодаря Оуэн Уолпол для первоначальной реализации кода.

Инструкции: скомпилируйте код в кодовых пространствах GitHub.

Это пошаговое руководство по компиляции проекта в облачной среде (GitHub Codespaces) без проблем с локальной цепочкой инструментов.

1. Подготовьте среду кодового пространства

Перед запуском кодового пространства репозиторию необходимо указать, какой образ Docker использовать (чтобы Rust и ESP-IDF были предварительно установлены).

  1. Создайте файл в своей вилке .devcontainer/devcontainer.json.
  2. Вставьте следующий контент:
{
  "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).

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox GDPR is required

*

I agree