物联网-wemos D1 Mini (esp8266)实验二 --- 蜂鸣器版失物寻找 附完整源代码和注释

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

//HTML主页mainPage
static const char mainPage[] PROGMEM = u8R"(
  <!DOCTYPE html>
  <html>
  <head>
      <title>ESP8266</title>
      <meta name='viewport' content='width=device-width, initial-scale=1.0'>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <a href='call?buzzer=ON'>呼叫蜂鸣器</a> 
    <br><br>
    <a href='call?buzzer=OFF'>关闭蜂鸣器</a> 
    <p>蜂鸣器失物找寻测试</p>
  </body>
  </html>
)";
//错误路径HTML
static const char errorPage[] PROGMEM= u8R"(
路径错误
)";
//设置路径HTML  
static const char settingPage[] PROGMEM= u8R"(
请设置
)";


String buzzerState = u8"OFF";//蜂鸣器状态 
ESP8266WebServer _esp8266WebServer(80);//定义esp82666WebServer实例

void handleRoot() {//网页根目录处理函数
  _esp8266WebServer.send(200, "text/html", mainPage);//"text/html":以html的格式输出
}

void handleNotFound() {//网络路径不存在处理函数
  _esp8266WebServer.send(404, "text/plain", errorPage);//"text/plain":原样无格式输出
}

void handleSetting() {//网页设置处理函数
  _esp8266WebServer.send(200, "text/plain", settingPage);
}

void buzzerStateHandel() {
  if (_esp8266WebServer.hasArg(u8"buzzer")) {
    buzzerState = _esp8266WebServer.arg(u8"buzzer");
    if (buzzerState == u8"ON") {
      pinMode(D1, OUTPUT);
      digitalWrite(D1, HIGH);
    } else if (buzzerState == u8"OFF") {
      pinMode(D1, OUTPUT);
      digitalWrite(D1, LOW);
    }
    _esp8266WebServer.send(200, u8"text/plain", String(u8"OK"));
  }
}


// setup() 启动时执行一次
void setup() {

  //服务器设置
  while (!WiFi.softAP(u8"MYBUZZER", u8"", 1,false));//ap账号(MYBUZZER)、密码(无)设置。
  _esp8266WebServer.on("/call", buzzerStateHandel);//含有buzzer这个变量的处理函数
  _esp8266WebServer.on("/", handleRoot);
  _esp8266WebServer.onNotFound(handleNotFound);
  _esp8266WebServer.on("/setting", handleSetting);
  _esp8266WebServer.begin();

  //蜂鸣器设置为off状态
  pinMode(D1, OUTPUT);
  digitalWrite(D1, LOW);

}

// loop() 循环执行
void loop() {
  _esp8266WebServer.handleClient();

}

猜你喜欢

转载自blog.csdn.net/happyjoey217/article/details/82800051