实验四:ESP8266WIFI通讯实验

Posted I am Supreme

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验四:ESP8266WIFI通讯实验相关的知识,希望对你有一定的参考价值。

本实验开发板基于:GD32F103

我们首先需要看一下原理图

根据原理图可以看到,ESP8266是通过PA2 PA3这个串口进行通讯,PA13是控制它的复位,

从芯片手册中可以看到PA2PA3是串口1,PA2是串口1的发送,PA3是串口1的接收。

一、ESP8266简介

本项目使用ESP8266型号为ESP-01S 自带排针WIFI模块

功能特点:基于ESP8266芯片开发,模组继承了透传功能,即买即用,支持串口AT指令,用户通过串口实现网络访问,可广泛应用于智能穿戴,智能家居,家庭安防,遥控器,汽车电子,智慧照明,工业物联网等领域等。

二、产品参数

模块支持4Mbps高速连传,在WiFi打印机,WiFi串口摄像头,WiFi高速数据采集等大数据量传输应用中,速度更快。

三、电路图

四、ESP8266开发方式

ESPb266系列一般有三种开发方式:AT指令开发和LUA语言编程以及Arduino 开发。

AT指令开发:厂家出厂时已经预先在ESP8266芯片烧好固件,封装好wifi的协议栈,内部已经实现透传,而用户只需要使用一个USB转TTL的模块或者单片机的串口就能实现与wifi模块的通信,发送AT指令来对WIFI模块进行控制。(和蓝牙透传模块类似)

LUA语言编程:这是一种单独8266编程的方式,可以不依靠单片机和串口调试软件,直接把程序编写到ESP8266内部。

Arduino 开发:这个接触过Arduino的都会比较熟悉。可以直接在Arduinoide的环境下使用Arduino的开发方式进行开发。

五、常用AT指令

AT指令不区分大小写,以回车、转行结尾。

指令名

响应

含义

AT

OK

测试指令

AT+CWMODE=<mode>

OK

设置应用模式(需重启生效)

AT+CWMODE?

+CWMODE:<mode>

获得当前应用模式

AT+CWLAP

+CWLAP:<ecn>,<ssid>,<rssi>

返回当前的AP列表

AT+CWLAP=<ssid>,<pwd>

OK

加入某一AP

AT+CWJAP?

+CWJAP=<ssid>,

返回当前加入的AP

AT+CIPSTART=<type>,<addr>,port

OK

建立TCP/UDP连接

AT+CIPMUX=<mode>

OK

是否启用多连接

AT+CIPSEND=<param>

OK

发送数据

AT+CIPMODE=<mode>

OK

是否进入透传模式

AT+CWMODE=1:STA模式

AT+CWMODE=2:AP模式

AT+CWMODE=3:STA+AP模式

AT+RST:复位

AT+CIPMUX=1:多连接

AT+CIPSERVER=1:建立服务器

AT+CIFSR:查询模块IP端口

AT+CIPSERVER=1,60000:建立服务器的同时设置端口号

AT+CIPMUX=0:单连接

AT+CIPSEND=0,1:向连接序号为0的连接发1个字节

AT+CIPSTATUS:检测连接状态

AT+MQTTUSERCFG:配置用户属性

六、应用模式

ESP8266支撑单AP模式,单STA模式和混合模式(可以在两种模式切换的状态)

AP模式下,ESP8266 模块作为热点,手机或电脑直接与模块连接,实现局域网无线控制。该模式对应TCP传输协议中的服务端(TCP Server)。

STA模式下,WiFi模块为连接到无线网络的终端(站点),可以连接到AP,一般无线网卡工作在STA模式下,该模式对应TCP传输协议中的客户端(TCP Client)

简单来说:AP模式可以将ESP8266作为热点,让其他的设备连接上它;STA模式可以连接上当前环境下的WIFI热点。

七、几个相关概念

透传(透明传输):就是指不需要关心WiFi协议是如何传输的,所需要做的是A通过串口发数据,B通过串口收数据,整个过程中A串口和B串口就好像是用导线连接起来了一样。使用者不用关心内部具体实现,模块对于使用者是“透明的”、“似乎不存在的”(因为可无视中间的实现原理)。

如果不开启透传模式,在每次发送数据前都必须先发送指令AT+CIPSEND=<param>。若开启了透传模式,就不需要再每次发数据之前都发指令了,只需要发送一次AT+CIPSEND,之后发送的内容都会当成是数据。如果再次发送命令,需要退出透传模式(发送“+++”退出),否则就会把命令当成是数据发送过去。

八、工作流程

ESP8266一般用于连接当前环境的热点,与服务器建立TCP连接,传输数据,大致流程如下:

AT+CWMODE=1:设置工作模式(STA模式)

RT+RST:模块重启(生效工作模式)

AT+CWJAP=”111”,”111111”:连接当前环境的WIFI热点(热点名,密码)

AT+CIPMUX=0:设置单路连接模式

AT+CIPSTART=”TCP”:”xxx.xxx.xxx.xxx”,”xxxx”:建立TCP连接服务器IP与服务器端口号

AT+CIPMODE:透传模式下

AT+CIPSEND:传输数据

+++:退出透传模式

九、主要代码如下:

ESP8266的初始化和TCP功能函数:

ESP8266.h

ESP8266.c

实现效果如下:

以上是关于实验四:ESP8266WIFI通讯实验的主要内容,如果未能解决你的问题,请参考以下文章

ESP32,ESP8266之间WiFi互联实验

Arduino ESP8266 RF433无线发射接收实验

ESP8266ESP8266通讯使用的AT指令

基于MicroPython结合ESP8266模块实现TCP通信(AT指令版)

Arduino ESP32/8266 利用EEPROM对数据进行读写操作

Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码详解