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

news2024/12/24 0:20:24

 今天,小飞鱼继续来测试使用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。 

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

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

相关文章

QT安装及项目创建

一、QT安装 1、安装qt_creater 方法一&#xff1a; 镜像文件&#xff1a;在2024-6-12&#xff1a;版本已经更新到了6.7 下载地址&#xff1a;https://download.qt.io/archive/qt/ 方法二&#xff1a; 百度网盘&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1D0EmH…

ssm大学校园慈善拍卖网站-计算机毕业设计源码80891

摘要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对大学校园慈善拍卖网站等问题&#xff0c;对大…

软考-架构设计师-综合知识总结(试卷:2009~2022)(下篇)

说明 本文档对2009到2022年试卷的综合知识进行了归纳总结&#xff0c;同时对叶宏主编的《系统架构设计师教程》划分重点。 第十七章&#xff1a;通信系统架构设计 17.2 考题总结 第十八章&#xff1a;安全架构设计 18.1 重要知识点 18.2 考题总结 第十九章&#xff1a;大数据…

半导体晶圆切割之高转速电主轴解决方案

随着科技的飞速进步&#xff0c;集成电路技术已经成为了现代电子设备中不可或缺的核心组件。而在集成电路的生产过程中&#xff0c;半导体晶圆切割技术更是扮演着举足轻重的角色。这不仅关系到半导体芯片的制造成本和效率&#xff0c;更是决定了整个集成电路产业的发展速度和方…

T113跟官方教程安装docker出错

官方示例步骤&#xff1a; 会遇到网络问题&#xff0c;如图&#xff1a; 尝试直接去网上下载gpg&#xff0c;但是遇到教程后面一步也要访问该网站&#xff1a; 跳过该步骤&#xff0c;后续安装docker还会报错&#xff1a; 解决方法&#xff1a;换源&#xff0c;不必跟官方教程了…

给文件夹加密的最简单方法

安当TDE透明加密针对文件夹数据加密的保护方案主要包括以下几个方面&#xff1a; 1. 透明加密机制&#xff1a; 用户无需关心数据的加密和解密过程&#xff0c;操作文件夹时就像处理普通数据一样。加密和解密操作在后台自动进行&#xff0c;对用户和应用程序透明。 2. 高性能加…

现在转行转岗AI产品经理真的是一个好时机吗?

前言 2024年过去一半时间了。 很多朋友年初就计划转岗产品经理&#xff0c;但又苦于没有经验、知识不牢固…… 经常能看到有朋友问&#xff1a;转岗产品经理会有哪些坑要注意&#xff1f;有什么建议&#xff1f; 综合大家问得比较多的问题&#xff0c;我们发现&#xff1a;很…

GStreamer应用程序——Pads 和 capabilities(功能)

Pads 和 capabilities(功能) 正如我们在元素中看到的&#xff0c;pads是元素与外部世界的接口。来自一个的数据流元素的源pad到另一个元素的接收pad。特定类型的元素可以处理的媒体将被pad暴露能力。我们将在本章后面更多地讨论功能 &#xff08;参见pad的功能&#xff09;。 …

k8s之包管理器Helm

每个成功的软件平台都有一个优秀的打包系统&#xff0c;比如Debian、Ubuntu 的 apt&#xff0c;RedHat、CentOS 的 yum。Helm 则是 Kubernetes上 的包管理器&#xff0c;方便我们更好的管理应用。 一、Helm 的相关知识 1.1 Helm的简介 在没使用 helm 之前&#xff0c;向 kuber…

中国四大高原矢量示意图分享

我们在《中国地势三级阶梯示意图分享》一文中&#xff0c;为你分享了中国三级阶梯示意图的矢量文件。 现在&#xff0c;我们再为你分享中国四大高原的矢量示意图文件&#xff0c;你可以在文末查看文件的领取方法。 我国四大高原是如何划分的&#xff1f; 中国四大高原分别为…

【十大排序算法】桶排序

在时间的琴弦上&#xff0c;桶排序如同一曲清澈的溪流&#xff0c;将数字的芬芳温柔地分拣&#xff0c;沉静地落入各自的花瓣般的容器中。 文章目录 一、桶排序二、发展历史三、处理流程四、算法实现五、算法特性六、小结推荐阅读 一、桶排序 桶排序&#xff08;Bucket sort&…

组长:你熟悉过React,开发个Next项目模板吧,我:怎么扯上关系的?

最近工作安排我开发一个Next.js项目模板&#xff0c;心里默笑&#xff0c;React用得少得都快忘光了&#xff0c;现在得搞Next&#xff1f;虽然我曾是React的老用户&#xff0c;但转投Vue阵营已久&#xff0c;React的点点滴滴早已一干二净。 不过&#xff0c;挑战归挑战&#x…

【ARM】MDK如何进入\退出debug模式时断点不会消失

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 在对于工程进行调试的情况下&#xff0c;退出debug模式后再次进入&#xff0c;之前设置的断点不会消失。 2、 问题场景 在对于工程进行调试的时候&#xff0c;通常是通过设置断点的方式对于语句进行检测&#xff0…

【启明智显实战指南】SSD202D方案双网口开发板烧录全攻略---从入门到精通

提示&#xff1a;作为Espressif&#xff08;乐鑫科技&#xff09;大中华区合作伙伴及sigmastar&#xff08;厦门星宸&#xff09;VAD合作伙伴&#xff0c;我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…

游戏试玩站打码zq平台系统可运营的任务网源码

安装说明 1.恢复数据&#xff1b; 2.数据连接库配置路径&#xff1a;protected\config\mail.php 文件中修改第60行 &#xff08;记得不要用记事本修改&#xff0c;否则可能会出现验证码显示不了问题&#xff0c;建议用Notepad&#xff09; 3.浏览器访问输入 127.0.0.2 显示界…

哈尔滨等保测评内容科普

#网络安全等级保护 #哈尔滨等保测评 1. 等保测评的概念 等保测评的全称为“信息安全等级保护测评”。它通过对各个层次的信息系统提供安全保障&#xff0c;从而保证了信息的安全与保密性。 2. 哈尔滨等保测评的意义 随着我国信息化进程的不断推进&#xff0c;网络的信息安…

【学习笔记】C++每日一记[20240612]

给定两个有序的数组&#xff0c;计算两者的交集 给定两个有序整型数组&#xff0c;数组中 的元素是递增的&#xff0c;且各数组中没有重复元素。 第一时间解法&#xff1a;通过一个循环扫描array_1中的每一个元素&#xff0c;然后利用该元素去比较array_2中的每一个元素&…

说说你对Rust的了解?

Rust 是一种系统编程语言&#xff0c;由Mozilla开发&#xff0c;于2010年首次发布。它旨在提供与C和C等低级语言相媲美的性能&#xff0c;同时通过其独特的内存安全保证来避免诸如缓冲区溢出等常见安全问题。Rust的设计哲学融合了现代编程语言的特性&#xff0c;包括内存安全、…

精密结构件核心供应商「东创集团」×企企通启动SRM采购数字化项目,共同驱动供应链价值跃升

导读 此次采购数字化项目上线可有效打通东创集团业务全面信息化的最后一公里&#xff0c;为公司柔性交付提供系统助力。在项目建设阶段&#xff0c;希望各业务关键人员从业务需求出发&#xff0c;设计好蓝图去打通堵点、断点&#xff0c;各相关部门要高度配合&#xff0c;组织…

Java从放弃到继续放弃

并发编程 为什么需要多线程&#xff1f; 由于硬件的发展&#xff0c;CPU的核数增多&#xff0c;如果仍然使用单线程对CPU资源会造成浪费。同时&#xff0c;单线程也会出现阻塞的问题。所以&#xff0c;选择向多线程转变。 多线程的使用使得程序能够并行计算&#xff0c;提高计…