当前位置: 首页 > news >正文

ESP8266_ESP32 Smartconfig一键配网功能

目录

  • SmartConfig一键配网
    • 基本原理
    • 设备绑定流程
  • ESP8266/ESP32 SmartConfig配网
    • AT指令配置方式
    • Arduino程序配置方式
  • 总结

SmartConfig一键配网

SmartConfigTM 是由 TI 开发的配网技术,用于将新的 Wi-Fi 设备连接到 Wi-Fi 网络。它使用移动应用程序将无线网凭据从智能手机或平板电脑端广播给未配网的 Wi-Fi 设备。这项技术的优势在于,设备无需直接获知 AP 的 SSID 或密码,而是通过智能手机获取。这对于没有用户界面的无头设备和系统而言十分重要。目前, ESP32 支持三种类型的 SmartConfig 配网: Airkiss、ESPTouch 和 ESPTouch v2。ESPTouch v2 自 SmartConfig v3.0 (SmartConfig 的版本可以从 esp_smartconfig_get_version() 获取)起开始支持,ESPTouch v2 和 vESPTouch 采用完全不同的配网算法,因此配网速度更快。此外,ESPTouch v2 还增加了 AES 加密功能和自定义数据字段。

基本原理

设备进入 Wi-Fi 混杂模式(promiscuous mode)以监听捕获周围的 Wi-Fi 报文。由于设备暂未联网,且 Wi-Fi 网络的数据帧已通过加密,设备无法获取 payload 的内容,但可以获取报文的某些特征数据,例如每个报文的长度。同时对于某些数据帧,例如 UDP 的广播包或多播包,其报文的帧头结构比较固定,较容易识别。
此时在手机 App 或者小程序端,即可通过发送 UDP 的广播包或多播包,并利用报文的特征,例如长度变化进行编码。
将目标 Wi-Fi 路由器的 SSID/PSW 字符以约定的编码方式发送出去,设备端在捕获到 UDP 报文后,按约定的方式进行解码,即可得到目标 Wi-Fi 路由器的相关信息并进行联网。

设备绑定流程

SmartConfig 方式配网,每个厂商的编码方式和报文选择上有自己的协议,文章里的 ESP8266和ESP32采用的协议是乐鑫 ESP-TOUCH协议。基于该协议,设备端在连接 Wi-Fi 路由器成功后,将会告知手机端自己的 IP 地址。此时手机端可以通过数据通道,例如 TCP/UDP 通讯将后台提供的配网 Token 发送给设备,并由设备转发至物联网后台,依据 Token 进行设备绑定。

简单来说,smartconfig一键配网就是ESP8266/32打开配网模式,手机连接WIFI(必须是2.4GWIFI )后打开乐鑫软件APP进入ESPTOUCH,输入密码,点击确认后手机会往外进行发送报文,设备接收到报文后进行连接WiFi,获取ip地址。

ESP8266/ESP32 SmartConfig配网

AT指令配置方式

在这里插入图片描述

ESP8266/ESP32两个通过smartconfig配网的方法是相同,只是烧录的固件不同。

ESP8266模组烧录的是乐鑫的ESP-WROOM-02-AT-V2.2.2.0固件,可直接从乐鑫的官网: ESP8266固件进行获取,压缩包里面都会有文档进行说明这个固件是如何使用以及AT指令集。
ESP32模组烧录的是乐鑫的ESP32-WROOM-32-AT-V3.4.0.0固件,可直接从乐鑫的官网: ESP32固件进行获取,压缩包里面都会有文档进行说明这个固件是如何使用以及AT指令集。

烧录对应固件后,发送以下指令打开配网

AT+CWMODE=1   //设置WiFi模式为单Station模式
AT+CWSTARTSMART  //开启 SmartConfig

手机端打开ESPTOUCH软件,进入ESPTOUCH界面,然后输入密码点击确认后,就会开始向外部发送报文了。( ESPTOUCH软件下载地址)
在这里插入图片描述
过一会后就可以看到ESP8266/32设备配网成功了。
软件页面:
在这里插入图片描述
串口页面:

在这里插入图片描述
出现Smartconfig connected wifi则表示连接成功。

Arduino程序配置方式

官方在Arduino IDE中,同样为ESP32提供了SmartConfig的示例,实际使用开发可以修改移植到自己的项目中,下面我们来测试一下实际效果。
下载好ESP32的开发环境,我们可以看官方已经为我们提供了SmartConfig的例程,直接打开进行烧录就可以。
在这里插入图片描述
烧录完成后我们打开串口输出,查看连接现象,操作和上面的是一样的,这里就不多说了,直接看连接成功的输出结果:
在这里插入图片描述
这里输出获取到的IP地址则已经连接上了。

总结

  1. 无论 SmartConfig 成功与否,都请在执行其他命令之前调用AT+CWSTOPSMART 释放 SmartConfig 占用的内存。
  2. 串口的接线两个单片机各有不同,可以看对应固件的用户指南进行接线。
    在这里插入图片描述
    在这里插入图片描述
http://www.xdnf.cn/news/62461.html

相关文章:

  • qt 配置 mysql 驱动问题:Cannot load library qsqlmysql;QMYSQL driver not loaded
  • 如何编写单元测试
  • 运维工程师面试总结21/4
  • 前端笔记-Axios
  • 3步拆解Linux内核源码的思维模型
  • 汽车动力转向器落锤冲击试验台
  • Java+nanomsg快速实现去broker的数据通信
  • 2025年最新服务器、中间件安全(面试题)
  • HADOOP 3.4.1安装和搭建(尚硅谷版~)
  • 强化学习系统学习路径与实践方法
  • 随机面试--<二>
  • 1+X: Python程序开发职业技能等级要求(初级)练习资料分享
  • 哈希表的学习
  • 基于RK3588+FPGA+AI YOLO的无人船目标检测系统(一)概述
  • 几何编码:启用矢量模式地理空间机器学习
  • OOA-CNN-LSTM-Attention、CNN-LSTM-Attention、OOA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比
  • 【Redis】SpringDataRedis
  • 【自然语言处理与大模型】模型压缩技术之量化
  • 在线查看【免费】avi,mov,rm,webm,ts,rm,mkv,mpeg,ogg,mpg,rmvb,wmv,3gp,ts,swf文件格式网站
  • Spring Boot 集成 Redis 实战总结
  • Idea中实用设置和插件
  • 系统架构师2025年论文《论基于UML的需求分析》
  • 项目实战 -- 发布管理
  • 把dll模块注入到游戏进程的方法_基于文件修改的注入方式
  • SQL语言的三大分类及其应用详解
  • 欧拉-国产操作系统替代产品如何
  • FreeRTOS中的优先级翻转问题及其解决方案:互斥信号量详解
  • ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(显示输出类外设之IS31FL3216)
  • DeepSeek+Cursor+Devbox+Sealos项目实战
  • IP精准检测“ipinfo”