ESP32构建简单WebServer服务器

news2024/12/23 5:03:19

目录

      • WebServer 服务器
        • ESP32 filesystem uploader
        • WebServer 库
        • WIFI 链接
        • 网页与代码烧录

WebServer 服务器

此案例中,我们将创建一个最简单的 webserver 服务器

案例实现:ESP32 通过 SPIFFS 上传网页文件并保存,之后手机开启热点,ESP32 连接到该热点;与手机处于同一热点下的任何一个设备(下面用电脑演示)都可以通过 ESP32 反馈的内网地址访问其构建的网页!


ESP32 filesystem uploader

SPIFFS 是一种嵌入式文件管理系统
arduino 已经集成了对应库,但是依然需要我们下载另一个库来实现文件上传的功能

下载 ESP32 filesystem uploader
https://github.com/me-no-dev/arduino-esp32fs-plugin

注意我们需要下载的是 jar 文件,即编译过后的,具体下载地址在上方 github 页面的 readme 里面有

下载对应的 ZIP 包后,直接解压到 arduino 根目录下的 tools 文件夹内即可(如下图所示)

在这里插入图片描述


重启 arduino,新建一个项目,项目内容保持为空

依次点击 工具->ESP Sketch Data Upload

在这里插入图片描述

由于我们是第一次使用 SPIFFS,需要进行初始化,弹出窗口点击 yes 即可

等待一段时间,当 arduino 下方输出框停止输出后,就会在当前项目目录下创建一个 data 文件夹

该文件夹存放网页文件,下次直接按照此方法再次运行 ESP Sketch Data Upload 即可上传文件到 ESP32 的 SPIFFS 里面了!


WebServer 库

此时需要外部的 webserver 库支持,下载下面这两个库

AsyncTCP https://github.com/me-no-dev/AsyncTCP
ESPAsyncWebServer https://github.com/me-no-dev/ESPAsyncWebServer

依次点击 项目->加载库->加载 ZIP 库

选择我们下载完毕的两个库的 ZIP 压缩包,arduino 即可自动安装!

在这里插入图片描述


WIFI 链接

此时开启我们的手机热点

我的热点设置是
热点名称(SSID):zhiller
热点密码:pp12345678

故得出以下代码

#include <WiFi.h>
#include <SPIFFS.h>
#include "ESPAsyncWebServer.h"

// 设置ESP32服务器运行于80端口
AsyncWebServer server(80);

//连接WIFI
void connect_wifi(){

  // WIFI名称以及对应密码
  const char* wifi_ssid = "zhiller";
  const char* wifi_password = "pp12345678";

  // 设置串口波特率,以便通过串口监视器观察输出
  Serial.begin(115200);

  WiFi.begin(wifi_ssid, wifi_password);         //连接WIFI

  Serial.print("正在连接WIFI");

  //循环请求,直到连接成功
  while(WiFi.status() != WL_CONNECTED){
    Serial.print(".");
    delay(500);
  }

  Serial.println();
  IPAddress local_IP = WiFi.localIP();
  Serial.print("WIFI链接成功,此为IP:"); //连接成功提示
  Serial.println(local_IP);
}

// 开启webserver,挂载网页index.html
void web_server(){
 if(!SPIFFS.begin(true)){
    Serial.println("SPIFFS发生错误");
    return;
  }
  server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.html");
  server.begin();                       //初始化
}

void setup() {
  connect_wifi();
  web_server();
}

void loop() {

}

网页与代码烧录

随便写一个网页

代码清单 index.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<link
			rel="stylesheet"
			type="text/css"
			href="style.css"
		/>
		<title>测试网站</title>
	</head>
	<body>
		<h1>测试网站</h1>
		<p>测试测试测试</p>
	</body>
</html>

保存该网页到项目目录下的 data 文件夹

之后回到 arduino,依次执行 工具->ESP Sketch Data Upload 上传网页文件
(此时必须要保证串口监视器是关闭状态,否则上传必定失败)

上传完毕后,先打开串口监视器(提前调节波特率到 115200),然后才开始上传代码

我们通过串口监视器可以观察到正在连接 WIFI,并且在连接到 WIFI 后,出现 ESP32 搭设的 webserver 的内网 IP

在这里插入图片描述

之后将电脑连接到手机热点

电脑上访问对应的 IP+端口,如 192.168.43.141:80
此时即可浏览到对应的网页 index.html


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试真题 JavaScript 实现【检查是否存在满足条件的数字组合】【2022Q4 100分】

一、题目描述 给定一个正整数数组&#xff0c;检查数组中是否存在满足规则的数字组合 规则&#xff1a;A B 2C 二、输入描述 第一行输出数组的元素个数。 接下来一行输出所有数组元素&#xff0c;用空格隔开。 三、输出描述 如果存在满足要求的数&#xff0c;在同一行…

Vue:全选多个选择框

可以使用 v-model 来绑定一个布尔类型的变量来实现全选多个选择框的功能。具体步骤如下&#xff1a; 在data中定义一个数组&#xff0c;用来存储所有需要选择的项的状态。 在模板中使用 v-for 指令循环渲染每个选择框&#xff0c;并将每个选择框的状态绑定到数组中对应的项上。…

从VALSE 2023看近期人工智能的研究热点

VALSE发起于2011年&#xff0c;是Vision And Learning SEminar的简写&#xff0c;取法语“华尔兹舞”之意&#xff0c;中文名称为视觉与学习青年学者研讨会。VALSE为计算机视觉、图像处理、模式识别与机器学习研究领域的华人青年学者提供了一个自由、平等、低成本的深度学术交流…

Postgresql源码(106)Generic Plan与Custom Plan的区别(以分区表为例)

相关&#xff1a; 《Postgresql源码&#xff08;105&#xff09;分区表剪枝代码分析》 《Postgresql源码&#xff08;106&#xff09;Generic Plan与Custom Plan的区别&#xff08;以分区表为例&#xff09;》 实例 CREATE TABLE measurement (city_id int not null,l…

MariaDB数据库的主从配置

1、前置工作 首先准备两台可以互相ping通的机器&#xff0c;两台机器可以互为主从&#xff0c;示例&#xff1a;10.210.23.77主服务器 10.20.84.183从服务器 2、安装 在两台机器上各自安装数据 解压MariaDB安装包&#xff1b; tar zxvf MariaDB.tgz cd mariadb 安装Mari…

上海市计算机学会竞赛平台比赛组卷

思路&#xff1a;桶排序开出长度为1e55的桶&#xff0c;然后从后向前遍历&#xff0c;对与桶是2的值输出桶的序号即可~~&#xff08;我用的哈希排序&#xff09;~~ 代码&#xff1a; #include <bits/stdc.h>using namespace std; const int N 1e5 5; map<int ,int…

docker 安装sqlserver数据库并开启代理(保姆级)

-目录- 一、安装docker二、安装sqlserver数据库2.1 从 Microsoft 容器注册表中请求 SQL Server 2022 (16.x) Linux 容器映像。2.2 要使用 Docker 运行 Linux 容器映像&#xff0c;可以从 Bash Shell 或提升的 PowerShell 命令提示符使用以下命令2.3 要查看 Docker 容器&#xf…

Linux进程间通信 - 命名管道

在之前的文章中我们讲述了匿名管道的原理的以及对应的简单的两个小例子&#xff0c;在本文中&#xff0c;我们将来继续管道的学习 -- 命名管道。 命名管道 管道应用的一个限制就是只能在具有共同祖先&#xff08;具有亲缘关系&#xff09;的进程间通信。如果我们想在不相关的…

自动化测试如何做?接口自动化测试如何才能做好?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口自动化测试常…

大话设计模式——中介者

5. 中介者&#xff08;Mediator&#xff09; Intent 集中相关对象之间复杂的沟通和控制方式。 Class Diagram Mediator&#xff1a;中介者&#xff0c;定义一个接口用于与各同事&#xff08;Colleague&#xff09;对象通信。Colleague&#xff1a;同事&#xff0c;相关对象…

「轻解压」怎么解?小红书用户画像告诉你

“轻养生”、“轻运动”……一个“轻”字&#xff0c;高度概括了如今年轻人面对生活的态度。今年&#xff0c;「轻解压」成为新的主题词&#xff0c;被广泛提及。 相比传统解压方式&#xff0c;轻解压更讲究愉悦感和生活感。用户通过围观开榴莲、沉浸式收纳等看似与解压毫无关…

MySQL数据库+增删改查

文章目录 MySQL数据库1 基本概念2 数据库系统2.1 操作数据库2.2 分类2.3 常见数据类型 3 SQL语句3.1 DDL3.1.1 创建数据库3.1.2 创建表3.1.3 删除数据库3.1.4 删除表3.1.5 查看所有数据库3.1.6 查看数据表 3.2 DML3.2.1 插入数据3.2.2 删除数据3.2.3 更新数据 3.3 DQL3.3.1 显示…

项目管理专业人员能力评价(CSPM)相关问题汇总,看这篇就够了!

问题导览&#xff1a; 1、国标项目管理&#xff08;项目管理专业人员能力评级&#xff09;证书是什么&#xff1f; 2、国标项目管理&#xff08;项目管理专业人员能力评级&#xff09;证书有几级&#xff1f; 3、项目管理专业人员能力等级证书的价值&#xff08;含金量&#…

2023年年度最佳配色就是它-我已经为大家配好了色卡,还不快来用?

洋红或者又称为胭脂红 今年的「洋红万岁」,PANTONE 称其是[非常规时代的非常规红] 它源自 PANTONE 的红色家族,灵感来自一种叫胭脂虫的小昆虫,在色轮上介于红色和粉红色之间,是天然染料家族中最珍贵的染料之一,也是世界上已知的最浓烈、最明亮的染料之一。 据 PANTONE …

oxygen技术文档编写教程

CSS样式 https://www.oxygenxml.com/doc/versions/24.1/ug-editor/topics/dg-css-stylesheet.html &#xff08;其他参考链接&#xff1a;https://zhuanlan.zhihu.com/p/480000063&#xff09; 插件 https://www.oxygenxml.com/addons.html 官方template https://styles.o…

量子网络商业化的时代来了吗?

光子盒研究院 现在&#xff0c;一个利用量子“纠缠”在遥远的用户之间编织亲密联系的全球网络正在开始形成。 ——田纳西州的这个城市曾推出美国第一个全市范围的千兆比特互联网服务。现在&#xff0c;它将推出全美第一个商业化的量子网络。 2010年&#xff0c;查塔努加市因“成…

双功能螯合剂:MeTz-PEG11-NOTA,甲基四嗪十一聚乙二醇NOTA,试剂有哪些特点?

产品描述&#xff1a; MeTz-PEG11-NOTA&#xff08;甲基四嗪-PEG11-NOTA&#xff09;通过PEG进行连接两端甲基四嗪和NOTA&#xff0c;其中亲水性PEG间隔臂提供了一个长而灵活的连接&#xff0c;一定限度地减少了与含四嗪的复合分子连接有关的空间位阻。NOTA及其衍生物具有良好的…

安装PowerDesigner

安装PowerDesigner&#xff08;文章附上安装所需要的安装包&#xff09; 环境&#xff1a;windows10操作系统、PowerDesigner16.5版 1、双击PowerDesigner16.5安装包进行安装 选择Trial&#xff0c;再点击Next&#xff0c;别选错哈 选择hongkong&#xff0c;并且点击agree …

64G超大容量内存条599,光威天策DDR4 32×2原地起飞

- 光威天策DDR4 64G套装&#xff0c;599元享受极速体验 - 599元升级64G内存&#xff0c;光威天策DDR4给你惊喜 - 光威天策DDR4 64G内存条&#xff0c;简约外观&#xff0c;强劲性能 - 超值618&#xff0c;光威天策DDR4 64G内存条&#xff0c;速度快&#xff0c;散热好 很多热爱…

企业想要搭建CRM平台该如何操作?

如今&#xff0c;企业数字化转型的浪潮依然汹涌。而CRM客户管理平台是企业实现数字化转型&#xff0c;提升市场竞争力的重要工具。那么&#xff0c;企业如何搭建CRM客户管理平台&#xff1f;下面我们就这个问题来说一下。 一、明确业务目标和需求 企业需要明确业务目标&#…