myWebConfig.cpp程序

#include "config.h"
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <EEPROM.h>

#ifndef APSSID
#define APSSID "your-ssid"
#define APPSK  "your-password"
#endif

const char* ssid = APSSID;
const char* password = APPSK;

ESP8266WebServer server(80);//设置web服务器访问端口
//========================================================================================================================================

void writer(String stype,String data)
{
  int i,j;
  EEPROM.begin(100); //申请操作到地址100(比如你只需要读写地址为100上的一个字节,该处也需输入参数101)
  if(stype=="name")
  {
    i=0;
    EEPROM.write(i, data.length());
  }
  else if(stype=="pwd")
  {
    i=20;
    EEPROM.write(i, data.length());
  }
  i++;
  for(j=0; j<data.length(); i++,j++)
  {
    EEPROM.write(i, data[j]); //写数据
  }
   EEPROM.commit(); //保存更改的数据
}
//==================================================================================================================
String reader(String stype)
{
   String data=""; 
  int i,j,len;
  EEPROM.begin(100); //申请操作到地址100(比如你只需要读写地址为100上的一个字节,该处也需输入参数101)
  
  if(stype=="name")
  {
    i=0;
    len=EEPROM.read(i);
  }
  else if(stype=="pwd")
  {
    i=20;
    len=EEPROM.read(i);
  }
  i++;
  for(j=0; j<len; i++,j++)
  {
  data =data+ (char)EEPROM.read(i);
 
  }
Serial.println("*****************************");
Serial.println(data);
Serial.println("*****************************");
Serial.println("End  reader");
 return data;
}
void handleRoot(){//根目录发送主页
  server.send(200, "text/html", "<!DOCTYPE HTML>\
            <html>\
              <meta name=\"viewport\" content=\"initial-scale=1, user-scalable=0, minimal-ui\">\
            <body>\
              <h1>wifi setting</h1>\
              <form action=\"demo\" method=\"get\">\
                wifi name:<br>\
                <input type=\"text\" name=\"name\">\
                <br>\
                wifi password:<br>\
                <input type=\"text\" name=\"password\">\
                <br>\
                <input type=\"submit\" value=\"ok\">\
              </form> \
            </body>\
            </html>");
}
void getDemo(){//get 访问 demo地址
  Serial.println(server.uri());
  Serial.println(server.arg("name"));
  Serial.println(server.arg("password"));
  writer("name",server.arg("name"));
  writer("pwd",server.arg("password"));
 Serial.println("====================================");
 Serial.println(reader("name"));
 Serial.println(reader("pwd"));
 Serial.println("++++++++++++++++++++++++++++++++"); 
 Serial.printf("password=%d\n",server.arg("password").length());
  
  server.send(200, "text/html", "<!DOCTYPE HTML>\
            <html>\
              <meta name=\"viewport\" content=\"initial-scale=1, user-scalable=0, minimal-ui\">\
            <body>\
              <h1>======OK======</h1>\
            </body>\
            </html>");
            
}//====================================================
void handleNotFound(){//访问 地址不存在返回404
  server.send(200, "text/html", "<!DOCTYPE HTML>\
            <html>\
              <meta name=\"viewport\" content=\"initial-scale=1, user-scalable=0, minimal-ui\">\
            <body>\
              <h1>======ERROR======</h1>\
            </body>\
            </html>");
}
void myWebConfig_init(){
 
  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);
  
  server.on("/", handleRoot);//注册访问根目录回调函数
  server.on("/demo",getDemo);//注册访问demo回调函数
  server.onNotFound(handleNotFound);//注册无地址访问函数
  server.begin();//启动服务器
  
    Serial.println("");
    Serial.println("HTTP server started");
  
}
void myWebConfig_run() {
  server.handleClient();//运行服务器
}
void myWebConfig_close(){
  server.close();  
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容