ESP32-Web-Server编程-通过 Web 下载文本

ESP32-Web-Server编程-通过 Web 下载文本

概述

当你希望通过网页导出设备的数据时,可以在 ESP32 上部署一个简单的文件 Web 服务器。

需求及功能解析

本节演示如何在 ESP32 上部署一个最简单的 Web 服务器,来接收浏览器或者 wget 指令请求文件数据。

示例解析

目录结构

├── CMakeLists.txt
├── main
│   ├── CMakeLists.txt
│   └── main.c                 User application
└── README.md                  This is the file you are currently reading
  • 目录结构主要包含主目录 main。

前端代码

该示例非常简单,不需要前端文件。

后端代码

后端代码建立了一个 URL 为 /record 的 bin_get_handler(),当用户访问该 URL 时,将执行该 handler 函数:

httpd_uri_t record_file_uri = {
        .uri = "/record",
        .method = HTTP_GET,
        .handler = bin_get_handler,
        .user_ctx = NULL
    };

bin_get_handler()中,将数组中的数据发送到浏览器,并并命为 record.bin

char data_buf[] = {0x00, 0x01, 0x02, 0x03};

httpd_resp_set_type(req, "application/octet-stream");
httpd_resp_set_hdr(req, "Content-Disposition", "inline; filename=record.bin"); // default name is record.bin
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");

if (res == ESP_OK) {
    res = httpd_resp_send_chunk(req, (const char *)data_buf, sizeof(data_buf)/sizeof(char));

示例效果

在网页建立后,输入类似 http://192.168.47.100/record 的网址,将自动下载数据内容为 record.bin:

在这里插入图片描述

讨论

1)通过网页下载设备上的数据,这种无前端文件的 Web 服务器非常有用。相比串口、这种下载速度快,使用更便捷。

总结

1)本节主要是介绍通过 ESP32 Web Server 实现在网页端下载设备上的数据为一个文件。

资源链接

1)ESP32-Web-Server ESP-IDF系列博客介绍
2)对应示例的 code 链接 (点击直达代码仓库)

3)下一篇:

(码字不易感谢点赞或收藏)

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

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

相关文章

基于APM(PIX)飞控和mission planner制作遥控无人车-从零搭建自主pix无人车普通舵机转向无人车-1(以乐迪crossflight飞控为例)

1.前期准备 准备通过舵机转向的无人车地盘、遥控器、地面站电脑、飞控等。安装驱动程序、端口程序、netframwork等,不再赘述。 2.安装固件 安装ardurover固件,如果在线失败,选择官方最新的固件下载到本地,选择本地安装。 3.调试…

qt使用wimlib-imagex,做windows系统备份还原

wimlib-imagex是个第三方工具,可对系统映像进行操作,下载地址: https://wimlib.net/downloads/index.html 程序主要用到以下这两个文件:libwim-15.dll和wimlib-imagex.exe wimlib-imagex.exe的调用命令参数,可以通过…

python爬虫非对称加密RSA案例:某观鸟网站

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 一、找出需要加密的参数 js运行 atob(‘aHR0cDovL2JpcmRyZXBvcnQuY24vaG9tZS9hY3Rpdml0eS9wYWdlLmh0bWw’) 拿到网址&#xf…

【离散数学】——期末刷题题库(集合)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

如何使用Node.js快速创建本地HTTP服务器并实现异地远程访问

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

php之zip文件中压缩、解压、增加文件、删除

官方文档 PHP: Zip - Manual 在PHP中,zip扩展提供了处理ZIP文件的功能。它允许你创建、读取、更新和提取ZIP文件。 首先,确保你的PHP环境已经安装了zip扩展。你可以在php.ini文件中找到以下行来检查: extensionzip 如果没有注释掉&#xf…

Linux系统下Nginx的安装步骤

目录 Nginx简介Nginx的作用Nginx的安装方法方法一方法二方法三 本文主要介绍在Linux系统下,三种常见Nginx安装方法。 Nginx简介 Nginx是一个高性能的HTTP和反向代理服务器,也可以作为邮件代理服务器和通用的TCP/UDP代理服务器。它最初由Igor Sysoev创建…

10、SQL注入——数据库基础

文章目录 一、数据库概述二、数据库分类Mysql数据库连接方法 三、识别数据库四、SQL语法4.1 SQL基本语法4.2 高级操作 一、数据库概述 数据库(database):存储在磁盘、磁带、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。数…

JS浮点数精度问题及解决方案

前端面试大全JS浮点数精度问题及解决方案 🌟经典真题 🌟浮点数精度常见问题 🌟为什么会有这样的问题 🌟真题解答 🌟总结 🌟经典真题 为什么 console.log(0.20.10.3) 得到的值为 false 🌟…

kk(kubeadmin)在麒麟与centos安装k8s集群踩坑记录

4台机器的集群两台centos,两台麒麟v10 问题1.执行到集群和节点加入集群时候报错 ERRO[18:48:06 CST] Failed to add master to cluster: Failed to exec command: sudo env PATH$PATH:/sbin:/usr/sbin /bin/sh -c “/usr/local/bin/kubeadm join --config/etc/kube…

css实现正六边形嵌套圆心

要实现一个正六边形嵌套圆心,可以使用CSS的::before和::after伪元素以及border-radius属性。以下是具体的解析和代码: 使用::before和::after伪元素创建正六边形。设置正六边形的背景色。使用border-radius属性使正六边形的内角为60度。在正六边形内部创…

网络安全(二)-- Linux 基本安全防护技术

4.1. 概述 安全防护基础主要是会用Linux系统, 熟悉Linux基本操作命令。 在这个章节中,我们主要探讨自主访问控制(许可位、ACL)、文件属性、 PAM技术、能力机制等。 4.1.1. 补充命令 本章节中,涉及一些新的命令&#…

丢掉破解版,官方免费了!!!

哈喽!大家好。 几天不见,今天给大家带来一款海外的神器,官方宣布完全免费,但仅限于个人与教育用途,切勿商用噢! 不要看这个软件名字普普通通,实际上内蕴乾坤! 接下来看我给大家炫一…

Mybatis相关API(Sqlsession和sqlsessionFactroy)

代码 private static SqlSessionFactory sqlSessionFactory;static { ​try { // 获得核心配置文件String resource "mybits-config.xml"; // 加载核心配置文件InputStream inputStream Resources.getResourceAsStream(resource…

海云安参与制定《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》标准正式发布

近日,由TC260(全国信息安全标准化技术委员会)归口 ,主管部门为国家标准化管理委员会,深圳海云安网络安全技术有限公司(以下简称“海云安”)等多家相关企事业单位共同参与编制的GB/T 43435-2023《…

电脑如何录音?适合初学者的详细教程

“电脑怎么录音呀?参加了一个学校举办的短视频大赛,视频拍摄都很顺利,音乐却出了问题,朋友说可以用电脑录制一段音乐应付一下,可是我不会操作,有哪位大佬教教我!” 声音是一种强大的媒介&#…

python获取阿里云云解析dns的域名解析记录

最近由于工作原因接触到阿里云的服务,我需要实时获取所有的域名信息,用于对其进行扫描,因此写了一个自动化爬取脚本 给需要的人分享。 (阿里云有官方的demo,有兴趣的可以自己看一下,后面也会放链接&#xf…

MySQL中的存储引擎

MySQL的体系结构 接下来先了解一下MySQL中的体系结构 MySQL中的体系结构实际是分层的 连接层 接收客户端的连接、对连接的处理、以及认证授权的相关操作和其相关的一些安全方案、检查是否超过最大连接数...... 服务层 SQL接口、解析器、查询优化器、缓存都是在服务层完成的&am…

C语言--求一个十进制整数中1的个数

一.题目描述⭐ 求一个十进制整数中1的个数 比如: 输入:10201 输出:2 (这个数字中1的个数是2) 二.思路分析⭐ 数字类的问题我们可以用取模,或者取余运算。 首先定义一个计数器,用来统计1的个数。 输入数字…

4.grid_sample理解与使用

pytorch中的grid_sample 文章目录 pytorch中的grid_samplegrid_samplegrid_sample函数原型实例 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 grid_sample 直译为网格采样,给定一个mask patch,根据在目标图像上的…
最新文章