【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。

相关推荐
有续技术20 分钟前
哈斯 (Haas) 机床 IP、端口号配置内容总结
运维·服务器
心念枕惊31 分钟前
新写了个直播录制工具,可录制抖音快手斗鱼直播
运维·服务器·数据库
躺不平的理查德42 分钟前
CMAKE备忘录
linux·运维·服务器
9624561 小时前
跨域与私有网络访问限制排查实录
运维·服务器·网络
不在逃避q2 小时前
一步一步学习使用LiveBindings()TListView进阶使用(),打造天气预报程序
服务器·数据库·学习
诸葛老刘2 小时前
Ubuntu 服务器常用运维命令
运维·服务器·ubuntu
红叶舞2 小时前
成数据绑定对象,在应用程序中处理完数据后,将更新的数据序列化为JSON传回远端服务器,很多移动应用使用了这种模式处理服务器端的数据。 ...
运维·服务器·json
深圳恒讯2 小时前
H100服务器是什么?H100服务器适合哪些企业?
运维·服务器
ZJH__GO2 小时前
网络编程v4--群聊和私聊的实现
运维·服务器·网络
Ivan CloudBay3 小时前
SDK 游戏盾如何隐藏游戏服务器的真实 IP?
服务器·tcp/ip·游戏