基于物联网的设备在我们当中越来越受欢迎,预计到 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 和密码,以便设备在每次正常开机时都连接到该网络。
所需组件
节点单片机
面包板
按按钮
发光二极管
连接线
电路原理图
为了指示模块是在站点还是在接入点,我使用了两个 LED。如果红色 LED 闪烁,则表示模块处于工作站模式,并且有一个活动的 wifi 连接与之连接。如果绿灯亮,表示模块处于接入点模式,等待用户配置可用的 wifi 网络。按钮用于在接入点和站点模式之间切换,如果在设备上电时按下该按钮,NodeMCU 将进入接入点模式,在该模式下可以输入新的 Wi-Fi 凭据。一旦设备连接到 Wi-Fi 网络,它将闪烁红色 LED,如下所示。有关这方面的更多信息,请参见编程部分。
稍后您可以将红色 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) 模式,如下所示
第 2 步:使用任何支持 wifi 的设备连接此接入点。选择manage route r 选项,它将重定向到网页。选择配置 Wi-Fi。
第 3 步: ESP 将扫描并显示所有可用的网络。选择所需的网络并输入密码。
第 4 步:如果红色 LED 开始闪烁,则表明 ESP 已连接到 Wi-Fi 网络。
步骤5:如果连接建立失败,从步骤1开始。
#include
//需要库
#include
#include
#include
#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);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)