0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样通过http服务器用html格式控制7段显示

454398 来源:工程师吴畏 2019-08-17 09:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:关于这个项目

这是一个使用ESP8266(NodeMCU)wifi模块开发的物联网项目。该项目的动机是在模块上创建一个可以通过网络托管多个客户端的Web服务器。在这里,需要了解html和javaScript的基本知识才能理解我的项目。我将在这里讨论关于ESP8266和javaScript的一些高级主题是:

1。上传ESP8266的SPIFFS上的文件,以便在我们的arduino代码中更有效地使用这些文件。

2。使用javaScript进行Web存储

SPIFFS

到目前为止,我们始终将网页的HTML包含为字符串我们的草图中的文字。这使得我们的代码非常难以阅读,并且您将很快耗尽内存。

SPIFFS是一款轻量级文件系统,适用于带有闪存芯片的微控制器。 ESP8266的板载闪存芯片为您的网页提供了充足的空间,特别是如果您拥有1MB,2MB或4MB版本。您可以通过以下链接了解如何在arduino软件中添加用于将文件上载到SPIFFS的工具:http://esp8266.github.io/Arduino/versions/2.0.0/d 。..。

In这个项目,我有2个html文件和一个javascript文件。所有这些文件都上传到与草图分离的SPIFFS,以便这些文件中的更改独立于主草图。

这两个html文件都是由prepareFile()检索的,如下所示:

void prepareFile(){

bool ok = SPIFFS.begin();

if (ok) { File f = SPIFFS.open(“/index.html”, “r”);

File f1=SPIFFS.open(“/index1.html”,“r”);

data = f.readString(); data1=f1.readString();

f.close(); f1.close();

} else

Serial.println(“No such file found.”);

}

当使用loadScript()读取javascript文件时,如下所示:

void loadScript(String path,String type){

if(SPIFFS.exists(path)){

File file=SPIFFS.open(path,“r”);

server.streamFile(file,type);

}

}

Web应用程序的本地存储

您可以了解如何使用不同的本地存储对象和方法HTML5使用以下文章中的javascript:http://diveintohtml5.info/storage.html。我将在工作部分的项目中讨论本地存储的使用。

步骤2:需要硬件

NodeMCU ESP8266 12E Wifi模块

无焊面包板

跳线

7 Segent Display(共阴极)

1K欧姆电阻器

微型USB电缆(用于将NodeMCU与计算机连接)

第3步:电路和连接

连接非常简单。在上面的电路图中,nodemcu的引脚以下列方式连接:

A - 》 D1

B - 》 D2

C - 》 D3

D - 》 D4

E - 》 D6

F - 》 D7

G - 》 D8

其中A,B,C,D,E&F是7段显示的片段

。忽略7段显示的DP。不要将它与ESP的引脚D5连接

步骤4:工作

如前所述,我们有两个html文件。其中一个是当ESP8266服务器收到“/”时调用的根html页面,即如果请求URI‘/’,服务器应该回复HTTP状态代码200(确定),然后发送带有“索引”的响应。 html“file。

当客户端通过在表单上提交输入请求来自根页面时,将发送第二个html文件。一旦服务器从表单获取输入POSTED,它将它与固定字符串值进行比较并发送第二个html页面作为响应。

if(server.arg(“nam”) == “0”) {

server.send(200, “text/html”, data1);

sevenSeg(0); }

由于第二页的html不是在草图中定义,所以这里我们引用已经使用SPIFFS读取html代码的“data1”。读取

File f1=SPIFFS.open(“/index1.html”,“r”);

data1=f1.readString();

这里也调用参数为“0”的sevenSeg() “通过打开和关闭不同的段,可以用它来显示”0“。在这里,我做了自我解释的功能,即onA()将打开面包板上7段显示的A段,同样offA将关闭它。

因此,在这种情况下显示“0 “,我们必须切换除G以外的所有段(DP被忽略,因为它没有连接到ESP8266的任何引脚)。所以我的函数看起来像:

if(num==0){

onA(); onB(); onC(); onD(); onE(); onF();

offG();

}

第5步:HTML和JAVASCRIPT代码

索引.html有一个画布,在关闭模式下显示7段,并在其下方形成。这是你打开它后看到的:

如果我们想要使用没有ESP8266的网页,可以通过更改表单的action属性中的链接来实现。目前这是行动中的链接:

在这里你可以看到实际的链接是连接到任何wifi(或热点)后分配给你的nodeMCU的同一个ip地址。调整后的表单标记如下所示:

这里,我使用浏览器的web stroge来存储用户的输入值,以便在index.html中输入的值存储在本地浏览器(如cookie)。该值由index1.html获取,数字显示在html画布上的7段显示中。您可以通过以下视频了解此过程:

video_attach

第6步:关键注释

如果您注意以下几点,该项目将与您的nodemcu一起使用:

1。 root html文件的action属性中的链接应为“http://(串行监视器上的IP或分配给ESP的IP)/submit”。

2。使用支持html5和新标签和功能的最新版浏览器。

3。仅当index.html,index1.html和main.js放在数据文件夹中时,SPIFFS才有效。您可以从我的github克隆代码文件

步骤7:CODE

这是该库的存储库链接我的项目代码。如果您正在使用ESP8266中的SPIFFS,您可以理解为什么我将html和javascript文件放在数据文件夹中。请使用它。

GitHub存储库链接

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10096

    浏览量

    90904
  • ESP8266
    +关注

    关注

    51

    文章

    966

    浏览量

    49025
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网站服务器用高防ip好吗?

    网站服务器用高防ip好吗?很多网站服务器经常遭受黑客攻击,不仅影响使用体验感,还会带来一些经济损失。很多服务器都选择接入高防ip来防御攻击,那么网站服务器部署高防ip后有哪些优势?Jt
    的头像 发表于 09-04 17:44 697次阅读

    怎样在阿里ECS服务器上架设自己的OpenVPN服务器

    需要自己架设服务器,让现场的IR615路由器连接自己的服务器。能通过自己的服务器进行数据采集和远程运维。
    发表于 08-06 06:56

    Jtti.cc服务器用固态硬盘还是机械硬盘比较好?服务器硬盘挑选指南

    服务器用固态硬盘和机械硬盘进行比较,并提供一些硬盘挑选的指南。 一、性能比较 固态硬盘由于采用了闪存芯片而非机械结构,因此拥有更快的读写速度。这使得固态硬盘在处理大量随机读写操作时表现更加出色,适合于高性能的服务器
    的头像 发表于 06-12 17:37 917次阅读

    HTTP和HTTPS的关键区别

    HTTP(HyperText Transfer Protocol) 是一种无状态的通信协议,通常用于在客户端(例如浏览器)和服务器之间传输超文本(如 HTML 页面)。但这仅仅是一个单向通信协议
    的头像 发表于 03-25 15:34 1599次阅读
    <b class='flag-5'>HTTP</b>和HTTPS的关键区别

    信创关键客户,需要怎样服务器

    服务器
    脑极体
    发布于 :2025年03月17日 20:59:00

    服务器数据恢复—如何预防服务器故障与恢复服务器数据!

    服务器常见故障: 硬件故障:磁盘损坏、电池故障等。 软件问题:操作系统崩溃、未知的程序运行错误等。 病毒破坏:勒索病毒加密、删除服务器数据等。 不可控力量;服务器浸水、火烧、机房倒塌等导致
    的头像 发表于 03-11 12:36 819次阅读

    云盘服务器用的什么硬盘类型?

    云盘服务器所使用的硬盘类型多样,主要包括机械硬盘(HDD)、固态硬盘(SSD)以及混合硬盘(SSHD),每种硬盘都有其独特的特点和适用场景。下面UU云小编将对云盘服务器用的什么硬盘类型进行详细介绍:
    的头像 发表于 01-23 10:58 751次阅读

    多c站群服务器详细解析

    多C站群服务器是一种特殊配置的服务器,主要用于多站点管理和分布式网络操作。主机推荐小编为您整理发布多C站群服务器的详细解析。
    的头像 发表于 01-23 09:38 694次阅读

    1分钟,实现传感器通过串口服务器接入ZWS云

    导读本文介绍如何在1分钟内,将传感器通过串口服务器GCOM80接入ZWS云平台,实现数据上云。本文以光照传感器为例,介绍传感器通过串口服务器GCOM80快速接入ZWS云的过程。硬件准备
    的头像 发表于 01-10 11:37 938次阅读
    1分钟,实现传感器<b class='flag-5'>通过</b>串口<b class='flag-5'>服务器</b>接入ZWS云

    服务器 Flexus X 实例:轻量级 http 服务器 Tinyhttpd 部署

    Flexus 云服务器 X 实例 是华为云推出的一款高性能、高可靠性的云服务器产品,它专为满足企业级用户对计算资源的严格要求而设计。本篇文章通过部署 轻量级 http
    的头像 发表于 01-07 16:59 920次阅读
    云<b class='flag-5'>服务器</b> Flexus X 实例:轻量级 <b class='flag-5'>http</b> <b class='flag-5'>服务器</b> Tinyhttpd 部署

    服务器如何处理 HTTP 请求

    服务器处理HTTP请求的过程是一个有序且复杂的流程,通常涉及多个步骤。以下是服务器处理HTTP请求的具体步骤: 监听端口 :HTTP
    的头像 发表于 12-30 09:37 1014次阅读

    HTTP 协议的工作原理

    HTTP协议的工作原理 1. HTTP协议概述 HTTP是一个应用层协议,它定义了客户端与服务器之间请求和响应的格式
    的头像 发表于 12-30 09:21 1615次阅读

    HTTP 协议的基本概念

    浏览器)和服务器之间请求和响应的格式。 1. HTTP协议概述 HTTP协议基于TCP/IP协议之上,主要规定了客户端与服务器之间的通信规则
    的头像 发表于 12-29 15:12 2243次阅读

    如何使用HTTP服务器搭建本地Web网站

    最近在学习 ETH 模块,ETH 模块具有 HTTP 服务的功能,我将在本帖中探讨如何使用 HTTP 服务搭建一个本地 Web网站,并分享一些我所获得的经验。
    的头像 发表于 12-24 09:54 3411次阅读
    如何使用<b class='flag-5'>HTTP</b><b class='flag-5'>服务器</b>搭建本地Web网站