项目(智慧教室)第四部分,页面交互功能,WebServer建立与使用,

news2024/12/24 3:48:02

一。页面构思

1.标题栏

        大标题:智慧教室管理系统

        小标题:灯光,报警,风扇,温度,湿度,光照

2.样式设计

        背景设置。字体设置(字体大小,格式,颜色)

3.导航栏

        6个导航栏标签:3个传感器,3个控制

        每次点击导航栏标签:页面对应做出页面展示。

4.前后台交互设计

        1.定时刷新传感器设置(当用户点击传感器标签,需要把数据展示给用户)

        2.控制下发(当用户点击控制标签,需要根据用户下发的命令进行控制实际的硬件,并且在主题栏进行动态展示)

二。前端开发基本技能

1.html

主要内容:html(最外边),head(页面头),body(页面身)标签

        

2.CSS--》静态页面的样式

        对不同区域的资源设置样式(body,header,h1区域的样式设计)

3.javaScript(js)

        动图设计,

常用的网页:jQuery,有很多现成的页面资源可以使用。

        jQuery API 中文文档 | jQuery API 中文在线手册 | jquery api 下载 | jquery api chm

开发方式:

1.BootStrap(基于框架的开发)

Bootstrap中文网

2.Vue(渐进式js框架)

Vue.js - 渐进式 JavaScript 框架 | Vue.js

3.react(现成的框架)

React 官方中文文档

本项目运用到的技术:js,css(了解即可)

三。Web页面布局

1.标题栏布局

(1)页面展示

具体代码

headr,h1的样式在上面CSS中有定义。

(2)small是小字体

    <div class="header">
        <div class="content">
            <h1>智慧教室管理系统
                <small>温度、湿度、风扇、报警,光照
                </small>
            </h1>
        </div>
    </div>

2.导航栏布局

(1)页面展示

(2)具体代码

<div class="body-left">
    <img src="images/left-title.png" style="margin:26px 0;">
    <div>
        <ul class="left-nav">
            <li class="line active">
                <a href="#title1" data-toggle="tab">
                    <img src="images/tubiao01.png" width="40px">温度传感器
                </a>
            </li>
            <li class="line">
                <a href="#title2" data-toggle="tab">
                    <img src="images/tubiao02.png" width="40px">湿度传感器
                </a>
            </li>
            <li class="line">
                <a href="#title3" data-toggle="tab">
                    <img src="images/tubiao03.png" width="40px">光照传感器
                </a>
            </li>
            <li class="line">
                <a href="#title4" data-toggle="tab">
                    <img src="images/tubiao04.png" width="40px">LED
                </a>
            </li>
            <li class="line">
                <a href="#title5" data-toggle="tab">
                    <img src="images/tubiao05.png" width="38px">风扇
                </a>
            </li>
            <li class="line">
                <a href="#title6" data-toggle="tab">
                    <img src="images/tubiao06.png" width="40px">报警器
                </a>
            </li>
        </ul>
        <div class="content">
            <div class="box fade in active" id="title1">
                <p>温度值<br /><span>
                        <lable id="temperature"></lable>
                    </span></p>
            </div>
            <div class="box fade" id="title2">
                <p>湿度值<br /><span>
                        <lable id="humidity"></lable>
                    </span></p>
            </div>
            <div class="box fade" id="title3">
                <p>光照值<br /><span>
                        <lable id="light"></lable>
                    </span></p>
            </div>
            <div class="box fade" id="title4">
                <h3>开关</h3>
                <img id="button01" src="images/an-off.png" onclick="anniu01()" />
            </div>
            <div class="box fade" id="title5">
                <h3>开关</h3>
                <img id="button02" src="images/an-off.png" onclick="anniu02()" />
            </div>
            <div class="box fade" id="title6">
                <h3>开关</h3>
                <img id="button03" src="images/an-off.png" onclick="anniu03()" />
            </div>
        </div>
    </div>

四。页面展示

五。页面与stm32开发板的交互

1.html的文件拷贝到stm的SD卡中

注意:

拷贝的是Web文件夹的内容,拷贝到SD卡的根目录下。不要拷贝成文件夹了。

2.移植三个.c文件到keil文件夹中。头文件拷贝到inc文件夹中。

注意:不要忘记keil工程中,添加已存在文件到工程目录中

4.运行

注意:stm32的IP地址是多少。在LWIP初始化中192.168.1.7

5.运行成功

补充:WebServer开发流程

1.WebServer主线程实现

我们发现就是不停的函数调用,层层调用。

(1)我们需要使用SD卡,所以移植fatfs,需要使用http协议,所以移植httpserver-socket.c

(2)html拷贝到sd卡中。

(3)在任务中调用http_server_socket_thread

2.http_server_socket_thread实现

(1)创建socket,绑定套接字,开始监听,等待客户端过来接受并响应。

(2)响应使用http_server_serve函数

3.http_server_serve实现

(1)read读数据,Respond_Http_Request请求响应数据

(2)关闭socket,这就是一次短链接的实现。

4.Respond_Http_Request实现

(1)Parse_Http_Request解析HTTP请求

(2)通过对(1)的数据进行分析对比,并针对解析结果对数据进行处理。

(3)在(2)中处理时需要Send_Response_File响应文件请求

5.Parse_Http_Request实现

(1)通过对比GET,HEAD,POST字符串,对http结构体属性msg进行修改。

(2)对http结构体属性URl进行赋值。

6.Send_Response_File

(1)分析请求URL报文中的文件类型

(2)把需要发送的数据 通过封装成HTTP报文,通过write写回。

(3)读取文件并写回

交互时发送的数据通过数据结构的方式封装

(1)web处理封装成结构体

(2)get,post请求所需字符封装成字符串

(3)数据的处理都各自封装成函数

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

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

相关文章

多线程与高并发——并发编程(6)

文章目录 六、并发集合1 ConcurrentHashMap1.1 存储结构1.2 存储操作1.2.1 put方法1.2.2 putVal方法-散列算法1.2.3 putVal方法-添加数据到数组&初始化数组1.2.4 putVal方法-添加数据到链表1.3 扩容操作1.3.1 treeifyBin方法触发扩容1.3.2 tryPresize方法-针对putAll的初始…

VMware17 下载以及 配置虚拟机 一条龙全教程

前言&#xff1a;在网络安全相关方面的学习时&#xff0c;我们难免要使用虚拟机来模拟实现网络攻击或者防御&#xff0c;在这里&#xff0c;笔者就给大家分享 VMware 17 虚拟机下载安装使用的保姆级教程 目录 虚拟性软件版本推荐 下载 VMware 下载镜像 配置虚拟机 虚拟性软…

系统软件启动过程

实验一&#xff1a;系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm&#xff08;修改了名字&#xff0c;以便于彩色显示&#xff09;a. 开启A20 16位地址线 实现 20位地址访问 芯片版本兼容通过写 键盘控制器8042 的 64h端口 与 60h端口。b.…

数学的魅力

数学的魅力 数学的历史古代数学古希腊数学中世纪数学文艺复兴数学 数学的分支1. 代数学2. 几何学3. 微积分学4. 概率论与统计学5. 数论 数学的重要性1. 科学和技术2. 经济学和金融3. 医学和生物学4. 社会科学5. 环境科学 数学的未来1. 人工智能2. 网络安全3. 空间探索 结论 数学…

Spring与Docker:如何容器化你的Spring应用

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

BI技巧丨Window应用之移动平均

Window函数白茶之前介绍过&#xff0c;可以用来处理同环比问题&#xff0c;因为其函数内部特性&#xff0c;我们还可以用其来处理移动平均问题。 先来看看本期的案例数据&#xff1a; 案例数据非常的简单&#xff0c;随机模拟一下销售挂蛋的情况即可。 将其导入到PowerBI中&…

YOLO目标检测——棉花病虫害数据集+已标注txt格式标签下载分享

实际项目应用&#xff1a;目标检测棉花病虫害数据集的应用场景涵盖了棉花病虫害的识别与监测、研究与防治策略制定、农业智能决策支持以及农业教育和培训等领域。这些应用场景可以帮助农业从业者更好地管理棉花病虫害&#xff0c;提高棉花产量和质量&#xff0c;推动农业的可持…

医院信息化、数字医学影像、DICOM、PACS源码

PACS系统适合卫生院、民营医院、二甲或以下公立医院的放射科、超声科使用。功能强大且简洁&#xff0c;性能优异&#xff0c;具备MPR&#xff08;三维重建&#xff09;、VR&#xff08;容积重建&#xff09;、胶片打印功能&#xff0c;能够快速部署。 PACS系统支持DR、CT、磁共…

SpringCloud-Config配置中心

接上文 SpringCloud-GetWay 路由网关 针对每个模块都要配置一个配置文件&#xff0c;例如当进行数据库修改时候&#xff0c;又有很多服务&#xff0c;则需要一个一个去修改。因此需要一种集中化的配置文件管理工具&#xff0c;集中得对配置文件进行配置。 1.部署配置中心服务…

PS基础-新建窗口工作区(保存合适自己的窗口布局)

保存自己的工作区 一&#xff0c;打开自己需要的窗口 2,打开的窗口拖拽到边&#xff0c;就可放置 3&#xff0c;保存自己习惯的工作区分布 下次打开时&#xff0c;点击保存时的图标就会看到自己命名的工作区

Shape Completion Enabled Robotic Grasping

摘要-这项工作提供了一个架构&#xff0c;使机器人能够通过形状完成抓取规划。形状完成是通过使用3D卷积神经网络(CNN)来完成的。该网络是在我们自己的新的开源数据集上训练的&#xff0c;该数据集包含了从不同视角捕获的超过44万个3D样本。运行时&#xff0c;从单个视角捕获的…

8.Xaml Border控件

1.运行图片 2.运行源码 <Grid Name="Grid1"><!--Border 里面只能有一个子元素--><!--BorderBrush="Red" 边框颜色-->

Nginx配置踩坑:一定注意location和proxy_pass的是否以“/”结尾

Nginx是开源、高性能、高可靠的Web和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动&#xff0c;还能在不间断服务的情况下对软件版本进行热更新。性能是Nginx最重要的考量&#xff0c;其…

数据库的内连接和外连接的区别

内连接&#xff1a; 指连接结果仅包含符合连接条件的行&#xff0c;参与连接的两个表都应该符合连接条件。 1.等值连接 依据两个表中相同内容的字段进行连接 表TESTA,TESTB,TESTC&#xff0c;各有A, B两列。 内连接 内连接&#xff0c;即最常见的等值连接&#xff0c;例&…

机器学习实战-系列教程4:手撕线性回归3之多特征线性回归(项目实战、原理解读、源码解读)

&#x1f308;&#x1f308;&#x1f308;机器学习 实战系列 总目录 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 手撕线性回归1之线性回归类的实现 手撕线性回归2之单特征线性回归 手撕线性回归3之多特征线性回归 手撕线性回归4之非线性回归 8…

Vue中数据可视化关系图展示与关系图分析

Vue中数据可视化关系图展示与关系图分析 数据可视化是现代Web应用程序的重要组成部分之一&#xff0c;它可以帮助我们以图形的方式呈现和分析复杂的数据关系。Vue.js是一个流行的JavaScript框架&#xff0c;它提供了强大的工具来构建数据可视化应用。本文将介绍如何使用Vue.js…

基于python实现贪心算法、蛮力法、动态规划法解决分数背包问题和0-1背包问题(附完整源码下载)

背包问题算法设计 问题要求在一个物品集合中选择合适的物品放入背包&#xff0c;在放入背包中的物品总重量不超过背包容量的前提下&#xff0c;希望放入背包的物品总价值最大。根据是否允许部分物品放入背包的要求&#xff0c;背包问题可以分为【分数背包问题】和【0-1背包问题…

Spring Web Flow远程代码执行漏洞复现(CVE-2017-4971)

一、搭建环境 cd vulhub/spring/CVE-2017-4971 docker-compose up -d 影响版本:Spring Web Flow 2.4.0 ~ 2.4.4 触发条件: 1.MvcViewFactoryCreator对象的useSpringBeanBinding参数需要设置为false&#xff08;默认值&#xff09; 2. flow view对象中设置BinderConfiguration…

网页版QQ签到加速源码 QQ音乐等级加速源码 CF活动一键领取源码 QQ手游等级加速

QQ网页签到加速小工具PHP源码二次优化版 包含QQ空间功能 QQ空白昵称 QQ大会员签到 CF活动一键领取 清空QQ空间说说 QQ每日打卡加速 QQ空间删除说说 QQ手游等级加速 QQ微视等级加速 QQ音乐等级加速签到

【操作系统】24王道考研笔记——第四章 文件管理

第四章 文件管理 一、文件系统基础 1.基本概念 2.文件的逻辑结构 顺序文件&#xff1a; 索引文件&#xff1a; 索引顺序文件&#xff1a; 效率分析&#xff1a; 多级索引顺序文件&#xff1a; 总结&#xff1a; 3.文件目录 文件控制块&#xff08;FCB&#xff09; 目录的基本…