使用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); } } (编辑:荆门站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |