【Ardiuno】实验ESP32单片机搭建简易Web服务器功能(图文)

今天,小飞鱼继续来测试使用ESP32来实现简易的wifi无线web服务器功能。使用Ardiuno平台编辑器输入以下示例代码:

复制代码
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>

const char* ssid = "XIAOFEIYU";
const char* password = "XIAOFEIYU666";

WebServer server(80);

const int led = 13;

void handleRoot() {
  digitalWrite(led, 1);
  server.send(200, "text/plain", "Hello from ESP32! --- XIAOFEIYU");
  digitalWrite(led, 0);
}

void handleNotFound() {
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}

void setup(void) {
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(9600);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp32")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);

  server.on("/inline", []() {
    server.send(200, "text/plain", "this works as well");
  });

  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();
  delay(2); 
}

编译上传程序到ESP32开发板,查看串口监视器输出,得到开发板获取的ip地址

打开浏览器,输入开发板连接wifi获取的ip地址,可以看到有网页内容显示出来,我们的简易web服务器可以工作了。

可以输入指定的参数,显示预设的内容:

输入其他路径,如果没有这个地址设置,则显示找不到文件。

通过以上示例代码的实验,我们了解了使用ESP32搭建web服务器的过程和web服务器的使用方法,积累了相关开发经验,继续Go。

相关推荐
夔8889 分钟前
Excel通过VBA脚本去除重复数据行并保存
java·服务器·excel
zyx没烦恼23 分钟前
Linux 多线程
linux·运维·服务器·开发语言·c++
昊昊该干饭了1 小时前
玩转代理 IP :实战爬虫案例
运维·服务器·爬虫·网络协议·tcp/ip·网络爬虫
菌菌巧乐兹1 小时前
电脑知识 | TCP通俗易懂详解 <一>
服务器·网络·tcp/ip
危险、1 小时前
AWS服务器 磁盘空间升级到100G后,怎么使其生效?
服务器·云计算·aws
darkchink2 小时前
[LevelDB]Block系统内幕解析-元数据块(Meta Block)&元数据索引块(MetaIndex Block)&索引块(Index Block)
android·java·服务器·c语言·数据库·c++·分布式
无名之逆2 小时前
[特殊字符] 超轻高性能的 Rust HTTP 服务器 —— Hyperlane [特殊字符][特殊字符]
java·服务器·开发语言·前端·网络·http·rust
淋一遍下雨天2 小时前
第七章总结:集合
运维·服务器·windows
稳联技术3 小时前
玻璃厂退火炉“温度智囊”:Profinet转ModbusRTU网关
运维·服务器·网络
小王努力学编程3 小时前
【Linux网络编程】UDP Echo Server的实现
linux·运维·服务器·网络·c++·学习·udp