STM32应用开发教程进阶--Wi-Fi通信(ESP8266模块:STA、AP、STA+AP)

news2024/11/26 23:47:23

实现目标

1、熟悉Wi-F、ESP8266模块

2、掌握ESP8266模块共3种工作模式:STA、AP、STA+AP的配置

3、具体实现目标:(1)AT固件烧录;(2)ESP8266模块STA、AP、STA+AP的配置


一、Wi-Fi概述

1、Wi-Fi定义

        Wi-Fi是无线保真的缩写,英文全称为Wireless Fidelity,在无线局域网才对范畴是指“无线兼容性认证”,实质上是一种商业认证,同时也是一种无线联网技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。同蓝牙技术相比,它具备更高的传输速率,更远的传播距离,已经广泛应用于笔记本、手机、汽车等广大领域中。

    Wi-Fi是无线局域网(WLAN)的一个标准,最早的无线局域网可以追溯到上个世纪70年代,基于ALOHA协议的UHF无线网络连接了夏威夷岛,是现在无线局域网的一个最初版本。发展历程如下:

2、Wi-Fi的组网结构

Wi-Fi有两种组网结构:一对多(Infrastructure模式)和点对点(Ad-hoc模式,也叫IBSS模式)。最常用的Wi-Fi是一对多结构的。一个AP(接入点),多个接入设备,无线路由器是其实就是路由器+AP。Wi-Fi还可以点对点结构,比如两个笔记本可以用Wi-Fi直接连接起来不经过无线路由器。

3、Wi-Fi的频道

        2.4G的Wi-Fi划为14个频道,每个频道带宽20-22Mhz,不同的调制方式带宽稍微不同。每个频道的间隔为5M,很明显,相邻的多个频道是有干扰的,相互没有干扰的只有1,6,11,14或者1,5,9,13,如下图所示。这也是为什么在有多个Wi-Fi热点的地方会上不了网,或者非常慢。现在无线路由器都有手动设置频道的功能,如果在家使用无线路由器最好设置到一个和附近的其他Wi-Fi信号不同的最好是间隔比较远的频道。

4、Wi-Fi的安全性

        常用的Wi-Fi加密有WEP,WPA,WPA2。WEP安全性太差基本上被淘汰了。目前WPA2是被业界认为最安全的加密方式。WPA加密是WEP加密的改进版,包含两种方式:预共享密钥(PSK)和Radius密钥。其中预共享密钥(PSK)有两种密码方式:TKIP和AES,相比TKIP,AES具有更好的安全系数。WPA2加密是WPA加密的升级版,建议优先选用WPA2-PSK AES模式。WPA/WPA2加Radius密钥是一种最安全的加密类型,不过由于此加密类型需要安装Radius服务器,一般用户不容易用到。

二、无线通信技术对比

1、Wi-Fi与其他无线通信技术的覆盖范围数据率对比

2、Wi-Fi与ZigBee、蓝牙对比

三、Wi-Fi模组

1、模组介绍

 ESP8266是一款低成本、高性能的Wi-Fi模块,由Espressif Systems开发。它集成了Wi-Fi功能和TCP/IP协议栈,并可通过串口与主控制器进行通信。ESP8266广泛应用于物联网设备和DIY项目中。下图为深圳安信可 ESP-12F模块。

ESP-12F模块:

  • 内置 1 路 10 bit 高精度 ADC
  • 集成 Wi-Fi MAC/ BB/RF/PA/LNA
  • 串口速率最高可达 4Mbps
  • 支持 STA/AP/STA+AP 工作模式
  • 通用 AT 指令可快速上手
  • 内置 Tensilica L106 超低功耗 32 位微型 MCU,主频支持80 MHz 和160 MHz,支持 RTOS

2、工作模式

ESP8266模块共支持3种工作模式:STA、AP、STA+AP

(1)STA模式
       在此模式下,模块可连接其他设备提供的无线网络,例如通过 WIFI 连接至路由器,从而可以访问互联网,进而实现手机或电脑通过互联网实现对设备的远程控制。   
      简单来说,此模式下,该模块相当于一个用户,需要链接外部的WIFI(或自己的热点),通过链接的WIFI进行与其他设备的通信;
(2)AP 
        AP 模式为默认的模式,在此模式下,模块将作为热点供其他设备连接, 从而让手机或电脑直接与模块进行通讯,实现局域网的无线控制。
        简单来说,此模式下,该模块相当于提供一个热点,创建一个小范围的局域网,凡是连接上的设备就能与其进行通信;
(3)STA+AP
       该模式为 STA 模式与 AP 模式共存的一种模式,模块既能连接至其他 设备提供的无线网络,又能作为热点,供其他设备连接,以实现广域网与局域网的无缝切换, 方便操作使用。

3、AT指令简介 

        AT 指令是以 AT 开头、回车(<CR>)结尾的特定字符串,AT 后面紧跟的字母和数字表明AT 指令的具体功能。几乎所有的 AT 指令(除了“A/”及“+++”两个指令外)都以一个特定的命令前缀开始,以一个命令结束标志符结束。命令前缀一般由 AT 两个字符组成,命令结束符通常为回车( <CR>)。模块的响应通常紧随其后,格式为: <回车><换行><响应内容><回车><换行>。

     ESP8266模块使用AT 指令配置使用:通过串口将AT指令传输到ESP8266,ESP8266便依指令工作;也可以通过单片机串口发送AT指令到模块,模块依照AT指令工作。

四、硬件连接

1、开发板ESP8266模块原理图

说明:P7为USART1、USART2和WIFI功能短接端子。本实验中,用两个短接帽分别接上P7(3与5)、P7(4与6)。我们通过PC串口助手、USB转串口(CH340)给WIFI模块烧写固件。

五、AT固件烧录

         打开 PC 端的flash_download_tool软件,选择ESP8266 DownloadTool,选择待烧录固件 Ai-Thinker_ESP8266_DOUT_32Mbit_v1.5.4.1-a_20171130.bin 文件,并设置好 bin 文件烧录至芯片的地址信息和其他的一些信息。

烧写步骤:

1、先按住开发板上KIO0和WRST两个按键,再点击软件左下方的“START”按钮,再依次松开WRST、KIO0两个按键。

2、验证

打开串口助手,串口参数:115200,1,8,无发送AT+回车 

六、AP模式实验

AP模式相当于提供一个热点,创建一个小范围的局域网,凡是连接上的设备就能与其进行通信;

指令集:

AT+CWMODE=2//设置AP模式

AT+RST//重启生效

AT+CWSAP="ATK-MW8266D", "12345678",1,4//设置 AP 参数。SSID 为 ATK-MW8266D(WIFI名称)、密码为 12345678、 通道为 1、加密方式为 WPA_WPA2_PSK

AT+CIPMUX=1//开启多连接

AT+CIPSERVER=1,8086//开启 SERVER 模式,端口号为 8086

注:AT 指令必须大写,且每条指令都需以回车换行符结尾     

七、STA模式

STA模式为:该模块相当于一个用户,需要连接外部的WIFI,通过连接的WIFI进行与其他设备的通信;

指令集:

AT+CWMODE=1//设置为 STA 模式

AT+RST//重启生效

AT+CWLJP//查看周围AP(WIFI热点)

AT+CWJAP=”ATK-MW8266D”, ”12345678”//加入 WiFi 热点。SSID:ATK-MW8266D、密码:12345678

AT+CIPMUX=1//开启多连接

AT+CIPSERVER=1,8086//开启 SERVER 模式,端口号为 8086

AT+CIPSEND=0,5//向 ID0 发送 5 字节数据包


总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pycharm配置wsl开发环境(conda)

背景 在研究qanything项目的过程中&#xff0c;为了进行二次开发&#xff0c;需要在本地搭建开发环境。然后根据文档说明发现该项目并不能直接运行在windows开发环境&#xff0c;但可以运行在wsl环境中。于是我需要先创建wsl环境并配置pycharm。 wsl环境创建 WSL是“Windows Su…

31 OpenCV 距离变换和分水岭算法

文章目录 距离变换分水岭算法distanceTransform 距离变换watershed 分水岭算法示例 距离变换 分水岭算法 distanceTransform 距离变换 void cv::distanceTransform (InputArray src,OutputArray dst,int distanceType,int maskSize,int dstType CV_32F) src:输入图像&#xf…

文件Tools工具 支持WORD/PDF/EXCEL/PDF等格式的转换软件

文件Tools工具 支持WORD/PDF/Excel/PDF等格式的转换软件 支持功能 Word转PDFWORD转EXCELWORD转EPUBPDF转WORDPDF转EXCELPDF转PPTPDF版本转换EXCEL转PDFEXCEL转WORDPDF转EXCELEPUB转WORDEPUB转PDFHTML转PDF&#xff08;需配置chromium&#xff09;点击查看配置教程简易二维码生…

Jmeter05:配置环境变量

1 Jmeter 环境 1.1 什么是环境变量&#xff1f;path什么用&#xff1f; 系统设置之一&#xff0c;通过设置PATH&#xff0c;可以让程序在DOS命令行直接启动 1.2 path怎么用 如果想让一个程序可以在DOS直接启动&#xff0c;需要将该程序目录配置进PATH 1.3 PATH和我们的关系…

秋招后端开发面试题 - JVM底层原理

目录 JVM底层原理前言面试题Java 对象的创建过程&#xff1f;什么是指针碰撞&#xff1f;什么是空闲列表&#xff1f;/ 内存分配的两种方式&#xff1f;JVM 里 new 对象时&#xff0c;堆会发生抢占吗&#xff1f;JVM 是怎么设计来保证线程安全的&#xff1f;/ 内存分配并发问题…

微星主板安装双系统不能进入Ubuntu的解决办法

在微星主板的台式机上面依次安装了Windows11和Ubuntu22.04。在Ubuntu安装完成后重启&#xff0c;没有出现系统选择界面&#xff0c;直接进入了Windows11。怎么解决&#xff1f;方法如下&#xff1a; &#xff08;1&#xff09;正常安装Windows11 &#xff08;2&#xff09;安…

面试题:斐波那契数列

题目描述&#xff1a; 写一个函数,输入n,求斐波那契数列的第n项.斐波那契数列定义如下: F(0) 0 F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 解题方法&#xff1a; 算法1: 利用递归实现,这个方法效率有严重问题,时间复杂度为O(2^n) long long Fibon(int n) {if (…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.5, 汇编 led.s,第一次点亮LED灯

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

Linux命令大全 以及搭建hadoop

Liunx系统目录 ├── bin -> usr/bin # 用于存放二进制命令 ├── boot # 内核及引导系统程序所在的目录 ├── dev # 所有设备文件的目录&#xff08;如磁盘、光驱等&#xff09; ├── etc # 配置文件默认路径、服务启动命令存放目录 ├── home # 用户家目录&#…

Linux驱动开发——(六)按键中断实验

目录 一、简介 二、修改设备树 2.1 添加pinctrl节点 2.2 添加KEY设备节点 2.3 检查是否被其他外设使用 三、代码 3.1 驱动代码 3.2 测试代码 3.3 平台测试 一、简介 以I.MX6U-MINI为例&#xff0c;实现KEY0按下后&#xff0c;设备识别到并将数据发送到平台。 二、修…

字典及GitHub字典爬取工具

红队API接口Fuzz字典可以用于WEB安全&#xff0c;渗透测试&#xff0c;SRC等场景 完整文件已上传知识星球&#xff0c;需要的朋友可加入查看。

fetch请求后端返回文件流,并下载。

前端&#xff1a; <script src"~/layui/layui.js"></script> <script src"~/Content/js/common/js/vue.min.js"></script> <script src"~/Content/js/common/js/jquery-1.10.2.min.js"></script><styl…

jvisualvm安装插件

1、打开VisualVM: Plugins Centers 找到对应JDK版本的插件点击下载即可&#xff0c;本案例以JDK1.8.0_181为例子&#xff0c;点击进去&#xff0c;再找到需要安装的插件点击下载 2、打开jvisualvm 在工具——》插件 的【已下载】tab&#xff0c;点击【添加插件 】安装下载下来 …

前端入门:HTML(css轮廓,填充,宽高)

1.CSS轮廓 注意&#xff1a; outline中&#xff0c;out-style是必须要设置的&#xff0c;格式为&#xff1a; outline-style一共有以下的几个值&#xff1a; 2.CSS填充属性 这是一个用于在一个元素的内容周围产生空间&#xff0c;也就是边框内到白框外之间的距离&#xff0c;…

Vue2 - 完成实现ElementUI中el-dialog弹窗的拖拽功能(宽度高度适配,且关闭后打开位置居中)

我们在做后台管理系统时常用到ElementUI 中的 el-Dialog,但是官方文档并未我们提供 el-Dialog弹窗如何实现拖拽功能,我们通常需要思考如何让用户能够自由地拖动弹窗,在页面上调整位置以获得更好的用户体验。在下面的博客文章中,我们将实现如何为 ElementUI 的 el-Dialog 弹…

uniapp自定义返回事件(封装)

uniapp自定义返回事件 在我们使用uniapp时&#xff0c;我们导航栏一般都是自定义的&#xff0c;比如用uview框架的导航栏&#xff0c;那么返回事件通常会遇到以下几个问题 返回事件前需要做一些额外的处理 h5项目刷新页面后返回失效 返回按钮点击后到指定页面 如果只是监听返…

【简单介绍下日常的启发式算法】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

PostgreSQL 14 向量相似度搜索插件 (pgvector) 安装指南

本文是关于在 PostgreSQL 14 中安装并使用向量相似度搜索插件(pgvector)的详细指南。此插件允许用户在数据库中执行高效的向量运算,特别适用于机器学习模型的向量数据存储与检索场景。 环境需求 已安装PostgreSQL 14或更高版本。安装了Visual Studio 2022,用于编译插件。安装…

排序算法:插入、希尔、选择、推排、冒泡、快速、归并排序

排序算法 目录 前言 一、排序的概念 1.1排序的概念 1.2 常见的排序算法 二、常见排序算法的实现 2.1 插入排序 2.2 希尔排序 2.3 选择排序 2.4 堆排序 2.5 冒泡排序 2.6 快速排序 2.6.1 hoare版本 2.6.2 前后指针版本 2.6.3 非递归版本 2.7 归并排序 归并排序 2.8 计数排序 三、…

5G图标显示分析

1、问题现象 MTK平台项目中出现一个5G图标显示问题&#xff0c;注册5G时&#xff0c;拨打电话&#xff0c;对比机图标显示回落到4G&#xff0c;测试机一直显示5G。 2、原因分析 2.1、NSA显示规则 根据GSMA协议&#xff0c;NSA架构下5G图标显示有如下4种. 2.2、Android中显示5G…