如何使用 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 网页来进行配网测试

首先,需要根据自己的 index.html 文件,在 esp-at/components/at/src/at_web_server_cmd.c 中自行修改代码来解析自己的 Webserver 网页,以编译 AT 固件。

然后更新 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 配网" 方式相同,不再赘述。

### 使用GPT编写代码时添加自定义指令的方法 当利用基于GPT的模型来辅助编程工作时,可以通过精心设计提示词(prompt)的方式加入自定义指令。这不仅能够指导AI更精确地理解需求,还能提高生成代码的质量和准确性。 #### 设计有效的提示词结构 为了使GPT更好地遵循特定指示,在构建提示词时应考虑以下几个方面: - **清晰的任务描述**:明确告知要实现的功能或解决的问题是什么。 ```plaintext Task: Create a Python function named 'calculate_area' which calculates the area of different shapes based on user input. ``` - **输入输出格式说明**:指定函数接收什么样的参数以及返回的结果形式。 ```plaintext Input parameters should be shape type (string), length (float/int), width (float/int). The output must be an integer or float representing the calculated area value. ``` - **附加约束条件**:如果存在任何特殊要求,比如性能优化目标、兼容性考量或是编码风格偏好等,则需一并指出。 ```plaintext Ensure all variables are properly documented using docstrings following PEP 257 conventions. Additionally, include error handling for invalid inputs such as negative numbers or non-existent shape types. ``` 通过这种方式组合而成的复杂提示可以有效地引导像GPT这样的大型语言模型按照预期方式执行任务[^1]。 #### 实际应用案例展示 下面是一个具体的例子,展示了如何向GPT提供带有自定义指令的提示以获取所需功能的Python代码片段: ```python # Prompt given to GPT model: Task Description: Write a simple web server in Flask framework that serves static HTML pages located under './static/' directory. Input/Output Specifications: No direct API endpoints required; only serve files from specified folder path upon HTTP GET requests made by clients visiting http://localhost:<port>/path/to/file.html where <port> is configurable via environment variable PORT. Additional Requirements: Use logging module to record access logs at INFO level including timestamp, client IP address, requested URL, status code returned, and response time measured in milliseconds. Apply best practices regarding security headers configuration according to OWASP recommendations. ``` 上述示例中的提示包含了详细的上下文信息,使得GPT能够在充分理解开发者意图的基础上生成满足业务逻辑和技术标准双重要求的应用程序源码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值