Adaptateur de pont WIFI vers Ethernet avec ESP32 WT32-ETH01 et USB-C

Ce pont WIFI vers Ethernet basé sur le module WT32-ETH01 est idéal pour les caméras.

Cas Wifi2Ethernet Photo2

Cas Wifi2Ethernet Photo2

La caméra est alimentée directement via USB-C ; 12V est requis à l'entrée. Un petit convertisseur DCDC alimente le module WT32-ETH01 en 3,3 V.

matérialiste

  • Module WT32-ETH01
  • Module USB-C PD pour 12 V
  • Convertisseur Buck DCDC 12V -> 3,3V
  • Prise 5521 CC
  • Logement (impression 3D)
Cas Wifi2Ethernet Photo1

Cas Wifi2Ethernet Photo1

Code

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

Beaucoup grâce à Owen Walpole pour la mise en œuvre initiale du code.

Instructions : Compiler le code dans les espaces de codes GitHub

Il s'agit d'un guide étape par étape pour compiler le projet dans un environnement cloud (GitHub Codespaces) sans problèmes de chaîne d'outils locale.

1. Préparer l'environnement de l'espace de code

Avant de démarrer l'espace de code, il faut indiquer au référentiel quelle image Docker utiliser (afin que Rust et ESP-IDF soient préinstallés).

  1. Créez le fichier dans votre fork .devcontainer/devcontainer.json.
  2. Insérez le contenu suivant :
{
  "name": "ESP-RS Env",
  "image": "espressif/idf-rust:all_latest",
  "runArgs": ["--privileged"],
  "customizations": {
    "vscode": {
      "extensions": ["rust-lang.rust-analyzer", "tamasfe.even-better-toml"]
    }
  }
}

Redémarrez maintenant l'espace de code (ou créez-en un nouveau) pour charger cette configuration.


2. Ajustez les fichiers de configuration (dans le terminal Codespace)

Une fois l'espace de code opérationnel, apportez ces modifications pour résoudre les problèmes de mémoire et mettre à jour les dépendances.

A. Définir les dépendances Cargo.toml

Ouvre ça Cargo.toml et assurez-vous que le [dependencies] Le bloc ressemble exactement à ceci :

[dependencies]
esp-idf-sys = "0.36"
esp-idf-hal = "0.45"
esp-idf-svc = "0.50"
# ... andere Abhängigkeiten ...

B. Speicher-Fix dans sdkconfig.defaults

Exécutez ces commandes dans Terminal pour réduire les tampons WiFi de 64 à 32 (évite les erreurs « 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. Compilation du firmware

Copiez ce bloc dans le terminal Codespace. Il charge l'environnement, exporte vos données WiFi (pour une logique de secours) et construit le projet.

(Remplacez les espaces réservés dans les commandes d'exportation par vos données réelles !)

# 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. Fusionner les fichiers du micrologiciel

Après une compilation réussie, le chargeur de démarrage, la table de partition et l'application doivent être fusionnés en un seul fichier. Exécutez cette commande dans l'espace de code :

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

Chargez maintenant le fichier fusionné-firmware.bin (Clic droit dans l'explorateur de fichiers -> Télécharger) sur votre PC local.


5. Flasher localement

(nécessite l'installation 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

(Remplacer DEIN_COM_PORT en conséquence, par ex. par COM3 sous Windows ou /dev/ttyUSB0 sous Linux).

Vous l'aimerez aussi...

Laisser une réponse

Votre adresse email ne sera pas publié. Les champs obligatoires sont marqués *

* * Cette case à cocher est obligatoire

*

J'accepte