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

通信网络

624人已加入

描述

  基于物联网的设备在我们当中越来越受欢迎,预计到 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 和密码,以便设备在每次正常开机时都连接到该网络。

  所需组件

  节点单片机

  面包板

  按按钮

  发光二极管

  连接线

  电路原理图

NODEMCU

  为了指示模块是在站点还是在接入点,我使用了两个 LED。如果红色 LED 闪烁,则表示模块处于工作站模式,并且有一个活动的 wifi 连接与之连接。如果绿灯亮,表示模块处于接入点模式,等待用户配置可用的 wifi 网络。按钮用于在接入点和站点模式之间切换,如果在设备上电时按下该按钮,NodeMCU 将进入接入点模式,在该模式下可以输入新的 Wi-Fi 凭据。一旦设备连接到 Wi-Fi 网络,它将闪烁红色 LED,如下所示。有关这方面的更多信息,请参见编程部分。

NODEMCU

  稍后您可以将红色 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) 模式,如下所示

NODEMCU

  第 2 步:使用任何支持 wifi 的设备连接此接入点。选择manage route r 选项,它将重定向到网页。选择配置 Wi-Fi。

NODEMCU

  第 3 步: ESP 将扫描并显示所有可用的网络。选择所需的网络并输入密码。

NODEMCU

  第 4 步:如果红色 LED 开始闪烁,则表明 ESP 已连接到 Wi-Fi 网络。

NODEMCU

  步骤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);

}

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分