项目简介
本项目是基于ESP-IDF框架开发的ESP32 NAT路由器,具有多种实用功能,可满足不同网络应用场景需求。
项目的主要特性和功能
- 具备多种应用场景,可作为简单WiFi信号扩展器,为访客或物联网设备创建独立网络,还能将企业级网络转换为普通网络。
- 拥有高带宽,能达到超过15mbps的带宽。
- 支持多种配置方式,可通过简单的Web界面或串口控制台进行配置。
- 可通过板载LED显示ESP32与上游AP的连接状态以及连接到ESP32的设备数量。
- 提供丰富命令的命令行界面,用于配置WiFi设置、管理NVS、设置端口映射等。
- 可根据需求设置DNS服务器IP地址。
安装使用步骤
前提条件
假设用户已经下载了本项目的源码文件。
配置与使用
- 首次启动:首次启动后,ESP32 NAT路由器会提供一个开放的WiFi网络,SSID为“ESP32_NAT_Router”。
- Web配置界面:
- 将PC或智能手机连接到“ESP32_NAT_Router”网络。
- 打开浏览器,访问“http://192.168.4.1”。
- 输入上游WiFi网络的相关信息(“STA设置”),开放网络可留空密码,点击“Connect”,ESP32将重启并连接到WiFi路由器。
- 重新连接并刷新页面,更改“Soft AP设置”,点击“Set”,ESP32再次重启,此时即可通过新配置的Soft AP转发流量。
- 若要在Web界面输入特殊字符,需使用HTTP风格的十六进制编码。
- 若要禁用Web界面,可在CLI中输入以下命令:
nvs_namespace esp32_nat nvs_set lock str -v 1
- 若要重新启用Web界面,可输入:
nvs_namespace esp32_nat nvs_set lock str -v 0
- 命令行界面(CLI):
- 使用串口控制台(如Putty或GtkTerm,波特率115200)进行配置。
- 使用“set_sta”和“set_ap”命令配置WiFi设置,更改将永久存储在NVS中,并在下次重启后生效。
- 使用“show”命令显示当前配置。
- 输入“help”命令获取所有可用命令的完整列表。
刷机
刷入预编译二进制文件
cd ~
python3 -m pip install pyserial
cd esptool
python3 setup.py install
2. 进入esp32_nat_router项目目录,根据不同的ESP32目标进行刷机:
- ESP32:
bash
esptool.py --chip esp32 \
--before default_reset --after hard_reset write_flash \
-z --flash_mode dio --flash_freq 40m --flash_size detect \
0x1000 build/esp32/bootloader.bin \
0x8000 build/esp32/partitions.bin \
0x10000 build/esp32/firmware.bin
- ESP32C3:
bash
esptool.py --chip esp32c3 \
--before default_reset --after hard_reset write_flash \
-z --flash_size detect \
0x0 build/esp32c3/bootloader.bin \
0x8000 build/esp32c3/partitions.bin \
0x10000 build/esp32c3/firmware.bin
3. 也可使用 Espressif's Flash Download Tools 进行刷机,需相应更新文件名。
编译二进制文件
- 方法1 - ESPIDF:
- 下载并设置ESP-IDF。
- 在项目目录中运行
make menuconfig
(或idf.py menuconfig
用于cmake),并进行以下配置:- *Component config -> LWIP > [x] Enable copy between Layer2 and Layer3 packets.
- *Component config -> LWIP > [x] Enable IP forwarding.
- *Component config -> LWIP > [x] Enable NAT (new/experimental).
- 编译项目并将其刷入ESP32。
- 方法2 - Platformio:
- 下载Visual Studio Code和Platform IO扩展。
- 在Platformio中安装ESP-IDF框架。
- 编译项目并将其刷入ESP32。
故障排除
若出现以下日志输出,可考虑使用不同的串口监视器(如Windows使用Putty,Linux使用GtkTerm)或修改示例的UART配置:
This is an example of ESP-IDF console component.
Type 'help' to get the list of commands.
Use UP/DOWN arrows to navigate through command history.
Press TAB when typing command name to auto-complete.
Your terminal application does not support escape sequences.
Line editing and history features are disabled.
On Windows, try using Putty instead.
esp32>
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】