WiFi模块ESP8266(超详细)---(含固件库、AP、STA、原子云使用)

写在前面:本节我们学习使用一个常见的模块--WIFI模块,在前面我们学习了蓝牙(HC--08)模块,为学习WIFI模块打下了一定的基础;但是在学习WIFI模块的时候,我也遇到了很多的问题,查阅了很多相关的资料与博客,今天将学习的过程分享给大家,希望大家少走一些弯路,大家有任何问题也欢迎在评论区讨论。

目录

一、WIFI模块介绍

1.1 WIFI介绍

1.2 WIFI模块(ATK-ESP8266)

1.2.1 ATK-ESP-01

1.2.2 ATK-ESP8266  

1.3 AT指令简介 

二、硬件搭建

2.1固件库的烧录

2.2环境搭建

三、实验测试

3.1 AP模式 

3.1.1 ESP8266作为服务器

3.1.2 ESP8266作为客户端

3.2 STA模式 

3.2.1 ESP8266作为服务器

3.2.2 ESP8266作为客户端

3.3 连接原子云服务器

一、WIFI模块介绍

1.1 WIFI介绍

        首先跟大家介绍一下WIFI技术,WIFI网络是一种无线通信网络,也称为:无线宽带,正常的WIFI工作范围在100m的距离,但是收到发射功率大小的影响以及环境的因素,一般情况下的室内定位范围为10m,室外为30m左右,此外,WIFI传输速率也是非常高的可达600Mb/S;        

        WIFI技术是一种使用电信号在无线电波上进行数据传输的技术,通过建立局域网,让各类设备(手机、电脑、平板等)以无线的方式连接,实现设备之间的无线传输。

        以上介绍这些就是偏学术语的定义,大家了解即可,相信每个人对于WIFI并不陌生,而今天我们要做的其实就是,如何利用WIFI模块进行数据的传输

1.2 WIFI模块(ATK-ESP8266)

1.2.1 ATK-ESP-01

            ATK-ESP-01 Wi-Fi 模块是由广州市星翼电子科技有限公司开发的,该模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功 耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80MHz 和 160MHz,支持 RTOS, 集成 Wi-Fi MAC/BB/RF/PA/LNA  。

外观尺寸:

         这也就是正点原子的研发的一款基础WIFI模块,但是由于这款模块引脚较多,使用起来不太方便,我们一般都是直接使用的是,由正点原子搭载好的一款UART-WIFI(串口-无线)模块---ATK-ESP8266-串口转WIFI模块

        该模块是正点原子推出的一款高性能 UART-WIFI(串口-无线)模块,其搭载了正点原子公司自主研发的 ATK-ESP-01 模块,也就是说ATK-ESP8266是在ATK-ESP-01 Wi-Fi的基础上,进行了升级,便于用户直接使用。

1.2.2 ATK-ESP8266  

  后面我们就只介绍ATK-ESP8266这一模块,对于核心模块ESP-01感兴趣的朋友可以自行了解。

        我使用的这款ATK-ESP-8266串口转WIFI模块,并非是最新版本的模块 ,大家可以看见上面写的是V1.3版本,现在最新版本应该已经到2.多以上了,然而我使用的时候,是按照新版本的步骤进行设置,这也导致出现了很多问题,所以,大家在使用时,一定一定要看看自己的版本号,一般情况下,新版本的问题能少一点。我也会把我后面的旧版本使用过程中遇到的问题分享给大家。

        该模块的一个引脚及其功能的介绍:

VCC电源3.3-5V
GND电源地
TXD模块串口发送脚TTL电平、可以接单片机的RXD
RXD模块串口接收脚TTL电平、可以接单片机的TXD
RST

复位、低电平有效

TO-0用于固件烧写模式、低电平烧写模式;高电平是运行模式;

        以上的六个引脚,一般工作情况下,是需要连接前四个引脚;即电源引脚与串口引脚;在对该模块进行固件烧录的时候,连接TO-0引脚;

        固件烧录的时候,我在使用原子云时,可能是由于版本的问题,一直连接不上,所以进行了固件烧录,后来就连接上了。我们可以简单的认为固件烧录是对模块进行的一个更新。如果不进行固件烧录,我的旧版本,他工作就一直只能工作在AP模式下,后来固件烧录后,STC模式也就可以使用了。

        是否需要进行固件烧录,取决于你的模块版本,以及他是否能正常的工作;

工作模式: 

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

1、STA模式

    在此模式下,模块可连接其他设备提供的无线网络,例如通过 WIFI 连接至路由器,从而可以访问互联网,进而实现手机或电脑通过互联网实现对设备的远程控制。   

        简单来说,此模式下,该模块相当于一个用户,需要链接外部的WIFI(或自己的热点),通过链接的WIFI进行与其他设备的通信;

2、AP 

        AP 模式为默认的模式,在此模式下,模块将作为热点供其他设备连接, 从而让手机或电脑直接与模块进行通讯,实现局域网的无线控制。

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

3、STA+AP

        该模式为 STA 模式与 AP 模式共存的一种模式,模块既能连接至其他 设备提供的无线网络,又能作为热点,供其他设备连接,以实现广域网与局域网的无缝切换, 方便操作使用。

1.3 AT指令简介 

        该模块可以使用AT 指令配置模块进行使用,也就是说,通过串口将AT指令传输到ESP8266中去,ESP8266便可以进行工作;包括后面的单片机控制,也是通过AT指令对模块进行作用;

        在使用AT指令时,如果输入AT指令没有反应,检查四点:

1、是否将串口RXD,TXD的线连接反了?

2、是否需要对模块进行固件烧录?

3、是都将AT指令的输出格式有误?

4、UART(串口)波特率与模块是否一致?

        在该模块的使用时,AT指令集很多,我们在此处不进行详细的描述,在后面我们用到哪一个指令,在进行详细的描述,此处只是明白AT指令的概念及作用;

二、硬件搭建

         本机主要做的是模块工作前的一些准备工作,包括固件库的烧录、模块的硬件连线以及需要的设备软件;

2.1固件库的烧录

        在模块进行正常工作前,最好能够进行固件库的烧录,这样能保证模块在使用原子云时没有其他意外问题;

        前面讲过,模块须进入下载模式,才能够进行固件的烧写。下载模式需要的引脚有5个电源VCC、电源地GND、串口引脚RXD、TXD以及IO_0;

1、需要的资料:

链接:https://pan.baidu.com/s/1LaKXs4IOnOg6Prz2GHYGRA 
提取码:1022

主要包括两个文件与一个应用程序:

2、硬件连接 

        在连接过程中,需要一个USB转TTL模块,这里我采用的是32的一个开发板,用51的试了一下,没有成功;需要注意的有:

1、ESP8266的串口引脚与开发板的1出串口进行交叉连接(TXD--RXD)(RXD--TXD),记得将跳线帽拔出;

2、 ESP8266的电源引脚与电源地,分别连接上面2处;RST 引脚可以悬空,需保证 IO_0 需连接至 GND;

3、串口给开发板供电,并通信;

3、进行烧录

        打开 PC 端的“flash_download_tool”软件,随后在弹 出的窗口中,选择“chip Type(芯片类型)”为“ESP8266”、“workMode(工作模式)”为“develop”, 如下图所示:

         配置好模式并进入软件后,选择待烧录固件的 bin 文件,并设置好 bin 文件烧录至芯片 的地址信息和其他的一些信息,即可点击软件左下方的“START”按钮进行固件烧写,如下图所示:

        再强调一遍:注意连线,注意连线,注意连线!!!好多不成功的原因都是连线不正确! 

2.2环境搭建

        在后面模块使用中,我们需要用到以下的硬件与软件;

1、电脑端--串口助手;

2、手机端--网络调试助手;

3、硬件端--USB串口模块、ESP8266模块

串口助手:

链接:https://pan.baidu.com/s/1c4qFxLoi5Z0jWeQSK0ipow 
提取码:1022

我采用是COM-HC串口助手,这个不是唯一,合适的串口调试助手都可以;

网络调试助手 :

我推荐两款,好使用,好下载的软件应用市场就有,但是不唯一;

2.3 硬件连接

        本次我们使用的硬件模块为:USB串口模块、ESP8266模块实现的操作就是通过USB串口向ESP8266模块发送AT指令,然后ESP8266做出回应;

连线图:

注意:此处只需要连4根线,分别为VCC(3.3v) 、GND、以及两条串口线;串口线一定注意连接正确(交叉连接);

三、实验测试

        在进行模式工作前需要检查,指令集能否正常工作,配置串口助手;

        如图所示:1、配置串口端口;波特率:115200(后期可以修改);2、打开串口;3、打开显示;4、输出指令AT(注:AT 指令必须大写,且每条指令都需以回车换行符结尾“\r\n”。) 5、手动发送;发送完后,模块会回应OK;此时表示,串口调试已经完成;

若没有回应,可能出现的原因有:

1、串口是否连接合适?2、波特率是否准确,初始状态默认为195200,后期是否进行了修改?3、串口线是否接反?4、指令是否全英文,是否换行发送?5、是否进行了固件库烧录?

        此外,还需要确定一个东西,在进行 TCP传输时,传输双方分为TCP服务器与TCP客户端如同打电话时,通话双方分为主机与客机,在TCP传输时,客户端为主机,服务器为客机;

3.1 AP模式 

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

3.1.1 ESP8266作为服务器

指令集:

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

AT+RST//重启生效

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

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

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

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

        输入完上述指令后,打开手机WIFI,搜索设置的名称与密码,连接成功,再打开APP--网络调试精灵;打开TCP客户端(因为此时,ESP8266作为服务器),新增TCP客户端,输入对应的主机与端口;

        那如何查询这个端口号与主机呢?端口号就是上述指令中设置的8086,主机号需要指令查找:AT+CIFSR 

+CIFSR:APIP,"192.168.4.1"就是其主机号;

        连接成功后,由手机端向模块发送指令,指令通过串口显示在串口调试助手的窗口;

如果是由模块向电脑发送数据:需要提前发送一条指令;

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

以上便是,在AP模式下,ESP8266作为服务器双方通信的建立; 

3.1.2 ESP8266作为客户端

指令集:

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

AT+RST//重启生效

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

AT+CIPMUX=0//开启单连接

AT+CIPSTART=”TCP”, ”192.168.4.XXX”,8086//建立 TCP 连接到 192.168.4.XXX:8086

AT+CIPMODE=1//开启透传模式(仅单连接 Client 时支持)

AT+CIPSEND//开始发送数据

         其中有一条指令为AT+CIPSTART=此处需要填的是手机端的IP(自动生成)与端口号(端口号自行设置);此时ESP8266作为客户端。它需要主动去连接手机;

3.2 STA模式 

3.2.1 ESP8266作为服务器

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

前提:处于一个拥有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 字节数据包

其中,主机号依旧是利用:AT+CIFSR 查询;端口号,自己设定; 

AT+CWJAP= 后面的内容即为,要连接的WIFI热点与密码;

此模式,一定要保证模块与手机端连接在同一个WIFI下; 

3.2.2 ESP8266作为客户端

指令集:

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

AT+RST//重启生效

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

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

AT+CIPMUX=0//开启单连接

AT+CIPSTART=”TCP”, ”192.168.4.XXX”,8086//建立 TCP 连接到 192.168.4.XXX:8086

AT+CIPMODE=1//开启透传模式(仅单连接 Client 时支持)

AT+CIPSEND//开始发送数据

其中,主机号依旧是利用:AT+CIFSR 查询;端口号,自己设定; 

AT+CWJAP= 后面的内容即为,要连接的WIFI热点与密码;

AT+CIPSTART=此处需要填的是手机端的IP(自动生成)与端口号(端口号自行设置);此时ESP8266作为客户端。它需要主动去连接手机;

 此模式,一定要保证模块与手机端连接在同一个WIFI下; 

3.3 连接原子云服务器

           原子云即原子云服务器,是正点原子推出的互联网云服务平台,它可以实现数据的远程 监控、转发和管理等功能; 

原子云的网址 https://cloud.alientek.com/创建并登入账号;

         创建好设备后,系统会自动为设备生成编号,这个设备编号就是 模块 使用 AT 指令连接原子云时需要的设备 ID。

         创建好设备后,就能后根据设备的编号和密码并通过 AT 指令操作 ATK-MW8266D 模块 连接原子云了。具体的 AT 指令如下所示:

AT+CWMODE=1//使能 ATK-MW8266D 模块的 STA 模式,以连接路由器的 AP.

AT+CWJAP=”ALIENTEK-YF”,”15902020353”// 连接路由器的 AP,以访问互联网

AT+ATKCLDSTA=”87909047502119387601”,”12345678”//连接原子云服务器

        当串口调试助手显示“CLOUD CONNECTED”后,说明已成功连接上原子云服务器, 此时在原子云的设备管理界面,也能够看到对应的设备显示为“已连接”的连接状态,如下 图所示: 

         当 模块成功连接原子云服务器后,即进入了透传模式,此时就能够在原子云的对应设备的“消息收发”操作界面通过原子云服务器发送消息至 模块,同时,也能后在该界面下,查看到接收自  模块的消息.

以上便是原子云使用的步骤:可能出现的问题有

1、指令是否为英文,且换行;

2、串口线是否接反;

3、是否连接在同一个WIFI下;

4、固件库是否烧录;(版本低的模块需要烧录才有原子云功能);

如果还有别的原因,欢迎大家在评论区讨论;

链接:https://pan.baidu.com/s/1LcfpbMCxnU8m1qZ3xilgFg 
提取码:1022

资料分享,固件库,串口助手,指令使用指南!

 总结:至此,我们将基本的ESP8266的使用详细的介绍完毕了,过程中遇到了各种各样的问题,其中主要的是接线问题,以及固件库的烧录;我们介绍了WIFI模块,硬件的搭建,指令的介绍,各种模式的工作方式及结果;大家一定一定多加练习,有问题及时在网站查找,多交流。后面我们也会讲解如何利用单片机对模块的控制;

创作不易,还请大家多多点赞支持!!!

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

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

相关文章

常见的分布式事务解决方案,你会几种?

今天我们来聊一聊分布式事务,在传统的单体应用中,事务的控制非常简单,Spring框架都为我们做了封装,我们只需简单地使用Transactional注解就能进行事务的控制,然而在分布式应用中,传统的事务方案就出现了极大…

通信标准化协会,信通院及量子信息网络产业联盟调研玻色量子,共绘实用化量子未来!

8月14日,中国通信标准化协会,信通院标准所及量子信息网络产业联盟等单位领导走访调研北京玻色量子科技有限公司(以下简称“玻色量子”),参观了玻色量子公司及自建的十万颗粒洁净度的光量子信息技术实验室🔗…

ROS2教程02 ROS2的安装、配置和测试

ROS2的安装和配置 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The author holds a…

python超详细基础文件操作【建议收藏】

文章目录 前言1 文件操作1.1 文件打开与关闭1.1.1 打开文件1.1.2 关闭文件 1.2 访问模式及说明 2 文件读写2.1 写数据(write)2.2 读数据(read)2.3 读数据(readlines)2.3 读数据(readline&#x…

机器学习-ROC曲线:技术解析与实战应用

本文全面探讨了ROC曲线(Receiver Operating Characteristic Curve)的重要性和应用,从其历史背景、数学基础到Python实现以及关键评价指标。文章旨在提供一个深刻而全面的视角,以帮助您更好地理解和应用ROC曲线在模型评估中的作用。…

CSS中 设置文字下划线 的几种方法

在网页设计和开发中,我们经常需要对文字进行样式设置,包括字体,颜色,大小等,其中,设置文字下划线是一种常见需求 一 、CSS种使用 text-decoration 属性来设置文字的装饰效果,包括下划线。 常用的取值&…

蓝桥杯算法心得——仙界诅咒(dfs)

大家好,我是晴天学长,搜索型的dfs,差点开二维矩阵了,仔细一想,没那么夸张啊,哈哈哈,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1…

计算机视觉之手势、面部、姿势捕捉以Python Mediapipe为工具

计算机视觉之手势、面部、姿势捕捉以 Python Mediapipe为工具 文章目录 1.Mediapipe库概述2.手势捕捉(hands)3.面部捕捉(face)4.姿势捕捉(pose) 1.Mediapipe库概述 Mediapipe是一个开源且强大的Python库,由Google开发和维护。它提供了丰富的工具和功能&#xff0c…

java--接口概述

1.认识接口 ①java提供了一个关键字interface,用这个关键字我们可以定义出一个特殊的结构:接口。 ②注意:接口不能创建对象;接口是用来被类实现(implements)的,实现接口的类称为实现类。 ③一个类可以实现多个接口(接…

ROS2教程05 ROS2服务

ROS2服务 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The author holds all right…

热点新闻 | 许战海:零食行业的革新之道

2023年11月29日,华糖万商大会在南京国际会展中心隆重举行。著名战略定位咨询专家许战海受邀出席,在“量贩零食产业年度盛典”上发表了主题为《如何通过竞争战略布局年度规划》的精彩演讲,吸引了众多业界关注。 演讲中,许战海老师指…

23史上最全版---SQL注入详解

漏洞原因 一些概念: SQL:用于数据库中的标准数据查询语言。 web分为前端和后端,前端负责进行展示,后端负责处理来自前端的请求并提供前端展示的资源。 而数据库就是存储资源的地方。 而服务器获取数据的方法就是使用SQL语句进…

c语言编译优化引发问题

问题描述 同样的代码,不优化编译,可以正常执行,经过-O2优化编译后,代码被卡住.整体功能涉及多进程,多线程操作. 问题发现 经过加打印,发现卡在while(a!0);//死循环,等待特殊事件发生来解开循环 a初始化为-1; 过一会后,另外有个线程,当特定事件发生的时候,将a置为0; 通过加打…

【云备份】客户端实现 及 项目整体总结

文章目录 客户端客户端实现思想客户端文件操作类的设计与拷贝Util.hpp的设计data.hpp的设计Storage —— 持久化存储Initload——数据初始化加载 cloud.hpp的设计GetFileIdentifier——创建文件唯一标识Upload—— 文件上传IsNeedupload —— 客户端文件是否需要上传判断RunMod…

【原创分享】高功率电源PCB设计中变压器下方走线的关键技巧

高功率电源的设计中,变压器起到了电能的传递与转换的重要作用。变压器下方的走线设计不仅涉及到电路的功率传输效率,还与电磁兼容性(EMC)、热管理以及电路的可靠性密切相关。 1. 走线布局 在进行变压器下方走线设计时&#xff0c…

Vmware虚拟机简介和安装

作者:余小小 常见的虚拟机 vmwarevirtualBox Vmware 运行在win系统上centos运行在Vm上 先安装vm,在安装centos系统 Vmware介绍 不用分区或者重开机,就可以在同一台pc上使用多种操作系统完全隔离,且保护不同的操作系统环境和文…

Kubernetes常用工作负载控制器

文章目录 一、常用负载控制器是什么二、Deployment控制器1.介绍2.使用流程3.应用部署4.应用升级5.滚动升级实现原理(replicaset控制器)6.滚动升级实现流程7.滚动升级策略8.应用实例扩容和缩容9.应用发布失败回滚10.应用下线 三、DaemonSet控制器四、Job控…

Linux修改时区失败,手动修改localtime无效

有时候改了这个也不行,用命令行修改也不行 解决办法 :cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 或者想改其他时区的直接 ll /usr/share/zoneinfo/ 查看

2023年1月18日 Go生态洞察:开发者的声音与Go的进化

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

WebGL开发交互式艺术品技术方案

开发交互式艺术品需要使用 WebGL 技术,并结合其他前端技术以实现丰富的用户体验。以下是一个可能的技术方案,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.WebGL 框架: 选…