ESP8266 WEB配网 掉电记忆

该博客介绍了如何使用Arduino和ESP8266模块实现Wi-Fi配置,通过HTML页面接收用户输入的网络参数,并在Arduino中处理这些参数以连接Wi-Fi。同时,利用EEPROM进行掉电保存,存储SSID和密码的长度,以便设备重启后能自动恢复连接。文中还给出了关键代码片段,包括HandleVal()函数用于处理客户端请求,以及使用EEPROM进行数据存储的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前有使用W600实现该功能,但现在考虑到使用的方便性,遂决定使用 Arduino和esp8266来实现

其中WEB配网的部分大家应该能查询到不少,这边进行一个简单介绍,首先需要一个html文件

我这里是用了一个带服务器IP和端口的,方便我以后使用的,大家可以针对性的写自己的部分

关于HTML5语言的内容就不展开讲了,这里主要是使用的按钮实现的olclick传递的参数,在Arduino里面可以直接获取

 

/*****************************************************
 * 函数名称:HandleVal()
 * 函数说明:对客户端请求返回值处理
 * 参数说明:无
******************************************************/
void HandleVal()
{
     GET_SSID = server.arg("ssid"); //从JavaScript发送的数据中找ssid的值
     GET_PASSWORD = server.arg("password"); //从JavaScript发送的数据中找password的值
     TCP_IP = server.arg("tcp_ip");
     TCP_PORT = server.arg("tcp_port");
     Serial.printf("234:%s\r\n", GET_SSID.c_str());
     Serial.printf("235:%s\r\n", GET_PASSWORD.c_str());
     Serial.printf("TCPIP:%s\r\n", TCP_IP.c_str());
     Serial.printf("TCPoirt:%s\r\n", TCP_PORT.c_str());
     WiFi.begin(GET_SSID,GET_PASSWORD);
}

 如上,可以直接得到传递的具体内容,直接进行联网即可

下面是关于掉电保存的内容,我的思想是在一个地址存储SSID的长度 另一个地址存储PASSWORD的长度(一般都不超过255),故使用byte类型足够,其中主要段落如下,通过这种方式便可以实现掉电保存当前WIFI信息

#include <EEPROM.h>
byte SISSD_ADDR = 0;
byte PASSWORD_ADDR = 100;
byte TCP_ADDR = 200;
byte SISSD_NUM = 0;
byte PASSWORD_NUM = 0;


void setup(void) {
  
    EEPROM.begin(1024);

}


 if (WiFi.status() == WL_CONNECTED)
{

          
SISSD_NUM = GET_SSID.length();
PASSWORD_NUM = GET_PASSWORD.length();
EEPROM.write(SISSD_ADDR,SISSD_NUM);
set_String(SISSD_NUM,SISSD_ADDR+1,GET_SSID);
EEPROM.write(PASSWORD_ADDR,PASSWORD_NUM);
set_String(PASSWORD_NUM,PASSWORD_ADDR+1,GET_PASSWORD);
server.stop();
break;
}


   if(EEPROM.read(SISSD_ADDR)!=0)
   {
   GET_SSID = get_String(EEPROM.read(SISSD_ADDR),SISSD_ADDR+1);
   GET_PASSWORD = get_String(EEPROM.read(PASSWORD_ADDR),PASSWORD_ADDR+1);
   Serial.printf("SSID:%s\r\n", GET_SSID.c_str());
   Serial.printf("PSW:%s\r\n",GET_PASSWORD.c_str());
   WiFi.mode(WIFI_STA);
   WiFi.begin(GET_SSID,GET_PASSWORD);
   }

链接:https://pan.baidu.com/s/1CivvdI1TozYQYX_abSeBHA 
提取码:1234

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值