乐鑫技术交流
直播中

蔡鼎瑾

7年用户 1007经验值
私信 关注
[问答]

将ESP8266配置为用作单个UDP连接的透明WiFi到串行桥接器遇到的疑问求解

我正在尝试将我的 ESP8266 (ESP-WROOM-02) 配置为用作单个 UDP 连接的透明 WiFi 到串行桥接器。ESP8266分配有 IPADD 192.168.47.1,并在端口 54372 上侦听。我有一个 PC 应用程序,它成功连接到基于 Microchip RN-131 模块的控制器,并希望配置 ESP-WROOM-02 模块作为此模块的替代品。以下是我用于配置ESP8266的命令。我希望这是重新启动ESP8266时的默认配置。

在 cwmode_def=2 时
在 cipmux=1 时
AT+CWSAP_DEF="PMC-Eight-XX","PMC-Eight",7,3,4,0
AT+CIPAP_DEF="192.168.47.1","192.168.47.1","255.255.255.0"
AT+CWDHCPS_DEF=1,60,"192.168.47.2","192.168.47.2"
AT+SAVETRANSLINK=1,"192.168.47.2",54377,"UDP",54372

以下是我用来配置 RN-131 模块的命令(注意:模块上的默认协议值设置为 TCP、UDP)。

设置 UART B 115200
设置通信大小 64
设置 DNS 地址 0.0.0.0
设置 DNS 备份 0.0.0.0
save
设置 DNS 名称 DNS1
设置 FTP 地址 0.0.0.0
设置 FTP 时间 200
save
设置 IP DHCP 4
设置 IP 标志0x47
设置 IP 门 192.168.47.1
设置 IP 地址 192.168.47.1
设置 IP 网络 255.255.0.0
save
设置 IP 主机 0.0.0.0
设置 IP 协议0x03
设置 IP 远程 54372
设置 IP 本地 54372
save
设置 sys autosleep 0
设置 sys sleep 0
设置 sys wake 5
设置 sys 触发器0x01
save
设置 WLAN 身份验证 4
设置 WLAN 隐藏 1
设置 WLAN 加入 7
设置 WLAN Chan 8
save
设置wlan ssid PMC-Eight-b6
设置 apmode ssid PMC-Eight-b6
设置 opt deviceid PMC-Eight
save
设置WLAN密码PMC-Eight
设置 apmode 密码 PMC-Eight
save
设置 WLAN ext_antenna 1
save

重新启动



回帖(1)

廖阿朋

2024-7-16 17:35:09
首先,让我们逐步分析您提供的命令和配置:

1. `cwmode_def=2`:这将 Wi-Fi 模式设置为 AP(接入点)模式。
2. `cipmux=1`:这启用了多个连接,允许多个客户端连接到 ESP8266。
3. `AT+CWSAP_DEF="PMC-Eight-XX","PMC-Eight",7,3,4,0`:这是设置 Wi-Fi 接入点的默认配置,包括 SSID(无线网络名称)、密码、加密类型等。
4. `AT+CIPAP_DEF="192.168.47.1","192.168.47.1","255.255.255.0"`:这是设置静态 IP 地址、子网掩码和网关的默认配置。

现在,让我们解决您的问题:

问题:如何将 ESP8266 配置为用作单个 UDP 连接的透明 WiFi 到串行桥接器,并在重启时保留此配置?

解决方案:

1. 首先,确保您的 ESP8266 已成功连接到 Wi-Fi 网络。您可以使用以下命令检查 Wi-Fi 连接状态:

```
AT+CWJAP_DEF?
```

2. 接下来,配置 ESP8266 以接收和发送 UDP 数据。使用以下命令设置 UDP 服务器:

```
AT+CIPSERVER=1,54372
```

这将启用 ESP8266 上的 UDP 服务器,监听端口 54372。

3. 要实现透明桥接,您需要在 ESP8266 上编写一个程序,该程序可以接收来自 PC 应用程序的 UDP 数据,并通过串行接口发送到 RN-131 模块。同样,当 RN-131 模块接收到数据时,ESP8266 需要将数据发送回 PC 应用程序。您可以使用以下示例代码作为参考:

```cpp
#include
#include

const char* ssid = "your_ssid";
const char* password = "your_password";

ESP8266UDP udp;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  udp.begin(54372);
}

void loop() {
  int packetSize = udp.parsePacket();
  if (packetSize) {
    String incomingData = udp.readString();
    Serial.print(incomingData);
  }
  if (Serial.available()) {
    String serialData = Serial.readString();
    udp.beginPacket(udp.remoteIP(), udp.remotePort());
    udp.write(serialData.c_str(), serialData.length());
    udp.endPacket();
  }
}
```

4. 要使配置在重启时保留,您可以使用 ESP8266 的非易失性存储器(NVS)功能。您需要将配置命令保存到 NVS,然后在启动时从 NVS 恢复配置。以下是如何保存和恢复配置的示例:

保存配置到 NVS:

```
AT+SaveTransLinkParam=1
```

恢复配置:

```
AT+RST
```

在 ESP8266 重启后,它将自动从 NVS 恢复配置。

通过以上步骤,您应该能够将 ESP8266 配置为用作单个 UDP 连接的透明 WiFi 到串行桥接器,并在重启时保留此配置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分