之前有使用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:%srn", GET_SSID.c_str());
Serial.printf("235:%srn", GET_PASSWORD.c_str());
Serial.printf("TCPIP:%srn", TCP_IP.c_str());
Serial.printf("TCPoirt:%srn", 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:%srn", GET_SSID.c_str());
Serial.printf("PSW:%srn",GET_PASSWORD.c_str());
WiFi.mode(WIFI_STA);
WiFi.begin(GET_SSID,GET_PASSWORD);
}
链接:https://pan.baidu.com/s/1CivvdI1TozYQYX_abSeBHA
提取码:1234
全部0条评论
快来发表一下你的评论吧 !