如何使用 AT+WEBSERVER 指令实现自定义的 Webserver html 网页配网

开启 AT 固件中的 Webserver 指令FS 指令支持

乐鑫官网发布的默认通用 AT 固件不支持 webserver 配网功能, 需要用户自己搭建 esp-at 环境,并在 sdkconfig 中开启 webserver AT 指令FS 指令的支持, 如下图所示:

在这里插入图片描述

测试 AT 固件默认提供的 Webserver 配网功能

AT 固件中默认使用的配网网页是 index.html, 我们仅需要找到 AT 固件中的 index.html 的路径, 然后将其重新写入即可。

在实现新的自定义 Webserver 网页配网之前, 我们先测试下 AT 固件中默认的 Webserver 配网网页, 指令如下:

AT+CWMODE=3                          //设置 wifi 模式为 sta+ap 共存
 
AT+CWSAP="pos_softap","",7,0,10,0    //设置 softap 的信息

AT+CIPAP?                           //查询 ESP 设备 Wifi  AP  模式的 IP 地址
 
AT+CIPMUX=1                          //设置多连接
  
AT+WEBSERVER=1,80,25                //开启 werbserver 配网功能

测试时,手机端需要先接入名为 pos_softap 的热点中, 如下所示:

在这里插入图片描述

接入成功后, 手机端会获取到模块 WiFi AP 分配的 ip 地址, 一般是 192.168.4.X, 对应建立连接的日志如下:

+STA_CONNECTED:"c2:4f:11:dc:cc:94"
 
+DIST_STA_IP:"c2:4f:11:dc:cc:94","192.168.4.2"

此时手机已经和模块处于同一局域网内了。

通过 AT+CIPAP? 指令可查询到 ESP 模组 WiFi AP 模式默认的 IP 地址为 192.168.4.1 , 因此手机端仅需要在浏览器输入192.168.4.1,进入到网页进行配网即可, 如下所示:

在这里插入图片描述

输入待配网的 ssidpassword 之后, 点击开始配网即可。配网完成,设备端将打印如下日志:

connect config finish
 
+WEBSERVERRSP:1
 
wifi disconnected, rc:0
 
WIFI CONNECTED
BLUFI BLE is not connected yet
WIFI GOT IP
 
+WEBSERVERRSP:2

实现自定义 Webserver html 网页配网功能


上述我们已经完成了 AT 固件默认提供的原始的 Webserver 配网功能的测试, 现在我们再对自定义的 Webserver 网页来进行配网测试

首先,更新 AT 固件默认的 index.html 文件为自定义的 Webserver 网页的 index.html 文件。实现该功能用到的 AT 指令如下:

AT+FS=0,4,"."       //查询当前文件系统下面挂载了哪几个文件
 
AT+FS=0,1,"index.html",0,3048     //重新写入新的 html 文件, 从偏移地址 0 开始写入,写入长度为 3048 字节

注意:这里的偏移地址是新自定义的文件(index.html)里的偏移地址,比如你设了 0 就是从这个文件的 0 地址开始写,不是 FS 分区的偏移地址

当设备端返回 > 日志后,将等待写入 index.html 。为方便测试,在串口调试工具界面,我们可以打开待写入的 index.html 文件来进行测试。

在这里插入图片描述

之后使用相同的指令来测试自定义的 Webserver 配网

AT+CWMODE=3                          //设置 wifi 模式为 sta+ap 共存
 
AT+CWSAP="pos_softap","",7,0,10,0    //设置 softap 的信息

AT+CIPAP?                           //查询 ESP 设备 Wifi  AP  模式的 IP 地址
 
AT+CIPMUX=1                          //设置多连接
  
AT+WEBSERVER=1,80,25                //开启 werbserver 配网功能

测试方式与上述 "测试 AT 固件默认提供的 Webserver 配网" 方式相同,不再赘述。

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

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

相关文章

Elasticsearch 与 OpenSearch:揭开性能差距

作者:George Kobar, Ugo Sangiorgi 对于任何依赖快速、准确搜索数据的组织来说,强大、快速且高效的搜索引擎是至关重要的元素。 对于开发人员和架构师来说,选择正确的搜索平台可以极大地影响你的组织提供快速且相关结果的能力。 在我们全面的…

oracle积累增量和差异增量

积累增量和差异增量: 对于 RMAN 来说,积累增量备份和差异增量备份都是增量备份的一种形式,它们之间的区别在于备份的范围和备份集的方式。 积累增量备份:在进行积累增量备份时,RMAN 会备份自最后一次完全备份或增量备…

FPGA外部触发信号毛刺产生及滤波

1、背景 最近在某个项目中,遇到输入给FPGA管脚的外部触发信号因为有毛刺产生,导致FPGA接收到的外部触发信号数量多于实际值。比如:用某个信号源产生1000个外部触发信号(上升沿触发方式)给到FPGA输入IO,实际…

PCI 简易通讯控制器有黄色感叹号

一、问题描述 设备管理器中,其他设备中显示 “PCI 简易通讯控制器”驱动未安装,显示黄色感叹号: 二、原因分析 右键该驱动,查看属性ID,显示为: PCI \ VEN_8086&DEV_1C3A&SUBSYS…

14.3.4 【Linux】使用 LVM thin Volume 让 LVM 动态自动调整磁盘使用率

想像一个情况,你有个目录未来会使用到大约 5T 的容量,但是目前你的磁盘仅有 3T,问题是,接下来的两个月你的系统都还不会超过 3T 的容量, 不过你想要让用户知道,就是他最多有 5T 可以使用就是了!…

ECharts 折线图使用相关

一、折线图堆叠设置为不堆叠的方法 官网是这样的,但是不需要这种堆叠形式的如下图: 即:第2条数据值 第1条数据值 第2条数据值 第3条数据值 第2条数据值 第3条数据值 需要改成实际值展示,如下图: 只需要修改stack的…

微信小程序 地图map(电子围栏圆形和多边形)

正常情况下是没有手机上画电子围栏的,公共平台上我也没找到,所以走了一个歪点子,就是给地图添加点击事件,记录点的位置,在画到电子围栏上就是添加电子围栏了,如果只是显示电子围栏就简单了 一、多边形电子…

mybatis-flex探索

mybatis古今未来 最近无意之中发现了一个非常棒的持久层框架mybatis-flex,迫不及待研究了一下 发现简直就是我的梦中情框,之前写ibatis,后来写mybatis,接着写mybatis-plus,接着研究mybatis-flex ibatis ibatis是apa…

Markdown和LaTex的学习

下载Typora Typora(免费版) 轻量级Markdown编辑器 - 哔哩哔哩 (bilibili.com) 部分编辑器需要进入设置 中开启特定的 Markdown 语法,例如 Typora 就需要手动开启 高亮 功能 Typora的使用: Typora中各种使用 - lyluoye - 博客园 (cnblogs.com) 标题 #…

MyBatisPlus快速入门

MyBatisPlus概述和快速入门 概述 基础框架 MyBatisSpringSpringMVC 为什么需要学习? MyBatisPlus可以节省我们大量的工作时间,所有的CRUD都可以自动化完成。还有其他框架JPA、tk-mapper。 简介 是什么? Mybatis本来就是简化JDBC操作的…

redis原理 3:未雨绸缪 —— 持久化

redis原理 3:未雨绸缪 —— 持久化 Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。 Redis 的持久化机制有两种…

(三)Node.js - 模块化

1. Node.js中的模块化 Node.js中根据模块来源不同,将模块分为了3大类,分别是: 内置模块:内置模块由Node.js官方提供的,例如fs、path、http等自定义模块:用户创建的每个.js文件,都是自定义模块…

企升编辑器word编写插件

面向用户群体招投标人员,用统一的模板来编写标书,并最终合并标书。项目经理,编写项目开发计划书,项目验收文档等。开发人员,编写项目需求规格说明书、设计说明书、技术总结等文档。其他文档编写工作量较多的岗位人员。…

flowable-ui部署(6.80)

前置条件:Apache Tomcat/9.0.78版本及以下 https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.78/bin/apache-tomcat-9.0.78-windows-x64.zip 一、下载资源 https://github.com/flowable/flowable-engine/releases/download/flowable-6.8.0/flowable-6.8.0.zip 二…

Apoll 多项式规划求解

一、纵向规划 void QuarticPolynomialCurve1d::ComputeCoefficients(const float x0, const float dx0, const float ddx0, const float dx1,const float ddx1, const float p) {if (p < 0.0) {std::cout << "p should be greater than 0 at line 140." &…

伦敦金费用有哪几方面?

通常在网上开设伦敦金投资账户是没有成本的&#xff0c;而它交易的费用&#xff0c;主要是由点差和过夜利息&#xff08;仓息&#xff09;构成。如果伦敦金投资者只是做短线的日内交易&#xff0c;做一手完整的100盎司的标准合约&#xff0c;需要支付大约50美元点差费用&#x…

分支和循环语句(1)(C语言)

目录 什么是语句&#xff1f; 分支语句&#xff08;选择结构&#xff09; if语句 悬空else if书写形式的对比 switch语句 在switch语句中的 break default子句 循环语句 while循环 while语句中的break和continue for循环 语法 break和continue在for循环中 for语句和…

fastadmin、vue、react图标库适用于多种框架

在二开fastadmin中&#xff0c;在写vue以及react时&#xff0c;侧边导航栏以及按钮中常常需要很多图标&#xff0c;那么这些图标应该去哪里得到呢&#xff0c;在这里给大家一个链接&#xff0c;这里有丰富的图标库&#xff0c;可以找到自己想要的进行使用。 点击下方链接&…

AI lightning学习

真的是没有mmlab的框架好理解&#xff0c;hook调用没问题&#xff0c;就是代码写的不整洁&#xff0c;hook放的到处都是&#xff0c;而且hook的名字和run的名字也不好对应。 又是捧mmengine的一天 &#x1f603;

Leetcode-每日一题【剑指 Offer 14- I. 剪绳子】

题目 给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#xff0c;n>1并且m>1&#xff09;&#xff0c;每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少&#xff1f;例如&#xff0…