加入收藏 | 设为首页 | 会员中心 | 我要投稿 荆门站长网 (https://www.0724zz.cn/)- 图像技术、建站、AI硬件、智能营销、数据搜素!
当前位置: 首页 > 运营中心 > 交互 > 正文

使用NodeMCU连接Wi-Fi网络的教程

发布时间:2022-08-25 11:01:06 所属栏目:交互 来源:互联网
导读:基于物联网的设备在我们当中越来越受欢迎,预计到 2022 年将有大约 15 亿台设备连接到互联网。因此,未来的工程师热衷于学习如何构建物联网设备,支持那里是众多开发板,可实现快速的物联网原型设计。 正如我们所知,大多数物联网设备必须连接到互联网才能开
    基于物联网的设备在我们当中越来越受欢迎,预计到 2022 年将有大约 15 亿台设备连接到互联网。因此,未来的工程师热衷于学习如何构建物联网设备,支持那里是众多开发板,可实现快速的物联网原型设计。
 
    正如我们所知,大多数物联网设备必须连接到互联网才能开始运行。在对我们的物联网项目进行原型设计或测试时,我们可以轻松地在我们的程序中硬编码 Wi-Fi SSID 和密码并使其工作。但是当设备交给消费者时,他/她应该能够在不改变程序的情况下扫描并连接到自己的 Wi-Fi 网络 。这就是ESP8266 Wi-Fi 管理器的用武之地,这个 Wi-Fi 管理器功能可以添加到现有程序中,为用户提供扫描和连接到任何 Wi-Fi 网络的选项,一旦建立连接设备可以执行其正常功能,直到必须再次更改网络连接。
 
 
    在这个项目中,我们将使用 NodeMCU,并对其进行编程以使其在两种不同的模式下运行,即接入点 (AP) 模式和站 (STA) 模式。在 AP 模式下,NodeMCU 会像 Wi-Fi 路由器一样工作,发出自己的 Wi-Fi 信号,您可以使用任何智能手机连接到这个 Wi-Fi 网络并打开一个网页,我们可以在其中配置新的 Wi-Fi SSID 和密码,一旦设置了新的凭据,NodeMCU 将自动进入站模式并连接到这个新的 Wi-Fi。将记住新的 Wi-Fi SSID 和密码,以便设备在每次正常开机时都连接到该网络。
 
    所需组件
 
    节点单片机
 
    面包板
 
    按按钮
 
    发光二极管
 
    连接线
 
    电路原理图
 
  pYYBAGL_MDOAbJ-KAAGVptq2FzM185.png
 
    为了指示模块是在站点还是在接入点,我使用了两个 LED。如果红色 LED 闪烁,则表示模块处于工作站模式,并且有一个活动的 wifi 连接与之连接。如果绿灯亮,表示模块处于接入点模式,等待用户配置可用的 wifi 网络。按钮用于在接入点和站点模式之间切换,如果在设备上电时按下该按钮,NodeMCU 将进入接入点模式,在该模式下可以输入新的 Wi-Fi 凭据。一旦设备连接到 Wi-Fi 网络,它将闪烁红色 LED,如下所示。有关这方面的更多信息,请参见编程部分。
 
  pYYBAGL_MC-AHACuAAKcHdMI70o210.png
 
    稍后您可以将红色 LED 闪烁部分替换为项目的实际工作。例如,如果您已经构建了一个测量温度和湿度的设备,那么您可以执行此功能,而不是让红色 LED 闪烁。
 
    代码说明
 
    在进入编码之前,有一些库,必须下载。使用以下链接下载库并将它们添加到您的 Arduino IDE
 
    添加库后,我们就可以开始编程了。这个项目的完整程序可以在这个页面的底部找到,相同的解释如下。我们通过添加所需的头文件开始我们的程序。
 
   
 
  #include  //https://github.com/esp8266/Arduino
  #include  //https://github.com/tzapu/WiFiManager​
   
 
  我们将以这样的方式编码,当给模块加电时,如果开关处于 ON 状态,它将把 ESP 设置为接入点 (AP) 模式并重置保存的设置。除非用户使用支持 Wi-Fi 的设备并将其连接到此接入点,否则它将保持此模式。当连接到这个接入点时,它会将用户重定向到一个网页,用户可以在其中配置新的 SSID 和密码。设置凭据后,ESP 将自行重启并作为站 (STA) 模式工作。
 
  使用用户在网页上提供的新的SSID和密码,尝试建立连接,如果连接建立,我们的连接过程就成功完成。如果连接建立失败,则从头开始重复该过程。
 
  以下代码仅在模块通电且开关处于开启状态时才会激活。这部分代码重置设置并在接入点模式下运行 ESP。如果连接建立,则连接过程完成,程序进入 void loop()。
 
   
 
  无效设置(){
      // 把你的设置代码放在这里,运行一次:
      序列号.开始(115200);
      pinMode(触发器,输入);
      pinMode(LED,输出);
       pinMode(电源,输出);
      如果(数字读取(触发器)== 高){
      数字写入(功率,高);
      WiFiManager wifiManager;
      wifiManager.resetSetTIngs();
      wifiManager.autoConnect("CIRCUIT DIGEST WiFi 管理器");
      Serial.println("已连接:)");
    }
  }
   
 
  代码的下一部分用于了解 WiFi 连接的状态。它将不断检查代码并指示用户是否连接到任何 WiFi 网络。如果红灯连续闪烁,则表示连接已建立。如果绿色 LED 闪烁,则表明 ESP 未连接到网络,并且之前的设置已被重置。即使给模块供电,并且两个 LED 都不亮,那么这意味着模块已经失去了与网络的连接。
 
   
 
  无效循环(){
    if (WiFi.status() == WL_CONNECTED)
          {
            数字写入(电源,低);
            而(WiFi.status()== WL_CONNECTED){
              数字写入(LED,高);
              延迟(500);
              数字写入(LED,低);
              延迟(200);  
            }
          }
          别的 {
            数字写入(LED,低);
          }
   
 
    NodeMCU Wi-Fi 管理器工作
 
    步骤1:将电源连接到模块,同时按下开关。绿色 LED 将开始发光以指示 ESP 模块处于接入点 (AP) 模式,如下所示
 
  poYBAGL_MCeAVPAcAANjM7ehKHM751.png
 
    第 2 步:使用任何支持 wifi 的设备连接此接入点。选择manage route r 选项,它将重定向到网页。选择配置 Wi-Fi。
 
  poYBAGL_MCOAQfiDAADDeRSGkg8581.png
 
    第 3 步: ESP 将扫描并显示所有可用的网络。选择所需的网络并输入密码。
 
  poYBAGL_MCCAPqDoAACfjdAj9YU714.png
 
    第 4 步:如果红色 LED 开始闪烁,则表明 ESP 已连接到 Wi-Fi 网络。
 
  pYYBAGL_MBuAdGx2AAMZ5Dmm_eg400.png
 
    步骤5:如果连接建立失败,从步骤1开始。
 
  #include // https://github.com/esp8266/Arduino
 
  //需要库
 
  #include
 
  #include
 
  #include // https: //github.com/tzapu/WiFiManager
 
  #define trigger D0
 
  #define LED D2
 
  #define power D3
 
  void setup() {
 
  // 把你的设置代码放在这里,运行一次:
 
  Serial.begin(115200);
 
  pinMode(触发器,输入);
 
  pinMode(LED,输出);
 
  pinMode(电源,输出);
 
  if(digitalRead(trigger) == HIGH){
 
  digitalWrite(power,HIGH);
 
  WiFiManager wifiManager;
 
  wifiManager.resetSetTIngs();
 
  wifiManager.autoConnect("CIRCUIT DIGEST WiFi 管理器");
 
  Serial.println("已连接:)");
 
  }
 
  }
 
  无效循环() {
 
  if (WiFi.status() == WL_CONNECTED)
 
  {
 
  digitalWrite(power,LOW);
 
  而(WiFi.status()== WL_CONNECTED){
 
  digitalWrite(LED,HIGH);
 
  延迟(500);
 
  数字写入(LED,低);
 
  延迟(200);
 
  }
 
  }
 
  其他 {
 
  数字写入(LED,LOW);
 
  }
 
  }
 
  

(编辑:荆门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读