esp32 服务器

该代码演示了如何使用ArduinoIDE和ESP32通过WiFi连接到指定网络,并创建一个简单的Web服务器。服务器响应HTTPGET和POST请求,用于控制LED灯的状态。用户可以通过GET请求查看状态,通过POST请求改变LED的状态。
摘要由CSDN通过智能技术生成

#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>
#include <WebServer.h>

WiFiMulti  wifiMulti;
WebServer  ESP32_server(80);
int key;
void hanshuyi();
void hanshuer();
void hanshuLED();
void setup() 
{
    Serial.begin(9600);
   
    wifiMulti.addAP("502","abcd5002");
    pinMode(2,OUTPUT);
    pinMode(4,OUTPUT);
    
    int i;
    while (wifiMulti.run() != WL_CONNECTED)
    {
      i++;
      Serial.print(i);
      delay(1000);
    }
    Serial.println("\n");
    Serial.print("ADD:");
    Serial.println(WiFi.SSID());
    Serial.print("IP:");
    Serial.println(WiFi.localIP());
   

    //ESP32 服务器
  ESP32_server.begin();
  ESP32_server.on("/",HTTP_GET,hanshuyi);
  //HTTP_GET 请求的方法
  //浏览器每次按回车时会向服务器发送一个GIT请求

  ESP32_server.on("/LED",HTTP_POST,hanshuLED);
  //HTTP_POST 请求的方法
  //POST 浏览器通过POST方法向服务器/LED界面发送请求时执行
  //hanshuLED函数
  ESP32_server.onNotFound(hanshuer);

  Serial.println("OK");
}

void loop()
{
  ESP32_server.handleClient();//处理http服务器访问
  key=digitalRead(4);
}
//点灯函数
void hanshuLED()
{
    digitalWrite(4,!digitalRead(4));
    ESP32_server.sendHeader("Location","/");
    //跳回根目录
    // Location 位置
    // "/"这个是根目录界面标志
    ESP32_server.send(303);//发送303,跳转
    // 303 响应状态码 跳转
}
//服务器根
void hanshuyi()
{
  String cdx;
  if(key==1)
  {
    cdx="LED HELT";
  }
  else
  {
    cdx="LED LOW";
  }
  ESP32_server.send(200,"text/html","<form action=\"/LED\"method=\"POST\"><div style=\"margin-left:30%;width:500px;height:500px;margin-top:10%;\"><button  action=\"/LED\"method=\"POST\" style=\"background:red;width:100px;height:100px;float:left;border-radius:50%;\">open</button><button style=\"background:green;float:right;height:100px;border-radius:50%;width:100px;\">off</button></div> </form>");
  // ESP32_server.send(200,"text/plain",cdx);
  // ""包含的代码 没有""就是文本 action=这种是html的标记
  // \"\"是html  两个""里面的代码是在html里面的代码
  //200 响应状态码
  //"text/plain",数据类型 纯文本
  //"text/html"  文本代码
  //"Hello from ESP32"信息 
}
//404
void hanshuer()
{
    ESP32_server.send(200,"ext/plain","404 ON");
}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值