10- ESP8266自主WiFi配网

这篇具有很好参考价值的文章主要介绍了10- ESP8266自主WiFi配网。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Author:teacherXue

一、ESP8266接入网络

前面我们已经可以使用nodemcu来读取传感器数据,或者控制外设。但这些功能和普通的单片机没有本质差别。物联网是需要接入网络的,传统的单片机系统还需要其他的设备中转才能互相连接以及访问公网。而ESP8266自带wifi功能,其本身就能充当智能网关的角色,ESP32芯片更是提供了蓝牙功能。

  1. 固定SSID以STA身份接入

在有路由器的场合,mcu多数作为从设备来工作即可,也就是STA身份,ESP芯片支持AP主设备、STA从设备、AP+STA主从设备模式。下面我们先通过固定方式接入我们所需要的WiFi路由器。

1)新建项目Lot_wifi_test_v1.0,设置串口波特率。

2)引入arduino框架自带库ESP8266WiFi。

#include <ESP8266WiFi.h>

3)定义连接wifi所需的账户密码

const char *ssid = "要连接的ssid";
const char *password = "密码";

4) Setup里面参考以下代码。

void setup()
{
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);//设置wifi模式为从设备STA模式,不声明默认为AP+STA
  // 获得当前mcu网络中主机名称
  Serial.printf("Default hostname: %s\n", WiFi.hostname().c_str());
  // 初始化 Wi-Fi
  WiFi.begin(ssid, password);
  Serial.print("正在连接 WiFi..");
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print('.');
    delay(1000);
  }
  Serial.println(WiFi.localIP());//打印获得的IP地址
  Serial.print("RRSI: ");
  Serial.println(WiFi.RSSI());//打印wifi的信号强度
}

5) 烧录程序,观察串口调试结果。

10- ESP8266自主WiFi配网

我们可以看到,串口打印出了连接到WiFI后的IP地址,还有MCU的hostname(来自于芯片id),最后输出WiFi信号的强度值。因为loop中我们没写任何代码,所以它后续并不会做什么。我们可以使用同一网络的计算机设备ping这个地址,可以看到如下结果。

10- ESP8266自主WiFi配网

二、WiFi自主配网

上一案例中,虽然代码比较简单,如果是自己做实验非常快速。但是如果场景发生了变化,如果是要销售的产品,如何知道用户的WiFi环境。所以在产品开发上该方法不可取。WiFi配网应该交给客户通过比较简单直接的方式进行。

  1. 配网方式

1)WiFi配网

MCU没有配网前,芯片工作在AP模式。SSID和密码预先写好,告知客户。客户使用WiFi设备连接芯片。然后打开web网页,扫描周围的WiFi热点,选择并输入密码进行配网。连接成功后,芯片转为从设备继续工作。

2)蓝牙配网

ESP8266并没有蓝牙功能,但可以通过串口蓝牙设备扩展。如果是ESP32则自带了蓝牙功能。可以通过手机和芯片进行蓝牙配对后,通过蓝牙通信传输WiFi配置信息。

  1. 安装WiFimanager扩展库

继续拿来主义,WiFimanager扩展库提供了非常便捷的WiFi配网功能。下面就来看一下如何使用WiFimanager进行WiFi配网。

  1. 新建项目Lot_wifi_test_v2.0

  1. 修改串口通信速率

  1. 安装WiFimanager扩展库。

这里需要注意:platformio扩展库下载的WiFimanager比较老旧,里面的案例也未能提供我们所需要的,所以我们将采取导入外部扩展库的方式。

打开arduino软件,我们将使用他来获得扩展库(其实去git上去获得这个扩展库也是可以的)。打开软件的工具 -> 管理扩展库-> 输入WiFiManager搜索后向下滚动,找到WiFiManager扩展库安装。

10- ESP8266自主WiFi配网

打开主界面 文件-> 首选项 ->找到项目文件夹位置。

10- ESP8266自主WiFi配网

该目录下的libraries目录就是下载的库文件目录。可以看到下载的WiFiManager库

10- ESP8266自主WiFi配网

将该目录用鼠标拖拽到(你也可以copy到目标文件夹)platformIO项目目录的lib目录下。

10- ESP8266自主WiFi配网

在项目文件中打开该扩展库的案例中的basic案例。

10- ESP8266自主WiFi配网
  1. 代码解析

1)引入支持库后我们需要创建wifimanager对象。

WiFiManager wm;

2)有些被注释掉的代码调用,仔细阅读,可能在某些场合有应用价值,例如擦除芯片设置。因为如果芯片被成功接入网络,那么它将不会再次出现配网界面,如果我们要改变网络配置,可以通过某些外置按钮来触发擦除操作。

// wm.resetSettings();

3)扩展库有三种建立连接的方式

  • 默认芯片ID的AP匿名连接。

  • 指定的AP名称匿名连接。

  • 指定AP名称并指定连接密码,此方式比较安全。

wm.autoConnect(); //从芯片id自动生成AP名称
wm.autoConnect("AutoConnectAP"); // 匿名连接
wm.autoConnect("AutoConnectAP","password"); //指定AP和密码

5) 完整的代码如下

#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager
void setup() {    
    Serial.begin(115200); 
    // WiFiManager,本地初始化。一旦它的任务完成了,就没有必要再让它存在了
    WiFiManager wm;

    // 擦除设置,它们被保存在芯片中
    // wm.resetSettings();

    //自动连接使用保存的凭证,
//如果连接失败,它将启动一个具有指定名称的接入点("AutoConnectAP"),
//如果为空将自动生成SSID,如果密码为空将是匿名AP (wm.autoConnect())
//然后进入阻塞循环等待配置并返回成功结果

    bool res;
    // res = wm.autoConnect(); //从芯片id自动生成AP名称
    // res = wm.autoConnect("AutoConnectAP"); // 匿名连接
    res = wm.autoConnect("xm_"+ ESP.getChipId(),"12345678"); // 指定密码的AP
    //根据返回结果判断连接是否生效
    if(!res) {
        Serial.println("Failed to connect");
        // ESP.restart();
    } 
    else {
        //WiFi连接成功    
        Serial.println("connected...yeey :)");
    }

}

void loop() {
    // put your main code here, to run repeatedly:   
}

5) 烧录代码并运行

用手机扫描AP热点,找到xm开头后跟16进制数字的AP名称就是MCU芯片,输入密码12345678连接,自动打开浏览器页面跳转至192.168.4.1,此时为配网页面。选择第一项配网,会扫描附近WiFi热点,选择需要连接的热点,并输入密码保存。连接成功后页面跳转MCU已经转为从设备工作状态。

10- ESP8266自主WiFi配网

串口信息显示如下文章来源地址https://www.toymoban.com/news/detail-420005.html

10- ESP8266自主WiFi配网

到了这里,关于10- ESP8266自主WiFi配网的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ESP8266入门教程12:自动配网

    下载第三方库WiFiManager到lib文件夹  ​git clone https://github.com/tzapu/WiFiManager.git 第2行:包含WiFiManager库的头文件 第12行:创建WiFiManager对象 第14行:配置自动配网热点名称 1、编译并上传固件,然后使用手机连接名称叫做“ESP8266-Auto”的WIFI热点 2、点击【Configure WiFi】开始配网,

    2024年02月12日
    浏览(31)
  • ESP8266如何接入TLINK

    关于如何使用esp8266接入TLINK,刚做完这个项目,这里分享一下,仅供参考 一.模块准备 准备一个esp8266模块和USB转TTL模块,手机热点(路由器) 二.如何接线 三.关于对ESP8266操作的一些指令连接上手机热点 ESP8266的默认波特率是115200 关于8266的三种模式有什么不一样,可以到网上搜

    2024年02月09日
    浏览(44)
  • STM32+ESP8266接入云(3)

    解析数据          进入阿里云的IOT Stdio,点击新建项目。          新建项目后点击新建Web应用。名称           应用名称随便填写                    创建完成后我们进入应用。         在左侧组件处拖入一个指示灯和一个开关。          点击指示灯组件,点

    2023年04月11日
    浏览(89)
  • ESP32-Web-Server编程综合项目1-结合 Web Server 实现 WiFi 配网和网页 OTA 更新

    前述的内容多是一个个小功能的演示,本章节讲述一些实际项目中使用到的综合项目。 首先要讲述的案例是通过ESP32 上的 Web Server 实现对 ESP32 的 WiFi 配网和网页 OTA 更新功能。 项目的主要功能有: 通过菜单控制多网页的切换 在多网页中分别实现 WiFi 配网、控制设备重启、通

    2024年01月22日
    浏览(32)
  • ESP8266WIFI连网播放视频

    本篇介绍ESP8266在OLED上播放视频: 电脑端Python程序作为视频数据的服务器,借助OpenCV实时读取视频帧,并进行二值图像转换,尺寸调整,再将二值图像转为数组,并以二进制形式的数据通过socket方式无线发送给ESP8266。 ESP8266采用Arduino IDE编程,借助U8g2库,将图像数据实时显示

    2023年04月14日
    浏览(22)
  • ESP8266简易WIFI天气时钟

    本篇介绍了如何使用ESP8266,通过WIFI连网获取网络天气和网络时间,然后借助U8g2库,在OLED上显示当前时间和天气信息。 连网获取网络天气,一般需要通过http的方式,从天气信息提供商的网络地址获取天气信息。 这里以心知天气为例,需要先注册一个开发者账号,然后获取自

    2023年04月08日
    浏览(26)
  • ESP8266/ESP32 NodeMCU接入阿里云物联网平台

    阿里云物联网平台公共实例是免费的,且不像然也等服务器一样无法区分不同用户发布的话题。本文采用常规的pubsubclient库连接阿里云。ESP8266/ESP32用pubsubclient接入阿里云平台截至写稿的现在,网上有的资源较少,现在我就来介绍一下使用方法 1.登录阿里云官网https://www.aliyu

    2024年02月02日
    浏览(37)
  • ESP8266 WIFI 模块和手机通信

    随着物联网智能化的不断发展,越来越多人选择了无线通信设备,比如WiFi、蓝牙、Lora、zigbee、2G/4G模块等物联网无线通信模块,从而可以更好地达到无线控制目的。 1.这款调试助手支持的功能比较齐全,可以自行到手机应用市场下载。 2.串口调试助手用的是正点原子提供的

    2024年02月06日
    浏览(32)
  • STM32---WIFI模块ESP8266

    模块连接时基于串口方式连接,其模块与电脑(服务器)之间数据的发送与接收也是基于串口。 mode=1 :Station模式(连接到WIFI) mode=2:AP模式(自己作为WIFI源供其他连接) mode=3:AP+Station模式(以上两者模式的合并) 透传模式就是单片机通过串口形式与模块连接,而模块与上位

    2024年02月03日
    浏览(40)
  • 实验四:ESP8266WIFI通讯实验

    本实验开发板基于:GD32F103 我们首先需要看一下原理图 根据原理图可以看到,ESP8266是通过PA2 PA3这个串口进行通讯,PA13是控制它的复位, 从芯片手册中可以看到PA2PA3是串口1,PA2是串口1的发送,PA3是串口1的接收。 本项目使用ESP8266型号为ESP-01S 自带排针WIFI模块 功能特点:基

    2024年02月03日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包