一、概述

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模块的使用·相关推荐

  1. esp8266系列 wifi模块

    ESP8266这个词可以理解为ESP8266EX芯片,以及依赖ESP8266EX芯片开发的系列模组的简称. esp8266 EX是乐鑫信息科技(上海)股份有限公司开发的一系列的wifi芯片 ESP82 ...

  2. ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340上传程序不显示

    买的ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340在上传店家提供的示例程序可以上传成功,但屏幕不显示,如下图. 方法:选择开发板时,选择"LOLIN(W ...

  3. ESP8266串口WiFi模块

    参考和学习<ESP8266串口WIFI模块的基本使用>点击打开链接 ESP8266是一款超低功耗的UART-WiFi 透传模块,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或 ...

  4. 无线图传领域AR1021X系列WiFi模块选型参考及驱动探讨

    AR1021X是高通旗下最热销USB接口WiFi方案,先可以这样理解:AR1021X是AR9375的升级替代版本(双通符合IEEE 802.11a/b/g/n标准双频),AR1201G是AR9374的 ...

  5. 基于stm32和ESP8266实现wifi模块smartlink功能以及TCP连接

    一直想把wifi模块和stm32连接起来,但是网上找了很久,并没有C语言相关的库,只有基于arduino的ESP8266 C++库,这个库是没办法直接给stm32使用的,所以自己动手丰衣足食,自己手动 ...

  6. <ESP8266>WIFI模块AT指令浅学

    前言 人生如逆旅,我亦是行人. 名词解释 缩写 意思 AT(automatic transmission) 自动变速器 WiFi 无线网 AP(Access Point) 无线访问接入点,无线路由器等 ...

  7. Arduino结合ESP8266 Serial WIFI模块访问远程服务器

    参考资料:Control LED from web app using ESP8266 Serial WIFI module 强力推荐,单片机/Arduino 实现物联的启蒙教程,下文基本是对这篇教程 ...

  8. RK903 RK901 AP6xxx系列WiFi模块配置

    包括以下模块:RK901.RK903.AP6181.AP6210.AP6330.AP6476.AP6335等选择"RK901/RK903/BCM4330/AP6XXX wireless ca ...

  9. 玩转X-CTR100 l STM32F4 l ESP8266串口WIFI模块

    我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]- ESP8266是一款非常火的WIFI模块,性价 ...

最新文章

  1. 核心板焊接之连接器与邮票孔
  2. 创建windows窗口并且获得窗口句柄
  3. Linux RHCS中心跳网络接口的指定
  4. 在对的时间 遇见对的人 是一种幸福
  5. Angular应用动态创建style标签页的场景
  6. 不知道为什么IList.Contains()总是返回FALSE
  7. 视界云:CDN{内容分发网络} 知识详解
  8. POJ2260 ZOJ1949 UVA541 Error Correction题解
  9. 【个人笔记】OpenCV4 C++ 快速入门 12课
  10. WinCE学习系列(1)——在VS2008的环境下安装WinCE 5.0仿真模拟器
  11. JAVA基础编程练习题--50道
  12. 常用Windows运行命令大全
  13. r语言和python的区别-Python和R语言的区别?
  14. graphpad7.04多组比较p值_GraphPad Prism 7进行pearson相关性分析
  15. 使用Raspberry Pi搭建迅雷离线下载机
  16. 出租分数 20作者 陈越单位 浙江大学
  17. MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等
  18. 不用注册表删除搜狗输入法残留文件夹
  19. 有关于取证的笔记——包含详细例题解析
  20. python numpy 多条件筛选

热门文章

  1. 【python辅助excel】(3)
  2. 基于python-实训基地管理系统-django框架计算机毕业设计源码+系统+数据库+lw文档+调试部署
  3. 如何获取管理员权限,修改文件
  4. golua 又一个Lua VM的Go语音实现
  5. GD32F103C8T6点灯
  6. go底层TCP网络编程剖析
  7. 小数不显示末尾的0的模块
  8. python学习(4)
  9. 批量修改数据进行分批处理
  10. 《技术与文明》读后感