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

基于Arduino IDE 野火ESP8266模块 一键配网 的开发

一、配网介绍

 ESP8266 一键配网(也称为 SmartConfig 或 FastConfig)是一种允许用户通过智能手机上的应用程序快速配置 ESP8266 Wi-Fi 模块的方法,而无需手动输入 SSID 和密码。为了实现这一功能,则需要一个支持 SmartConfig 的智能手机应用程序(如 ESP-TOUCH for Android 或 iOS 设备上的类似应用),以及 ESP8266 上运行的相应固件。

二、库文件

 使用 WiFiManager 库,这是一个第三方库,用于简化 ESP8266 的 Wi-Fi 连接过程,包括一键配网。要使用 WiFiManager,需要将它添加到 Arduino IDE 库中。可以通过 Arduino IDE 的库管理器来安装它,或者从 GitHub 上的源代码手动安装。

安装 WiFiManager 的方法:
1.打开 Arduino IDE。
2.转到“工具” > “管理库…”。
3.在库管理器中搜索 WiFiManager。
4.选择它并点击“安装”。
在这里插入图片描述

三、代码

编写测试代码,代码如下:

#include <ESP8266WiFi.h>  
#include <WiFiManager.h>  // 初始化 WiFiManager  
WiFiManager wifiManager;  void setup() {  Serial.begin(115200);  delay(10);  // 设置自定义参数(可选)  wifiManager.setAPCallback(configModeCallback);  wifiManager.setDebugOutput(true);  // 尝试连接到之前保存的 Wi-Fi  if (!wifiManager.autoConnect("MyESP8266")) {  Serial.println("Failed to connect");  // 停留并监听配置  ESP.restart();  }  Serial.println("Connected to WiFi");  Serial.print("IP Address: ");  Serial.println(WiFi.localIP());  
}  void loop() {  // 主循环保持空闲,可以在这里添加其他功能  delay(1000);  
}  void configModeCallback (WiFiManager *myWiFiManager) {  Serial.println("Entered config mode");  Serial.println(WiFi.softAPIP());  // 在这里可以添加额外的配置代码  
}

1.WiFiManager 库被用来管理 Wi-Fi 连接。
2.autoConnect 方法尝试连接到之前保存的网络,如果找不到,则进入配置模式。
3.configModeCallback 是一个可选的回调函数,当 ESP8266 进入配置模式时会被调用。
4.“MyESP8266” 是 ESP8266 在 AP(接入点)模式下显示的 SSID。

 一旦 ESP8266 启动并进入配置模式(即没有找到已知的 Wi-Fi 网络或首次启动),它将作为一个 Wi-Fi 接入点出现。可以使用智能手机上的 Wi-Fi 设置连接到这个接入点,并使用支持 SmartConfig 的应用程序(如 ESP-TOUCH)来发送 Wi-Fi 凭据给 ESP8266。一旦 ESP8266 接收到了这些凭据,它将尝试连接到指定的 Wi-Fi 网络,并保存这些设置以便将来使用。

注意:WiFiManager 库还在不断更新和改进,所以最好查看最新的文档和示例代码,以获取关于其功能和用法的最新信息。此外,请确保手机和 ESP8266 设备在同一个 Wi-Fi 范围内,并且智能手机上已经安装了支持 SmartConfig 的应用程序。

测试结果:
esp8266模块启动
在这里插入图片描述
使用 ESP-TOUCH 软件进行配置,提示配网失败,原因可能是固件版本不支持。。。。

问题参考:https://github.com/espressif/esp-idf/issues/4975

软件下载

ESP-TOUCH for Android 下载地址:
https://www.espressif.com.cn/zh-hans/support/download/apps
在这里插入图片描述

http://www.lryc.cn/news/326654.html

相关文章:

  • 左手医生:医疗 AI 企业的云原生提效降本之路
  • ceph集群部署
  • C#WPF控件Label宽度绑定到父控件的宽度
  • HMI的学习
  • 工业无线网关在汽车制造企业的应用效果和价值-天拓四方
  • 校园app开发流程-uniapp开发-支持APP小程序H5-源码交付-跑腿-二手市场-交友论坛等功能,学校自由选择!
  • Machine Learning机器学习之K近邻算法(K-Nearest Neighbors,KNN)
  • 四、在数据库里建库
  • 蓝桥杯-网络安全比赛(2)基础学习-正则表达式匹配电话号码、HTTP网址、IP地址、密码校验
  • 如何创建azure pipeline
  • 缓存菜品、套餐、购物车相关功能
  • 微信小程序的页面交互1
  • win10 docker zookeeper和kafka搭建
  • 【Redis】快速入门 数据类型 常用指令 在Java中操作Redis
  • 【tingsboard开源平台】下载数据库,IDEA编译,项目登录
  • Web3:探索区块链与物联网的融合
  • [BT]BUUCTF刷题第9天(3.27)
  • html页面使用@for(){},@if(){},利用jquery 获取当前class在列表中的下标
  • pulsar: 批量接收消息
  • LNMP架构之mysql数据库实战
  • aws使用记录
  • 区块链食品溯源案例实现(二)
  • RabbitMQ(简单模式)
  • ES集群部署的注意事项
  • Etcd 基本入门
  • PPT没保存怎么恢复?3个方法(更新版)!
  • DBeaver修改sql语句保存位置
  • LabVIEW2024中文版软件安装包、工具包、安装教程下载
  • 对AOP的理解
  • C 指针数组