小王学程序 2023-05-22 13:18 采纳率: 0%
浏览 10

有哪位专家设计过用NodeMCU-esp8266的无线网络中继器设计

遇到一些程序设计的问题,用esp8266设计的接入点MyAP,连接以后没有网络,怎样设计一个代码建立MyAP与外部的wifi通信连接,使得MyAP有网络,可以正常上网。

  • 写回答

1条回答 默认 最新

  • @晓码自在 2023-05-23 00:26
    关注

    该回答引用GPT与博主@晓码自在合作编写:

    从您的描述,此问题是ESP8266创建的AP模式wifi无法访问外网导致的。要解决此问题,您需要:

    1. ESP8266同时连接一个外部wifi热点,以获取外网访问。代码如下:
    c
    // 扫描外部wifi
    WiFi.mode(WIFI_STA);    
    WiFi.scanNetworks();   
    
    // 连接外部wifi
    WiFi.begin("ssid", "password");  
    
    // 检查是否连接成功
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
    } 
    
    
    1. ESP8266创建AP模式wifi,但“网络模式”选择为“混合AP+STA模式”。这会将STA模式得到的网络连接共享到AP模式。
    c
    // 创建AP
    WiFi.softAP("MyAP");   
    
    // 选择混合AP+STA模式   
    WiFi.mode(WIFI_AP_STA);
    
    
    1. 在混合模式下,ESP8266的STA模式默认会启用“网桥”功能,实现内外网络互通。
    2. AP模式连接的设备就可以通过ESP8266访问外网,实现无线上网功能。
      一个完整的代码示例如下:
    c
    #include <ESP8266WiFi.h>
    
    void setup() {
      // 连接外部wifi    
      WiFi.begin("ssid", "password");    
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
      }
      
      // 创建AP
      WiFi.softAP("MyAP");    
      
      // 选择混合AP+STA模式
      WiFi.mode(WIFI_AP_STA);  
    }
    
    void loop() {
    }
    
    

    以上就是使用ESP8266创建AP模式wifi并实现外网访问的方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月22日

悬赏问题

  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?
  • ¥300 寻抓云闪付tn组成网页付款链接
  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥15 服务端控制goose报文控制块的发布问题