当前位置: 首页 > news >正文

在掌控板上搭建http服务器

在掌控板上搭建http服务器

打开Arduino IDE,并且已经添加了ESP32的支持库。以下是创建一个基本HTTP服务器的步骤:

  1. 包含必要的库

    #include <WiFi.h>
    #include <WebServer.h>
    
  2. 配置WiFi
    替换ssidpassword为你的WiFi网络名称和密码。

    const char* ssid = "your_SSID";
    const char* password = "your_PASSWORD";
    
  3. 初始化Web服务器
    创建一个监听80端口的Web服务器实例。

    WebServer server(80);
    
  4. 定义处理函数
    为不同的URL路径定义处理函数。例如,当用户访问根目录时的处理函数。

    void handleRoot() {server.send(200, "text/html", "<h1>Welcome to32 Web Server</h1>");
    }
    
  5. 设置路由
    setup()函数中,设置路由和启动服务器。

    void setup() {Serial.begin(115200);WiFi.begin(ssid, password);// 等待WiFi连接while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}// 打印ESP32的IP地址Serial.println("");Serial.println("WiFi connected.");Serial.println("IP address: ");Serial.println(WiFi.localIP());// 定义根目录的处理函数server.on("/", handleRoot);// 启动服务器server.begin();Serial.println("HTTP server started.");
    }
    
  6. 处理客户端请求
    loop()函数中,不断处理客户端的请求。

    void loop() {server.handleClient();
    }
    
  7. 上传代码到ESP32
    使用Arduino IDE上传代码到你的ESP32开发板。

  8. 访问HTTP服务器
    打开浏览器,输入ESP32的IP地址(你可以通过串口监视器查看),你将看到由你的HTTP服务器返回的欢迎信息。

  9. 完整的代码如下

    #include <WiFi.h>
    #include <WebServer.h>
    const char* ssid = "your_SSID";   //将your_SSID替换成使用的wifi的SSID
    const char* password = "your_PASSWORD";    //将your_PASSWORD替换成使用的wifi的密码
    WebServer server(80);void handleRoot() {server.send(200, "text/html", "<h1>Welcome to ESP32 Web Server</h1>");
    }void setup() {Serial.begin(115200);WiFi.begin(ssid, password);// 等待WiFi连接while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}// 打印ESP32的IP地址Serial.println("");Serial.println("WiFi connected.");Serial.println("IP address: ");Serial.println(WiFi.localIP());// 定义根目录的处理函数server.on("/", handleRoot);// 启动服务器server.begin();Serial.println("HTTP server started.");
    }void loop() {server.handleClient();
    }
    
    1. 运行结果

    将代码编译上传后,打开Arduino IDE的串口监视器,可以看到连接WiFi的过程,并打印出esp32 http服务器所在的IP地址,如图1所示。
    在这里插入图片描述

    图1 连接wifi的过程

    使用浏览器连接esp32 http服务器,运行结果如下:

    在这里插入图片描述

图2 使用浏览器登陆esp32 http服务器

相关文章:

在掌控板上搭建http服务器

在掌控板上搭建http服务器 打开Arduino IDE&#xff0c;并且已经添加了ESP32的支持库。以下是创建一个基本HTTP服务器的步骤&#xff1a; 包含必要的库&#xff1a; #include <WiFi.h> #include <WebServer.h>配置WiFi&#xff1a; 替换ssid和password为你的WiFi网…...

HCIA复习实验

实验要求 实验拓扑以及实验分析 第一步先划分网段 先对内网划分 192.168.1.0/24划分 192.168.1.0/26---骨干主线路 192.168.1.64/26---骨干备线路 ---192.168.1.128/25--vlan2 3汇总---便于减少路由表条目---在大型网络方便 192.168.1.128/26---vlan2 192.168.1.192/26---vla…...

生信软件39 - GATK最佳实践流程重构,提高17倍分析速度的LUSH流程

1. LUSH流程简介 基因组测序通常用于分子诊断、分期和预后&#xff0c;而大量测序数据在分析时间方面提出了挑战。 对于从FASTQ到VCF的整个流程&#xff0c;LUSH流程在非GVCF和GVCF模式下都大大降低了运行时间&#xff0c;30 X WGS数据耗时不到2 h&#xff0c;从BAM到VCF约需…...

c#编写的各类应用程序、类库的引用(黑白盒)

001 课程简介&#xff0c;C# 语言简介&#xff0c;开发环境准备 (yuque.com)https://www.yuque.com/yuejiangliu/dotnet/timothy-csharp-001 一个Solution里包含多个Project 一、见识 C# 编写的各类应用程序 二、类库的引用&#xff08;黑/白盒引用&#xff09; 1、黑盒引用&a…...

计算机网络考研笔记

...

用感性的方式浅要了解什么是AI 与 大模型

什么是人工智能&#xff08;AI&#xff09;&#xff1f; 人工智能&#xff08;Artificial Intelligence&#xff0c;简称 AI&#xff09;是指由人制造出来的具有一定智能的系统&#xff0c;能够理解和学习人类的行为&#xff0c;并在某些任务上模仿人类的智能行为。这些任务包…...

Linux文件的查找和打包以及压缩

文件的查找 文件查找的用处&#xff0c;在我们需要文件但却又不知道文件在哪里的时候 文件查找存在着三种类型的查找 1、which或whereis&#xff1a;查找命令的程序文件位置 2、locate&#xff1a;也是一种文件查找&#xff0c;但是基于数据库的查找 3、find&#xff1a;针…...

专题十四_哈希表_算法专题详细解答

目录 哈希表简介 1. 两数之和&#xff08;easy&#xff09; 解析&#xff1a; 解法一&#xff1a;暴力&#xff1a; 解法二&#xff1a;哈希O(N) 总结&#xff1a; 2. 判断是否互为字符重排&#xff08;easy&#xff09; 解析&#xff1a; 哈希&#xff1a; 总结&…...

C++源码生成·序章

文章目录 C源码生成序章1 概述1.1 前言1.2 Python 易用性简介 2 使用 python 生成 c 源码2.1 运行脚本2.2 结果 3 项目启动3.1 项目概述3.2 环境准备3.3 克隆仓库3.4 查看标签&#xff08;Tags&#xff09;3.4 根据标签拉取代码3.5 后续步骤 C源码生成序章 1 概述 1.1 前言 …...

Android中的MVP模式

MVP&#xff08;Model-View-Presenter&#xff09;架构在 Android 开发中是一种流行的架构模式&#xff0c;它将业务逻辑和 UI 代码分离&#xff0c;通过 Presenter 来处理用户的操作和界面更新。MVP 提高了代码的可维护性和测试性&#xff0c;特别是 Presenter 中的逻辑可以单…...

kebuadm部署k8s集群

官方文档&#xff1a; Installing kubeadm | Kubernetes 切记要关闭防⽕墙、selinux、禁用交换空间&#xff0c; cpu核⼼数⾄少为2 内存4G kubeadm部署k8s⾼可用集群的官方文档&#xff1a; Creating Highly Available Clusters with kubeadm | Kubernetes 你需要在每台…...

Unity3D学习FPS游戏(2)简单场景、玩家移动控制

前言&#xff1a;上一篇的时候&#xff0c;我们已经导入了官方fps的素材&#xff0c;并且对三维模型有了一定了解。接下来我们要构建一个简单的场景让玩家能够有地方移动&#xff0c;然后写一个简单的玩家移动控制。 简单场景和玩家移动 简单场景玩家移动控制玩家模型视野-摄像…...

网上的 AQS 文章让我很失望

一、AQS 很多人都没有讲明白 &#x1f914; 翻看了网上的 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;文章&#xff0c;质量参差不齐&#xff0c;大多数都是在关键处跳过、含糊其词&#xff0c;美其名曰 “传播知识” 。 大多数都是进行大段的源码粘贴和注释&…...

滑动窗口子串

文章目录 滑动窗口一、无重复字符的最长子串二、找到字符串中所有字母异位词 子串三、和为 K 的子数组四、滑动窗口最大值五、最小覆盖子串 滑动窗口 一、无重复字符的最长子串 题目链接 &#xff08;方法一&#xff1a;暴力枚举&#xff09; &#xff08;方法二&#xff…...

【windows11 提示“Microsoft Visual C++ Runtime Library Runtime Error】

windows11 提示“Microsoft Visual C++ Runtime Library Runtime Error” 问题描述解决方法郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: windows OS:windows11 问题描述 解决方法 下载VisualCppRedist_AIO_x86_x64.exe 安…...

【leetcode|哈希表、动态规划】最长连续序列、最大子数组和

目录 最长连续序列 解法一&#xff1a;暴力枚举 复杂度 解法二&#xff1a;优化解法一省去二层循环中不必要的遍历 复杂度 最大子数组和 解法一&#xff1a;暴力枚举 复杂度 解法二&#xff1a;贪心 复杂度 解法三&#xff1a;动态规划 复杂度 最长连续序列 输入输…...

【人工智能】掌握深度学习中的时间序列预测:深入解析RNN与LSTM的工作原理与应用

深度学习中的循环神经网络&#xff08;RNN&#xff09;和长短时记忆网络&#xff08;LSTM&#xff09;在处理时间序列数据方面具有重要作用。它们能够通过记忆前序信息&#xff0c;捕捉序列数据中的长期依赖性&#xff0c;广泛应用于金融市场预测、自然语言处理、语音识别等领域…...

今日开放!24下软考机考「模拟练习平台」操作指南来啦!

2024年下半年软考机考模拟练习平台今日开放&#xff0c;考生可以下载模拟作答系统并登录后进行模拟练习&#xff0c;熟悉答题流程及操作方法。 一、模拟练习时间 2024年下半年软考机考模拟练习平台开放时间为2024年10月23日9:00至11月6日17:00&#xff0c;共15天。 考生可以在…...

合并.md文档

需求&#xff1a;将多个.md文档合并成一个.md文档。 方法一&#xff1a;通过 type 命令 参考内容&#xff1a;多个md文件合并 步骤&#xff1a; 把需要合并的 .md 文档放入到一个文件夹内。修改需要合并的 .md 文档名&#xff0c;可以在文档名前加上 1.2.3 来表明顺序&#x…...

10月18日笔记(基于系统服务的权限提升)

系统内核漏洞提权 当目标系统存在该漏洞且没有更新安全补丁时&#xff0c;利用已知的系统内核漏洞进行提权&#xff0c;测试人员往往可以获得系统级别的访问权限。 查找系统潜在漏洞 手动寻找可用漏洞 在目标主机上执行以下命令&#xff0c;查看已安装的系统补丁。 system…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...