ESP32-Web-Server编程- 使用表格(Table)实时显示设备信息

ESP32-Web-Server编程- 使用表格(Table)实时显示设备信息

概述

上节讲述了通过 Server-Sent Events(以下简称 SSE) 实现在网页实时更新 ESP32 Web 服务器的传感器数据。

本节书接上会,继续使用 SSE 机制在网页实时显示设备的数据,进一步优化网页的前端设计,通过表格显示传感器的数据,使网页更加美观。

需求及功能解析

本节演示如何在 ESP32 上部署 SSE Web 服务器,然后通过网页上的表格实时显示传感器的数据。

示例解析

目录结构

├── CMakeLists.txt
├── main
│   ├── CMakeLists.txt
│   └── main.c                 User application
├── components
│   └── fs_image
└── README.md                  This is the file you are currently reading
  • 目录结构主要包含主目录 main,以及组件目录 components.
  • 其中组件目录components中包含了用于存储网页文件的 fs_image 目录(即前述前端文件)。
  • main 目录包含 Web Server 的实现以及后端代码。

前端代码

前端代码components/fs_image/web_image/index.html中生成显示传感器数据的表格,分别显示 TemperatureHumidityPressure

<table><tr><th>READING</th><th>VALUE</th></tr><tr><td>Temperature</td><td><span id="temp"></span> &deg;C</td></tr><tr><td>Humidity</td><td><span id="hum"></span> &percnt;</td></tr><tr><td>Pressure</td><td><span id="pres"></span> hPa</td></tr>
</table>

此外,在 JS 代码components/fs_image/web_image/js/script.js中,增加了在表格下方实时显示时间的函数:

//Function to add date and time of last update
function updateDateTime() {var currentdate = new Date(); var datetime =  currentdate.getDate() + "/"+ (currentdate.getMonth()+1)  + "/" + currentdate.getFullYear() + " at "  + currentdate.getHours() + ":"  + currentdate.getMinutes() + ":" + currentdate.getSeconds();document.getElementById("update-time").innerHTML = datetime;console.log(datetime);

其他代码与上节代码相同。

示例效果

在这里插入图片描述

讨论

1)示例的前端代码中用了很多 innerHTML = ,读者可以熟悉前端中的这种方法的使用,写出灵动的网页设计。

总结

1)本节主要是基于上节讲述的通过 Server-Sent Events(以下简称 SSE) 实现在网页实时更新 ESP32 Web 服务器的传感器数据。进一步优化网页端的设计,通过表格显示传感器的数据。

资源链接

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

3)下一篇:ESP32-Web-Server编程- 通过 Highcharts 创建图表(Chart)实时显示设备信息

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

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

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

相关文章

如何优化 Elasticsearch 以获得更好的搜索性能

当今世界&#xff0c;数据大量生成&#xff0c;为了利用数据进行生产&#xff0c;需要对提取的数据进行转换、存储、维护、管理和分析。这些过程只有通过大数据工具所基于的分布式架构和并行处理机制才能实现。Elasticsearch 是最流行的开源数据存储之一&#xff0c;可以满足大…

邻接表表示图进行深度优先搜索,广度优先搜索,最小生成树

图的邻接表定义 下面用邻接表实现图的深度优先搜索和广度优先搜索&#xff0c;用邻接矩阵来实现最小生成树。 图的邻接表&#xff1a;首先定义一个图的邻接表的类&#xff0c;里面包括图的顶点数&#xff0c;图的边数&#xff0c;顶点表数组。由于顶点表数组里存放的都是图的…

P2880 [USACO07JAN] Balanced Lineup G 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围与提示完整代码 题目描述 For the daily milking, Farmer John’s N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with…

从兔子说起:了解RabbitMQ消息的多样化【RabbitMQ 二】

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 从兔子说起&#xff1a;了解RabbitMQ消息的多样化 第一&#xff1a;消息的可靠性与持久性第二&#xff1a;消息交换机与队列第三&#xff1a;消息确认与拒绝第四&#xff1a;…

深度学习手势识别 - yolo python opencv cnn 机器视觉 计算机竞赛

文章目录 0 前言1 课题背景2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存 5 模型训练5.1 修…

2023年全国职业院校技能大赛“ 信息安全管理与评估” 测试题2

一.单选题 1、下列不属于口令安全威胁的是&#xff1f;&#xff08; &#xff09; A、 弱口令 B、 明文传输 C、 MD5 加密 D、 多账户共用一个密码 2、在学校或单位如果发现自己的计算机感染了病毒,应首先采取什么措施 ( )。 A、断开网络 B、告知领导 C、杀毒 D、重…

C++模板—函数模板、类模板

目录 一、函数模板 1、概念 2、格式 3、实例化 4、模板参数的匹配 二、类模板 1、定义格式 2、实例化 交换两个变量的值&#xff0c;针对不同类型&#xff0c;我们可以使用函数重载实现。 void Swap(double& left, double& right) {double tmp left;left ri…

黑马一站制造数仓实战1

1. 项目目标 一站制造 企业中项目开发的落地&#xff1a;代码开发 代码开发&#xff1a;SQL【DSL SQL】 SparkCore SparkSQL 数仓的一些实际应用&#xff1a;分层体系、建模实现 2. 内容目标 项目业务介绍&#xff1a;背景、需求 项目技术架构&#xff1a;选型、架构 项目环境…

SpringBootWeb案例_03

Web后端开发_06 SpringBootWeb案例_03 登录认证 智能学习辅助系统登录时需要身份验证 1.登录功能 先实现简单的登录功能&#xff0c;在进一步优化。 1.1需求 若账户或密码不存在/密码不正确&#xff0c;则登录失败。 账户密码正确&#xff0c;则登录成功 1.2接口文档 …

git基本概念

一、版本控制概念 1.1 什么是版本控制 1.1.1 手动管理文件版本 1.1.2 版本控制软件 概念&#xff1a;版本控制软件是一个用来记录文件发生的变化&#xff0c;以便将来查阅特定版本修订情况的系统&#xff0c;有时也叫“版本控制系统”。通俗的理解就是把手工管理文件版本的方…

关于电脑提示vcruntime140_1.dll无法继续执行代码的解决办法

vcruntime140_1.dll是Visual C运行时库的一个组成部分&#xff0c;它包含了大量用于支持C应用程序运行时的功能。这个文件通常在开发和使用C程序时被调用&#xff0c;特别是在使用Microsoft Visual Studio进行开发时。vcruntime140_1.dll文件丢失或损坏会导致C程序无法正常运行…

初识:分布式事务Seata-AT模式的事务提交和事务回滚过程详解

分布式事务Seata 1. 本地事务2. 分布式事务3. 实现思路&#xff1a;两阶段提交协议&#xff08;2PC&#xff09;3.1 基础理解3.2 2PC的隐患 4. Seata4.1 Seata是什么4.2 Seata的三大角色4.3 Seata一次事务的生命周期4.4 Seata AT模式的设计思路4.4.1 设计思路4.4.1.1 一阶段4.4…

信息化,数字化,智能化是3种不同概念吗?与机械化,自动化矛盾吗?

先说结论&#xff1a; 1、信息化、数字化、智能化确实是3种不同的概念&#xff01; 2、这3种概念与机械化、自动化并不矛盾&#xff0c;它们是制造业中不同发展阶段和不同层次的概念。 机械化&#xff1a;是指在生产过程中使用机械技术来辅助人工完成一些重复性、单一性、劳…

助力android面试2024【面试题合集】

转眼间&#xff0c;2023年快过完了。今年作为口罩开放的第一年大家的日子都过的十分艰难&#xff0c;那么想必找工作也不好找&#xff0c;在我们android开发这一行业非常的卷&#xff0c;在各行各业中尤为突出。android虽然不好过&#xff0c;但不能不吃饭吧。卷归卷但是还得干…

Pytorch——多卡GPU训练与单卡GPU训练相互切换

部分深度学习网络默认是多卡并行训练的&#xff0c;由于某些原因&#xff0c;有时需要指定在某单卡上训练&#xff0c;最近遇到一个&#xff0c;这里总结如下。 目录 一、多卡训练1.1 修改配置文件1.2 修改主训练文件1.3 显卡使用情况 二、单卡训练2.1 修改配置文件2.2 显卡使…

ApplicationEventPublisher-Spring事件发布器

一、简介 ApplicationEventPublisher是简称为Spring中的事件发布器&#xff0c;应用于Java事件型驱动应用是解耦和设计&#xff0c;Spring对Java已有的事件处理模型&#xff0c;做了进一步的简化处理。 二、发布及处理事件 ApplicationEventPublisher是一个函数式编程的接口…

简单了解下IP的全球划分【笔记】

国际互联网号码分配机构 (The Internet Assigned Numbers Authority&#xff0c;简称IANA&#xff09;。它是互联网名称与数字地址分配机构&#xff08;The Internet Corporation for Assigned Names and Numbers&#xff0c;简称ICANN&#xff09;旗下的一个机构&#xff0c;主…

Spring之AOP底层源码解读(更新中)

1. 什么是spring的Aop 在进行源码解读之前&#xff0c;大家需要对Spring的Aop有基础的认识和理解&#xff0c;参考文章&#xff1a;Spring之AOP理解与应用-CSDN博客 2. 源码解读 接下来&#xff0c;我们对AOP的源码进行一个解读。 2.1 动态代理 如果你已经对spring的Aop已经有…

Linux5-计划任务、进程

计划任务 一、cron 计划任务 周期性计划任务 cron 任务概述 • 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务 • 软件包&#xff1a;cronie、crontabs • 系统服务&#xff1a;crond • 日志文件&#xff1a;/var/log/crond 管理计划任务策略 • 使用 cro…

存储虚拟化的写入过程

存储虚拟化的场景下&#xff0c;整个写入的过程。 在虚拟机里面&#xff0c;应用层调用 write 系统调用写入文件。write 系统调用进入虚拟机里面的内核&#xff0c;经过 VFS&#xff0c;通用块设备层&#xff0c;I/O 调度层&#xff0c;到达块设备驱动。虚拟机里面的块设备驱动…