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

实现目标

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.mfbz.cn/a/581978.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV-Python: 强大的计算机视觉库

文章目录 OpenCV-Python: 强大的计算机视觉库背景OpenCV-Python是什么&#xff1f;安装简单的库函数使用方法场景示例人脸检测和识别图像分割目标跟踪 常见问题和解决方案总结 OpenCV-Python: 强大的计算机视觉库 背景 OpenCV (Open Source Computer Vision Library) 是一个开…

OceanBase 助力同方智慧能源,打造安全可靠、高性能的能源数据架构

本文作者&#xff1a;丁泽斌&#xff0c;同方智慧能源数据库工程师 业务背景 作为同方股份有限公司旗下的领军企业&#xff0c;同方智慧能源集团矢志成为全球领先的综合智慧能源解决方案提供商。凭借中核集团和清华大学的科技实力&#xff0c;专注于向建筑、交通、工业、北方供…

Altair® HPCWorks™——高性能计算(HPC)和云平台

Altair HPCWorks™——高性能计算&#xff08;HPC&#xff09;和云平台 强大的计算助力研发增速&#xff0c;Altair HPCWorks™ 使高性能和云计算变得快速、高效和提高有效产出 - 无论您的资源是在本地、云端还是混合环境中。专业地管理 IT 复杂性并支持最新的 AI 工作负载。使…

《QT实用小工具·四十五》可以在界面上游泳的小鱼

1、概述 源码放在文章末尾 该项目实现了灵动的小鱼&#xff0c;可以在界面上跟随鼠标点击自由的游泳&#xff0c;项目demo演示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #include "magicfish.h" #include <QtMath> #include <QPainter>…

CentOS7安装和升级nginx

文章目录 一 环境准备二 安装nginx三 升级nginx四 注意事项 一 环境准备 公司等保要求修复nginx的应用漏洞&#xff0c;从1.12.2升级到1.20.2版本。 本机操作系统是CentOS7.9&#xff0c;主机IP是192.168.0.201&#xff0c;nginx是在服务器部署而非容器部署。 下列安装和升级…

Springboot + MySQL + html 实现文件的上传、存储、下载、删除

实现步骤及效果呈现如下&#xff1a; 1.创建数据库表&#xff1a; 表名&#xff1a;file_test 存储后的数据&#xff1a; 2.创建数据库表对应映射的实体类&#xff1a; import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.Table…

《R语言与农业数据统计分析及建模》学习——回归分析

一、线性回归 线性回归是一种广泛用于数据分析、预测和建模的技术&#xff0c;可以帮助我们理解变量之间的关系&#xff0c;并进行预测和推断。 1、简单线性回归 简单线性回归是线性回归的一种特殊情况&#xff0c;适用于只有一个自变量和一个因变量的情况。 在R语言中&#x…

QT c++ 代码布局原则 简单例子

本文描述QT c widget代码布局遵循的原则&#xff1a;实中套虚&#xff0c;虚中套实。 本文最后列出了代码下载链接。 在QT6.2.4 msvc2019编译通过。 所谓实是实体组件&#xff1a;比如界面框、文本标签、组合框、文本框、按钮、表格、图片框等。 所谓虚是Layout组件&#x…

IT廉连看——UniApp——样式绑定

IT廉连看——UniApp——样式绑定 一、样式绑定 两种添加样式的方法&#xff1a; 1、第一种写法 写一个class属性&#xff0c;然后将css样式写在style中。 2、第二种写法 直接把style写在class后面 添加一些效果&#xff1a;字体大小 查看效果 证明这样添加样式是没有问题的…

WPF —— MVVM 指令执行不同的任务实例

标签页 设置两个按钮&#xff0c; <Button Content"修改状态" Width"100" Height"40" Background"red"Click"Button_Click"></Button><Button Content"测试"Width"100"Height"40&…

clickhous学习之旅二

接上回继续鼓捣clickhouse 1.常用数据类型 1.1整型 固定长度的整型&#xff0c;包括有符号整型或无符号整型。整型范围(-2n-1~2n-1-1): Int8 - [-128 :127] -->相当于java中的byte Int16-[-32768 :32767] -->相当于java中的short Int32-[-2147483648 :2147483647] -…

最新官方破解版会声会影2024永久序列号和激活码

会声会影2024是一款功能强大的视频编辑软件&#xff0c;它集合了视频剪辑、音频调整、特效添加等多项功能于一身&#xff0c;为用户提供了一个全面且易用的视频制作平台。无论是初学者还是专业视频编辑人员&#xff0c;都能在这款软件中找到满足自己创作需求的工具。 会声会影最…

基于残差神经网络的汉字识别系统+pyqt前段界面设计

研究内容: 中文汉字识别是一项具有挑战性的任务&#xff0c;涉及到对中文字符的准确分类。在这个项目中&#xff0c;目标是构建一个能够准确识别中文汉字的系统。这个任务涉及到数据集的收集、预处理、模型训练和评估等步骤。尝试了使用残差神经网络&#xff08;ResNet&#x…

windows电脑改造为linux

有个大学用的旧笔记本电脑没啥用了&#xff0c;决定把它改成linux搭一个服务器&#xff1b; 一、linux安装盘制作 首先要有一个大于8G的U盘&#xff0c;然后去下载需要的linux系统镜像&#xff0c;我下的是ubuntu&#xff0c;这里自选版本 https://cn.ubuntu.com/download/d…

中国移动旋转验证码的识别过程

一、前言 今天有空研究了一下这个移动的登录&#xff0c;发现获取手机验证码的时候会弹出一种旋转验证码。这种验证码确实挺头疼。所以顺便研究了一下如何识别。 验证码的样子大家先看一下。看看大家有没有什么更好是思路。 二、验证码识别 我这里就直接上代码。我这里是使用…

SpringMVC基础篇(四)

文章目录 1.视图1.基本介绍1.视图介绍2.为什么需要自定义视图 2.自定义视图实例1.思路分析2.代码实例1.view.jsp2.接口3.配置自定义视图解析器springDispatcherServlet-servlet.xml4.自定义视图MyView.java5.view_result.jsp6.结果展示 3.自定义视图执行流程4.自定义视图执行流…

web安全---xss漏洞/beef-xss基本使用

what xss漏洞----跨站脚本攻击&#xff08;Cross Site Scripting&#xff09;&#xff0c;攻击者在网页中注入恶意脚本代码&#xff0c;使受害者在浏览器中运行该脚本&#xff0c;从而达到攻击目的。 分类 反射型---最常见&#xff0c;最广泛 用户将带有恶意代码的url打开&a…

E-MapReduce极客挑战赛季军方案

前一段时间我参加了E-MapReduce极客挑战赛&#xff0c;很幸运的获得了季军。在这把我的比赛攻略给大家分享一下&#xff0c;希望可以抛砖引玉。 赛题分析与理解 赛题背景&#xff1a; 大数据时代&#xff0c;上云已成为越来越多终端客户大数据方案的落地选择&#xff0c;阿里…

Phi-3-mini-4k-instruct 的功能测试

Model card 介绍 Phi-3-Mini-4K-Instruct 是一个 3.8B 参数、轻量级、最先进的开放模型&#xff0c;使用 Phi-3 数据集进行训练&#xff0c;其中包括合成数据和经过过滤的公开可用网站数据&#xff0c;重点是 高品质和推理密集的属性。 该型号属于 Phi-3 系列&#xff0c;Mini…

Golang | Leetcode Golang题解之第58题最后一个单词的长度

题目&#xff1a; 题解&#xff1a; func lengthOfLastWord(s string) (ans int) {index : len(s) - 1for s[index] {index--}for index > 0 && s[index] ! {ansindex--}return }
最新文章