[ESP32 IDF]web server

目录

 通过web server控制LED

核心原理解析

分区表  

web server的使用

 错误Header fields are too long的解决


  •  通过web server控制LED

通过网页控制LED灯的亮灭,一般的ESP32开发板都可以实现,下面这篇文章是国外开发者提供的一个通过web server控制LED的实例, 文章对如何实现有非常详细的描述,但是需要魔法才能访问如下连接:

esp32-esp-idf-websocket-web-server

对应的工程源码在github可以找到:

ESP32-ESP-IDF-WebSocket-Web-Server

  • 核心原理解析

  • 分区表  

     这个实例并不是将html嵌在代码中,而是将html放在/data路径下,将文件刷写到spifs中,通过spiffs文件系统访问html,下面这篇博文有个arduino的实现,可以学习一下:

基于ESP32搭建物联网服务器六(利用SPIFFS存放html,css,js等文件(读取html)_esp32 spiffs-CSDN博客

    关于ESP32的分区表,官方文档有非常详细的说明:

分区表 - ESP32 - — ESP-IDF 编程指南 latest 文档 (espressif.com)

分区表中的每个条目都包括以下几个部分:Name(标签)、Type(app、data 等)、SubType 以及在 flash 中的偏移量(分区的加载地址),在这个实例中,划分了一个名为storage的data类型分区,其子类型为spiffs(官方关于spiffs的说明文档:SPIFFS 文件系统 - ESP32 - — ESP-IDF 编程指南 latest 文档 (espressif.com)):

  

在使用idf.py进行刷写的时候,可以观察到自动调用了spiffsgen.py将/data路径打包为storage.bin,并且刷写到对应的地址中,因此可以在程序中通过spiffs的接口对html文件进行访问。

  • web server的使用

下面这篇博文是一个系列,有一系列的实操实现web server,基于arduino库实现的,但也具有学习意义:

基于ESP32搭建物联网服务器四(最简单的WEB服务器)_espasyncwebserver-CSDN博客

    我这里关注的是网页访问web server的时候,代码在哪里对request进行了处理,代码中,对HTTP_GET类型的method注册了回调,所以会进到handle_ws_req函数中:

    其次,需要获取payload的内容,从而对client端的请求解析作出响应,在handle_ws_req的后半段解析到了payload的内容,并调用trigger_async_send作出响应:

其中下面就是对led的控制,并且反馈状态给client端,改变网页的显示:

那么有个问题就是:最多可以支持多少个客户端呢?其实就是最多能连多少个tcp,由下面这个宏控制:

 错误Header fields are too long的解决

在使用edge浏览器访问的时候,提示了这个错误,参考如下博文, 将header的length修改大一些即可:

ESP32 Https server 错误Header fields are too long for server to interpret-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

巧用windows的move命令结合jenkins让npm构建速度上来

一.背景 jenkins构建vue2的项目,每次都很慢,即便非常顺利都要1分多钟。之前的文章想到的私服的方式,windows下利用verdaccio私服让npm构建速度上来-CSDN博客。其实慢的原因不仅仅是依赖下载的问题。 二.还有哪里慢 1.源代码同步慢 从构建…

[SWPUCTF 2021 新生赛]easy_md5

用get给name 用post给password 二个值不相等MD5相等 可以通过php的弱类型绕过 $a!$b md5($a)md5($b)找到不同 a 和 a和 a和b,两者的md5值均为0e开头的形式

计算机二级C语言的注意事项及相应真题-2-程序修改

目录 11.找出n的所有因子,统计因子的个数,并判断n 是否是”完数”12.计算s所指字符串中含有t所指字符串的数目13.将一个由八进制数字组成的字符串转换为与其面值相等的十进制整数14.根据整型形参m的值,计算如下公式的值15.从低位开始依次取长…

澄清TypeScript中的 `satisfies` 操作符

TypeScript 的 satisfies 运算符已经推出一段时间了,但它似乎仍然是一个可以用来澄清的混乱来源。 可以把 satisfies 看作是将类型赋给值的另一种方式。 在我们深入研究之前,让我们回顾一下如何赋值类型。 首先,有一个不起眼的“冒号注解”…

【BUG】golang gorm导入数据库报错 “unexpected type clause.Expr“

帮同事排查一个gorm导入数据报错的问题 事发现场 ck sql CREATE TABLE ods_api.t_sms_jg_msg_callback_dis (app_key String DEFAULT COMMENT 应用标识,callback_type Int32 DEFAULT 0 COMMENT 0送达,1回执,channel Int32 DEFAULT 0 COMMENT uid下发的渠道,mode…

基于FFT + CNN -Transformer时域、频域特征融合的电能质量扰动识别模型

目录 往期精彩内容: ​模型整体结构 1 快速傅里叶变换FFT原理介绍 第一步,导入部分数据,扰动信号可视化 第二步,扰动信号经过FFT可视化 2 电能质量扰动数据的预处理 2.1 导入数据 2.2 制作数据集 3 基于FFTCNN-Transform…

无心剑中译聂鲁达《喜欢你寂静如斯》

I Like for You to Be Still 喜欢你寂静如斯 Pablo Neruda 帕布罗聂鲁达 I like for you to be still: it is as though you were absent, and you hear me from far away and my voice does not touch you. It seems as though your eyes had flown away and it seems that…

专业139总分400+南昌大学811信号与系统考研经验电子信息与通信工程集成电路

今年专业课811信号与系统139分,总分400,顺利上岸南昌大学,回首这一年的复习,有很多经验想和大家分享,希望对大家复习会有一些帮助。专业课:139分,811信号与系统 主要参考书:《信号与…

第二证券:苹果Vision Pro出货在即 固态电池产业化前景渐明

sion Pro即将于2月2日正式在美国商场开始交给,苹果美国官网释出了Vision Pro的详细参数,与发布会介绍根本一致,依靠总计12个摄像头、5种传感器、职业顶尖的单眼4K分辨率Micro-OLED显示屏、M2与R1芯片,完成了当时商场上独一无二的沉…

TCP/IP协议以及TCP/IP邮件详细介绍

目录 1. TCP/IP 协议 2. 协议族 3. TCP - 传输控制协议 4. IP - 网际协议(Internet Protocol) 5. HTTP - 超文本传输协议(Hyper Text Transfer Protocol) 6. HTTPS - 安全的 HTTP(HTTP Secure) 7. SSL - 安全套接字…

Leetcode2856. 删除数对后的最小数组长度

Every day a Leetcode 题目来源:2856. 删除数对后的最小数组长度 解法1:哈希 分类讨论 假设数组 nums 中元素 x 出现次数最多,其出现次数为 maxCount。 分类讨论: 如果 2 * maxCount > n,其余所有 n − maxC…

Mars3d实现【按当前相机视域页在地球上投射视频】功能

通过mars3d实现按当前相机视域页在地球上投射视频进行视频投射效果: 相关代码: // 按当前相机投射视频 export function startDrawGraphic2() {const ellipsoid map.scene.globe.ellipsoidconst canvas map.scene.canvasconst pt1 map.camera.pickE…

FluxMQ:新一代的高性能MQTT代理服务器

FluxMQ:新一代的高性能MQTT代理服务器 前言 FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台。FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟,高吞吐量,千万、亿级…

ClickHouse基于数据分析常用函数

文章标题 一、WITH语法-定义变量1.1 定义变量1.2 调用函数1.3 子查询 二、GROUP BY子句(结合WITH ROLLUP、CUBE、TOTALS)三、FORM语法3.1表函数3.1.1 file3.1.2 numbers3.1.3 mysql3.1.4 hdfs 四、ARRAY JOIN语法(区别于arrayJoin(arr)函数&a…

创建自己的Hexo博客

目录 一、Github新建仓库二、支持环境安装Git安装Node.js安装Hexo安装 三、博客本地运行本地hexo文件初始化本地启动Hexo服务 四、博客与Github绑定建立SSH密钥,并将公钥配置到github配置Hexo与Github的联系检查github链接访问hexo生成的博客 一、Github新建仓库 登…

完整的 HTTP 请求所经历的步骤及分布式事务解决方案

1. 对分布式事务的了解 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西, 特别是在微服务架构中,几乎可以说是无法避免。 首先要搞清楚:ACID、CAP、BASE理论。 ACID 指数据库事务正确执行…

小程序中picker多列选择器

需求&#xff1a;实现类似省市联动的效果&#xff0c;选择第一列后&#xff0c;第二列数据变化 html部分: <view class"section"><view>多列选择器</view><picker mode"multiSelector" bindchange"bindMultiPickerChange"…

大模型实践笔记(1)——GLM-6B实践

目录 在Ubuntu上的配置Git Large File Storage 安装Git LFS&#xff1a; 设置Git LFS&#xff1a; 使用Git LFS&#xff1a; 安装GLM-6B 环境依赖 ChatGLM2-6B介绍 配置GLM 下载代码 构建环境 安装依赖 本地部署 网页UI 很多模型在hugging face上面&#xff0c;…

Pudgy Penguins NFT 概览与数据分析

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;Pudgy Penguins NFT Collection Dashboard “胖企鹅” Pudgy Penguins NFT 系列是由 8,888 个独特的企鹅头像组成的以太坊区块链项目。这个 NFT 项目能否在 2024 年达到发展的高峰&#xff1f; 关于 Pudgy Pe…

微信小程序新手入门教程三:基础语法介绍

WXML&#xff08;WeiXin Markup Language&#xff09;是框架设计的一套标签语言&#xff0c;可以与各种组件相结合&#xff0c;进行页面构建。 一 常用标签 wxml的语法结构与我们熟悉的html很像&#xff0c;但在细节处略有不同&#xff0c;我们可以参考html标签对比记忆。wxm…
最新文章