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模块,硬件的搭建,指令的介绍,各种模式的工作方式及结果;大家一定一定多加练习,有问题及时在网站查找,多交流。后面我们也会讲解如何利用单片机对模块的控制;
创作不易,还请大家多多点赞支持!!!