简单的 ESP32 热点网页服务器

#include <Arduino.h>

#include <WebServer.h>

#define LED_PIN 2  // GPIO 2 连接 LED

// put function declarations here:

// 设置Wi-Fi热点的名称和密码

const char* ssid = “ESP32_Hotspot”;

const char* password = “12345678”;

// 创建Web服务器对象,监听80端口

WebServer server(80);

// 根目录的处理函数

void handleRoot() {

  // 获取客户端IP地址

  IPAddress clientIP = server.client().remoteIP();

  // 打印客户端的IP地址

  Serial.print(“客户端IP地址: “);

  Serial.println(clientIP);

  String html = “<html><head><meta charset=\”UTF-8\”></head><body><h1>欢迎来到 ESP32 热点</h1>”;

html += “<p>这是一个简单的 ESP32 热点网页服务器。</p>”;

html += “<p><a href=\”/led/on\”><button>打开 LED</button></a></p>”;

html += “<p><a href=\”/led/off\”><button>关闭 LED</button></a></p>”;

html += “</body></html>”;

server.send(200, “text/html”, html);

}

// 检查Wi-Fi客户端的连接状态

void checkClientConnection() {

  if (WiFi.softAPgetStationNum() > 0) {

    // 如果有设备连接到ESP32热点,点亮LED

    digitalWrite(LED_PIN, HIGH);

  } else {

    // 如果没有设备连接,熄灭LED

    digitalWrite(LED_PIN, LOW);

  }

}

void setup() {

   // 启动串口

  Serial.begin(9600);

  // 设置ESP32为热点模式

  WiFi.softAP(ssid, password);  // 启动ESP32热点

  // 打印热点的IP地址

  Serial.println(“ESP32 Hotspot started”);

  Serial.print(“IP Address: “);

  Serial.println(WiFi.softAPIP());  // 打印ESP32的热点IP地址

  pinMode(LED_PIN,OUTPUT);

  digitalWrite(LED_PIN, LOW);

  // 设置根目录请求的处理函数

  server.on(“/”, handleRoot);

  // 启动Web服务器

  server.begin();

}

void loop() {

   server.handleClient();  // 处理客户端请求

   // 检查客户端连接状态

   checkClientConnection();

}

本网站所收集的公开资料部分来源于互联网,其版权归原作者本人所有,本站只是转载和摘录,目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其的真实性能做到合理的研判负责,也不构成任何其他建议,如果有任何侵犯您权益和知识产权的地方,请来邮或来电告知本站,经过核实,我们会及时的进行整理删除,谢谢!
评论 共0条
取消回复 发布评论