ESP8266系列WIFI模块的使用·
一、概述
ESP8266是由乐鑫公司出品的一款物联网芯片,因为价格较低,性能稳定等收到很大关注。该芯片可工作于三种种模式下,分别是:AP模式,station模式以及混合模式,通过常用的AT指令进行控制。自芯片面世以来发行过多种型号。单单我用过的就有ESP8266-01,ESP8266-12F,ESP8266-12E这三种。当然,我没接触到过的型号还有很多。在使用这三种芯片时均是使其工作在AP模式下。所以,就拿这三个型号说一下ESP8266在AP模式下的配置吧(AP模式下通信协议为TCP,也就是说AP模式下的ESP8266相当于一个TCP服务器)。
二、ESP8266-01
因为ESP8266-01是比较早的型号,所以也存在诸多不完善的地方。一开始用的时候也走过很多弯路,例如:ESP8266-01型号不支持1200及2400的波特率(网上的资料说是支持的),就因为这个原因就玩坏了三块芯片,将近100人民币就打水漂了(幸亏指导老师还安慰我,学习的过程就是消耗的过程),一开始不知道什么原因,后来才发现是波特率的问题。因为一开始的测试用的普中V3.0的学习版,该板搭载的是12.0Mhz的晶振,而且身边也没有可以换的11.0592Mhz的晶振,没办法才选择了2400的波特率,最终导致三块ESP8266-01坏掉。而且坏掉后上电就出现乱码,这些乱码用“格西烽火串口助手”中的所有波特率都读不出来所以一旦出问题无法修复。另外,该芯片对电压要求出奇的高,标准3.3V,一点小的电压波动都会引起模块工作异常。网上曾有一种说法,“十个不能正常工作的芯片中就有八个是电压问题引起的”。(ESP8266-01的接线图如下)
三、ESP8266-12F
ESP8266-12F相比于ESP8266-01有很多改进。首先12F的flash闪存比较大,另外12F支持机智云的MCU运行。当然,与增加的功能相适应,12F增加了很多IO口,一般是16个。但工作在AP模式下,二者并没有本质区别。但是12F有一个缺点就是需要自己搭建一些简单的外围电路。(接线图如下)
四、ESP8266-01与ESP8266-12F工作在AP模式下的配置命令。
1.基本配置命令:
AT+CIOBAUD=******//修改波特率为********(模块初始波特率默认为115200,该命令通过串口助手发送,重新上电后有效)
AT+CWMODE=2//设置模块为AP模式
AT+CWSAP="111","222",11,0//设置wifi名字为111,密码是222,通道号是11,加密方式是OPEN(可以修改)
AT+CIPMUX=1//启动多路连接方式(可以修改)
AT+CIPSERVER=1,5000//开启server,端口号为5000(可以修改)
AT+CIPSEND=0,5//向id为0的链接发送5字节数据(可以修改)
2.单片机控制程序:单片机型号为STC89C52RC,晶振11.0592MHz,波特率为9600(控制程序均为自己编写且测试有效)
#include<reg51.h>
void Serial_Inti();//初始化程序(必须使用,否则无法收发)
void Uart_Sends(unsigned char *str);//发送char型字符串
//void Delay1ms(unsigned int t);//1ms延时函数
unsigned char Uart_Receive();//接收字符子函数
void Uart_Dat(unsigned char dat);//数据发送子函数
void Wifi_Init();//wifi模块初始化
void Uart_Byte(char byte);//字节发送子函数
void Delay1ms(unsigned int t);//t ms延时子函数
/*串口初始化子函数*/
void Serial_Inti()//串口初始化,一定注意不要启动T1的串口中断
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
ES=0;//关闭串口中断
TR1 = 1;
}
/*字符串发送子函数(用于配置)*/
void Uart_Sends(unsigned char *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;//清除发送中断标志位以继续发送
str++;
}
}
/*WIFI模块初始化*/
void Wifi_Init()
{
Delay1ms(3000);
Serial_Inti();
Uart_Sends("AT+CWMODE=2\r\n");
Delay1ms(2000);
Uart_Sends("AT+CWSAP=\"******\",\"*****\",11,0\r\n");//wifi名称及密码设置
Delay1ms(2000);
Uart_Sends("AT+CIPMUX=1\r\n");
Delay1ms(2000);
Uart_Sends("AT+CIPSERVER=1,5000\r\n");
}
/*字节发送子函数*/
void Uart_Byte(char byte)
{
SBUF=byte;
while(!TI);
TI=0;
}
/*数据发送子函数*/
void Uart_Dat(unsigned char dat)
{
Uart_Sends("AT+CIPSEND=0,1\r\n");
Delay1ms(1000);
Uart_Byte(dat);
Uart_Byte('\r');
Uart_Byte('\n');
Delay1ms(100);//延时100ms防止出现循环发送现象
}
/*指令接收子函数*/
unsigned char Uart_Receive()
{
unsigned char order;
RI=0;//先将接收表示位置0,防止wifi'配置使的返回信息将其置1
while(!RI);//等待接收到信息后跳出循环
order=SBUF;//当RI==1时接收到数据
RI=0;//清除接收中断标志位以继续接收
return order;
}
void Delay1ms(unsigned int t) //误差 0us
{
unsigned char a,b,c;
for(t;t>0;t--)
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
五、ESP8266-12E CP2102
刚开始使用ESP8266-12E CP2102时很蒙,因为焊接在CP2102板上之后原来的操作方式就不再适用。经过摸索发现了一个比较合适的而且好用的固件ESP8266_Doit_ser2net(v2.4).bin。所以方向很明确,要给12E刷新固件。首先ESP8266-12E CP2102长这样:
用USB线连接PC,下载工具为flash_download_tool_v1.2_150512.exe,选择ESP8266_Doit_ser2net(v2.4).bin,下载地址为0x00000,按住Falsh键不放,然后按Reset键,使芯片进入下载模式,点击软件上的START开始下载,下载完成后重新上电。(如下图)
下载成功重新上电后就会发现这个固件的好处。连接wifi访问192.168.4.1就会出现以下界面
在该界面可以直接设置芯片的波特率以及AP模式下的配置,省去了麻烦的AT命令。所以,ESP8266-12E CP2102是我目前为止用到的最好用的ESP8266系列模块。
当然,我所涉及到的只是ESP8266的冰山一角,期待以后更加深入的学习!
左肩理想,右肩担当。君子不怨永远不会停下脚步!
ESP8266系列WIFI模块的使用·相关推荐
- esp8266系列 wifi模块
ESP8266这个词可以理解为ESP8266EX芯片,以及依赖ESP8266EX芯片开发的系列模组的简称. esp8266 EX是乐鑫信息科技(上海)股份有限公司开发的一系列的wifi芯片 ESP82 ...
- ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340上传程序不显示
买的ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340在上传店家提供的示例程序可以上传成功,但屏幕不显示,如下图. 方法:选择开发板时,选择"LOLIN(W ...
- ESP8266串口WiFi模块
参考和学习<ESP8266串口WIFI模块的基本使用>点击打开链接 ESP8266是一款超低功耗的UART-WiFi 透传模块,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或 ...
- 无线图传领域AR1021X系列WiFi模块选型参考及驱动探讨
AR1021X是高通旗下最热销USB接口WiFi方案,先可以这样理解:AR1021X是AR9375的升级替代版本(双通符合IEEE 802.11a/b/g/n标准双频),AR1201G是AR9374的 ...
- 基于stm32和ESP8266实现wifi模块smartlink功能以及TCP连接
一直想把wifi模块和stm32连接起来,但是网上找了很久,并没有C语言相关的库,只有基于arduino的ESP8266 C++库,这个库是没办法直接给stm32使用的,所以自己动手丰衣足食,自己手动 ...
- <ESP8266>WIFI模块AT指令浅学
前言 人生如逆旅,我亦是行人. 名词解释 缩写 意思 AT(automatic transmission) 自动变速器 WiFi 无线网 AP(Access Point) 无线访问接入点,无线路由器等 ...
- Arduino结合ESP8266 Serial WIFI模块访问远程服务器
参考资料:Control LED from web app using ESP8266 Serial WIFI module 强力推荐,单片机/Arduino 实现物联的启蒙教程,下文基本是对这篇教程 ...
- RK903 RK901 AP6xxx系列WiFi模块配置
包括以下模块:RK901.RK903.AP6181.AP6210.AP6330.AP6476.AP6335等选择"RK901/RK903/BCM4330/AP6XXX wireless ca ...
- 玩转X-CTR100 l STM32F4 l ESP8266串口WIFI模块
我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]- ESP8266是一款非常火的WIFI模块,性价 ...
最新文章
- 核心板焊接之连接器与邮票孔
- 创建windows窗口并且获得窗口句柄
- Linux RHCS中心跳网络接口的指定
- 在对的时间 遇见对的人 是一种幸福
- Angular应用动态创建style标签页的场景
- 不知道为什么IList.Contains()总是返回FALSE
- 视界云:CDN{内容分发网络} 知识详解
- POJ2260 ZOJ1949 UVA541 Error Correction题解
- 【个人笔记】OpenCV4 C++ 快速入门 12课
- WinCE学习系列(1)——在VS2008的环境下安装WinCE 5.0仿真模拟器
- JAVA基础编程练习题--50道
- 常用Windows运行命令大全
- r语言和python的区别-Python和R语言的区别?
- graphpad7.04多组比较p值_GraphPad Prism 7进行pearson相关性分析
- 使用Raspberry Pi搭建迅雷离线下载机
- 出租分数 20作者 陈越单位 浙江大学
- MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等
- 不用注册表删除搜狗输入法残留文件夹
- 有关于取证的笔记——包含详细例题解析
- python numpy 多条件筛选