ESP8266两种工作模式数据传输
- 格式:doc
- 大小:1.30 MB
- 文档页数:7
必备硬件条件:模块一个USB_TLL串口板一个 3.3V(300毫安)电源一个本模块基本特点:1支持AP(路由器),STA(端点模式),AP+STA模式,可软件切换,复位后新模式有效2供电电压3-3.6V ,峰值输出功率20DBM。
峰值电流240毫安。
这个级别的输出功率和灵敏度距离空旷一般在100米左右。
3模块分AT指令执行方式,与全IO引出方式。
解释:ESP8266 内部跑LWIP协议,为32为MCU系统。
外部FLASH 最小1M。
系统庞大,跑嵌入式操作系统,可利用资源为内部的MCU FLASH 和RAM,并且有5个IO口以及一个串口可供调用。
因此资源有限,不大不小,外部FLASH放程序,容易被读出,因此外加CPU保护自己的程序可谓必须的。
一般的物联网应用均为小型系统,客户并不都对操作系统以及TCP IP协议有了解,并且代码研读能力有限。
一般有三年工作经验的工程师若只参照源代码理解,能开发出自己实用的程序也得半个月左右,ESP公司源代码开放,但是要同他们签署NDA协议。
为了大家能屏蔽内部复杂的系统,而迅速开发出自己的产品,乐鑫原厂内部的专业工程师,对庞大的系统封装成AT指令控制格式,也就是用串口调用十几个AT指令,能完成自己想要的东西。
几乎在半天时间,客户就能用AT指令把自己的产品数据经过WIFI发送到互联网上!因此AT指令的使用,简化了开发的难度。
并且成本不增加!但是排除开发能力极强的客户,他们可以利用内部有限的资源开发出产品,省去了外部MCU。
外部CPU建议用STM8系列(只需一块钱左右的成本)STM8 内部资源比较丰富,应用于物联网再好不过。
4本公司会出8款ESP8266 产品,根据外观大小,天线接入方式,以及与客户板子的接口(比如双排直插,单排直插,纯贴片半孔工艺),满足所有客户的需求。
注意:对于AT指令版本的,只需要电源地接到3.3V就可以直接用串口控制。
对于全IO 口引出版本GP0 GP2 以及CH-PD要接电源才能让系统正常启动波特率默认为57600 刚上电系统串口工作在74880 的特殊波特率上输出一些系统信息,因此客户会发现出现一堆“乱码”然后才输出READY信息。
ESP8266WIFI模块使用说明使用ESP8266模块前,需要准备好以下内容:1.一台计算机,用于编程和调试ESP8266模块。
B转串口模块,用于将计算机的USB接口转换成串口接口。
3. 一根Micro USB电源线,用于给ESP8266模块供电。
接下来,我们将详细介绍如何搭建和使用ESP8266模块:1.硬件连接a. 将ESP8266模块连接到计算机上的USB转串口模块,通过Micro USB电源线给模块供电。
b.使用杜邦线将USB转串口模块的TXD连接到ESP8266模块的RXD引脚,将RXD连接到TXD引脚,同时将GND引脚连接到ESP8266模块的GND 引脚。
c.注意连接的稳固性,避免松动。
2.ESP8266固件烧录a.打开计算机上的串口调试助手软件,设置好通信参数(波特率、数据位、校验位、停止位等)。
b.将ESP8266模块复位,打开串口调试助手软件后,会看到模块发送的一系列命令和响应。
如果没有出现乱码,说明串口连接正常。
d.烧录完成后,可以重新复位ESP8266模块,并在串口调试助手软件中输入AT命令来测试模块的功能。
3.AT指令测试a.在串口调试助手软件中输入AT指令,例如AT+RST,按回车键发送指令给ESP8266模块。
b.模块会返回一些响应信息,例如OK表示指令执行成功,ERROR表示指令执行失败。
c.通过AT指令,可以进行WiFi连接、TCP/IP通信、HTTP请求等各种功能的测试和调试。
4.WiFi连接a. 输入AT+CWMODE=1,设置ESP8266模块的工作模式为Station模式。
b.输入AT+CWJAP="WiFi名称","WiFi密码",连接到指定的WiFi网络。
c.输入AT+CIFSR,获取ESP8266模块的IP地址。
5.TCP/IP通信a.输入AT+CIPSTART="TCP","服务器IP地址",端口号,建立与指定服务器的TCP连接。
esb8266参数
您可能指的是ESP8266,这是一种常用的Wi-Fi模块。
ESP8266有很多参数和配置选项,以下是一些常见的参数:1. `AT+CWMODE`:设置Wi-Fi模式,有三种模式可选:Station (客户端模式)、SoftAP(热点模式)和SoftAP+Station(同时支持客户端和热点模式)。
2. `AT+CWJAP`:连接到指定的Wi-Fi网络,需要提供网络名称和密码。
3. `AT+CIPSTART`:建立TCP或UDP连接到目标服务器,需要提供服务器的IP地址和端口号。
4. `AT+CIPSEND`:发送数据到已经建立的TCP或UDP连接中。
5. `AT+CIPCLOSE`:关闭当前的TCP或UDP连接。
6. `AT+CIFSR`:获取ESP8266的IP地址信息。
7. `AT+RST`:重启ESP8266模块。
以上只是一些常见的命令和参数,ESP8266还有很多其他的AT指令和配置选项可供使用。
具体的参数和用法可以参考ESP8266的官方文档或相关资料。
ESP6228 –A命令使用例程蓝色为实际发送内容1、重启模块:发送:AT+RST模块重启如下图:2、设置模块工作模式1:STA模式2:AP模式3:STA和AP模式例:设置模块为STA和AP模式发送:AT+CWMODE=3如果当前已经是STA+AP模式则收到如下图否则如下:3、模块的WIFI设置3.1 让模块列出当前环境下存在无线路由器的列表发送:AT+CWLAP结果如图:3.2 让模块连上自己的路由器发送:AT+CWJAP="","littlebee" (其中littlebee为密码)结果如下:3.3 检测是否真连上了发送:AT+CWJAP?结果如下:4、让模块连上远程服务器4.1 启动模块多连接:※发送:AT+CIPMUX=1如下:※让模块连接ID为4的连上我们远程TCP服务器X1.X2.X3.X4 为IP 地址9999为端口※发送:AT+CIPSTART=4,"TCP"," X1.X2.X3.X4",9999结果:成功连接后服务器直接返回数据结果如下:※模块发数据I Can Hear You!到服务器因为我们前面发起连接的id号选择了4 所以※发送:AT+CIPSEND=4,15※接着发送:I Can Hear You!结果如图:(注意:15为自己设定的发送数据长度,>=15 才发送否则累加满15再发送,大于15则截取前面的数据)5、开启模块本地的TCP 服务器(其中1 为开启如果设为0 则关闭8888:要监听端口)※发送:AT+CIPSERVER=1,8888结果:查一下模块IP地址:※发送:AT+CIFSR=?※结果连接上试试:。
摘要随着社会的不断进步,科学研究技术的飞速发展,计算机科学与工程领域继续深入,物联网技术进入了日新月异的程度,使用WiFi技术对智能设备的无线控制已经成为可能,大大的方便人们在日常生活的衣食住行,提高了人们的生活水平。
ESP8266芯片是具有内置WiFi功能的微型开发版,对于现阶段物联网技术的发展,有着不可替代的作用。
该文介绍了现如今我们所处的科技背景,以及国内外对该芯片的研究现状,ESP8266的基本工作原理,和在设置和创建网络时钟的过程中,需要和涉及到的重要硬件部件,SNTP、OLED显示屏、蜂鸣器及其组成部分、工作原理和工作方式。
也介绍了要实行网络时钟所需要的软件环境及其基本组成和选择理由,服务器用于智能运行定时器的设计主要基于的操作系统。
最后总体设计所需要的WiFi模板的控制模板及系统详细设计,和最后对该设计领域的展望和设想。
关键词网络时钟;无线控制;自动较正AbstractWith the progress of the society, the rapid development of science technology, computer science and engineering field further, the extent of the Internet of things technology has entered a rapid, the wireless control of the intelligent equipment using wi-fi technology has become possible, greatly convenient for people in the daily life of daily life, improve the people's standard of living. ESP8266 chip is a miniature development version with built-in WiFi function, which plays an irreplaceable role in the development of Internet of things technology at the present stage. This paper introduces the technology background we are in now, as well as the research status of the chip at home and abroad, ESP8266 basic working principle, and in the process of setting and creating the network clock, the need and involved important hardware components, SNTP, OLED display, buzzer and its components, working principle and working mode. It also introduces the software environment needed to implement the network clock and its basic composition and selection reasons. Finally, the control template and system detailed design of the WiFi template required by the overall design, as well as the prospect and assumption of this design field.Keywords network clock wireless control automatic correction基于ESP8266的网络时钟的设计1.绪论1.1设计背景、目的及意义背景:时钟同步问题来源于计算机科学与工程领域,主要是用来解决多个计算机时钟不一致的问题。
Arduino ESP8266 UDP通讯1、UDP协议UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。
简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。
由于使用UDP协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用UDP协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
但是在使用UDP协议传送数据时,由于UDP的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。
UDP传输数据被限制在64K以内。
2、UDP通信Station下的通信步骤ESP8266WiFi.h如果我们使用ESP8266的Wi-Fi,需要使用。
WiFiUdp.h是专门用于UDP编程的。
有了适当的库,我们需要创建一个WiFiUDP对象。
然后,我们应该指定一个端口以侦听传入的数据包。
最后,我们需要为传入数据包设置一个缓冲区并定义一个回复消息。
3、相关函数1. WiFiUDP .begin(port);·初始化WiFi UDP库和网络设置。
启动WiFiUDP套接字,侦听本地端口·port:要侦听的本地端口(int)·1:成功·0:没有可用的套接字2. WiFiUDP .available()·获取可用于从缓冲区读取的字节数(字符)。
这是已经到达的数据。
仅在之后才能成功调用此函数。
available()从Stream实用程序类继承。
·无参数·返回值当前数据包中可用的字节数0:如果尚未调用parsePacket3. WiFiUDP.beginPacket(hostName, port);WiFiUDP.beginPacket(hostIp, port);·启动连接以将UDP数据写入远程连接·hostName:远程主机的地址。
ESP8266配置AT指令不同模式⽅法说明关于ESP8266的注意事项。
1.下⾯所有的命令,不做特殊说明,命令结尾处都要加/r/n装换成ASCII就是0x0d,0x0a。
2.AT命令,编程实现和⽤串⼝调试有很⼤的区别,主要体现在时间的延时上,在编程中,很多AT命令都需要相对应的延时,有些命令的延时需要长⼀些,⽽有⼀些则需要尽量的短,⽽这时间和实际环境也相关。
所以,你编程实现ESP8266的功能需要⼤量的时间来调试。
3.对于ESP8266的AT命令函数,⽹上你能找到很多写好的库的函数,下载下来直接⽤就可以,都是开源的代码,结合⾃⼰的需求进⾏修改。
注意,这个AT的库函数并不是官⽅的,官⽅是没有的,这个是别⼈写的,所以可能带有⼀些错误,但基本都是正确的,如果你不确定,就先不⽤库函数,⽽是⾃⼰写简单的发送代码。
4.初次调试时,需要单步调试,观察每⼀步得到的返回字符,看是否正确。
5.⽂档涉及的命令很少,ESP8266本⾝AT命令也不多,我们主要⽤的是STA模式和AP模式,最后的⽬的便是⽹关(也就是ESP8266模块)和服务器的通信,通信才是重点,当然,肯定是不会直接通信的,必须依靠⽹络发送协议,也就是MQTT了,对于初次学习的朋友,这个协议有些难,不需要再深层次了解了,感兴趣的可以查查官⽅的⽂档。
ESP8266连接WIFI,也就是上⽹⽤的⽆线信号:第⼀步:ESP8266 复位复位分两种,第⼀种是由AT指令实⾏:AT+RST,延时2s第⼆种由硬件执⾏:此处不做详细说明,这是各个模块的硬件设计决定的。
我们建议使⽤第⼀种。
这个命令不会返回什么信息第⼆步:AT+CWMODE=1这是设置STA模式,延时2.5s这个命令发出去之后,会得到返回的信息:AT+CWMODE=1 0x0d 0x0d 0x0a 0x0d 0x0a OK 0x0d 0x0a注意:这是⼀条字符串,中间是没有空格的,0x0d与0x0a是换⾏和回车的ascii码,其实就是字符’/r’ ‘/n’AT+CWMODE=1 使我们发出去的命令,但是同样返回了,这个叫回显。
ESP8266支持3种模式:Station模式、AP模式和Station+AP混合模式。
关于这三种模式的区别可以类比我们的手机,当手机连接无线网时,此时手机为Station模式,当手机打开移动热点时,此时手机为AP模式。
简单的说就是Station模式就是作为终端,AP模式就是作为路由器。
而Station+AP混合模式,就和路由器的无线桥接功能是一样的,既可以连接别的无线网,同时也可以自己作为路由器。
本文分享ESP8266的两种工作模式下的数据传输:Station模式作为TCP客户端、AP模式作为TCP服务器,分别和网络调试助手进行通讯的AT指令配置流程。
AT指令可以由MCU的串口来完成,这样就可以实现两块ESP8266之间进行通讯,电脑和ESP8266的无线控制,手机和ESP8266的无线控制等。
E S P8266作为T C P客户端,电脑作为T C P服务器
ESP8266模块配置为Station模式连接WiFi,电脑也连接同一个WiFi,电脑使用网络调试助手建立一个TCP服务器,指定服务器地址和端口号。
ESP8266作为TCP客户端,和电脑上的网络调试助手进行通讯,或者直接透传。
实现的效果是模块发送的数据,电脑可以接收到,电脑发送的数据,模块可以接收到。
1.模块配置为Station模式:AT+CWMODE=1
2.配置WiFi信息按照信号强度排序:AT+CWLAPOPT=1,127
3.扫描附近的WiFi信息:AT+CWLAP
//配置当执行AT+CWLAP指令时,WiFi信息按照信号强度排序
AT+CWLAPOPT=1,15
//1表示按照信号强度排序,15表示WiFi信息只显示加密方式,WiFi名称,信号强度,MAC地址
//扫描附近的WiFi信息
AT+CWLAP
+CWLAP:([加密方式],[WiFi名称],[RSSI信号强度],[MAC地址])
+CWLAP:(4,"Tenda_A3AA00",-76,"c8:3a:35:a3:aa:01")
+CWLAP:(4,"Tenda_A3AA00 Sander",-81,"e4:d3:32:9c:e3:c4")
+CWLAP:(3,"EZVIZ_D3*******",-81,"50:13:95:84:e0:16")
+CWLAP:(4,"TP-LINK_4723",-84,"cc:08:fb:c1:47:23")
4.连接指定WiFi:AT+CWJAP="Tenda_A3AA00","password123"
//连接指定AP
AT+CWJAP="Tenda_A3AA00","password123"
//如果WiFi名称重复,需要指定MAC地址来确定要连接的WiFi
AT+CWJAP="Tenda_A3AA00","password123","c8:3a:35:a3:aa:01"
//如果WiFi名称或密码中含有特殊字符,前面要添加\转义符号
如,目标WiFi名称为: ab\,c,密码为: 0123456789"\,则指令如下:
AT+CWJAP="ab\\\,c","0123456789\"\\"
//查询已经连接的WiFi信息
AT+CWJAP?
//断开当前WiFi连接
AT+CWQAP
5.设置单连接模式:AT+CIPMUX=0
//如果之前使用AP模式开启过TCP服务器,要先关闭TCP服务器
AT+CIPSERVER=0
//设置单连接模式
AT+CIPMUX=0
6.电脑和模块连接同一WiFi,电脑启动网络调试助手,并建立TCP服务器。
7.模块作为TCP客户端,连接电脑上创建的TCP服务器
//主机地址和端口要和电脑上的TCP服务器保持一致,
AT+CIPSTART="TCP","***.***.***.***",6000
CONNECT
OK
8.如果连接成功,网络调试助手会显示有一个客户端上线,并显示了客户端的IP为***.***.***.***
9.查询当前TCP服务器分配的IP地址:AT+CIPSTATUS
AT+CIPSTATUS
STATUS:3 //3表示已经建立TCP传输
+CIPSTATUS:0,"TCP","***.***.***.***",6000,26441,0 //本地IP地址
OK
10.此时网络调试助手(TCP服务器)发送的信息,WiFi模块(TCP客户端)已经可以实时收到了。
+IPD,[数据长度]:[数据类型]
+IPD,30:Hello World —— By TCP Server
+IPD,28:MyBlog:***.***.***
+IPD,16:MyWeChat:mcu149
11.客户端发送数据到服务器。
虽然服务器发送的数据客户端可以收到,但此时模块还处于AT模式,不能发送数据到服务器。
//设置本次要发送的字节数
AT+CIPSEND=4
OK
>
//输入要发送的数据,仅前四个字节数据被发出,其他数据无效。
Recv 4 bytes
SEND OK
以上命令只能启动一次数据发送,如果需要数据实时收发,就需要配置成透传模式。
12.开启透传模式。
//开启透传模式,仅支持TCP单连接和UDP固定通信对端的情况
AT+CIPMODE=1
//开始透传
AT+CIPSEND
>
//此时发送的数据会直接给TCP服务器
13.退出透传模式。
//输入不带回车换行的三个加号:+++,退出透传模式,返回到普通AT指令模式。
+++
//发送+++退出透传时,请至少间隔1秒再发下⼀条AT指令。
AT
OK
14.断开TCP连接。
上面虽然退出了透传模式,此时还保持着TCP连接,服务器发送的数据可以实时收到。
如果要断开TCP连接可以使用:AT+CIPCLOSE,可以看到服务器也显示客户端已经离线。
E S P8266作为T C P服务器,电脑作为T C P客户端
ESP8266配置成AP模式,并开启TCP服务器,电脑连接ESP8266的WiFi,作为TCP客户端,两者之间数据传输。
1.模块配置成AP模式:AT+CWMODE=2
2.设置无线网名称和密码
//设置无线网名称和密码
AT+CWSAP="ESP8266","12345678",5,3
//3表示WPA2_PSK加密方式
//查询无线网信息
AT+CWSAP?
+CWSAP:[WiFi名称],[WiFi密码],[通道数],[加密方式],[最大支持连接数],[广播] +CWSAP:"ESP8266","12345678",5,3,4,0
3.设置无线网IP地址、网关、子网掩码
//设置IP、网关、子网掩码
AT+CIPAP="***.***.***.***","***.***.***.***","255.255.255.0"
4.建立TCP服务器,设置端口号
//使用多连接模式
AT+CIPMUX=1
OK
//指定TCP服务器端口为1001
AT+CIPSERVER=1,1001
创建TCP服务器之后,会自动启动TCP服务监听,当有TCP客户端连接时,会有CONNECT提示
0,CONNECT
5.网络调试助手配置成客户端模式,连接ESP8266创建的TCP服务器,主机地址和端口要和之前配置的保持一致。
//ESP8266查询当前连接的客户端
AT+CWLIF
[IP地址],[MAC地址]
***.***.***.***,b8:86:87:4e:26:af
OK
6.网络调试助手(TCP客户端)发送消息给ESP8266(TCP服务器),因为ESP8266已经开启监听服务,数据会实时显示。
7.ESP8266(TCP服务器)发送消息给网络调试助手(TCP客户端)。
//ESP8266作为服务器,要往客户端发数据,需要指定客户端编号和字节数
//往0号客户端发5个字节的数据
AT+CIPSEND=0,5
OK
>
//输入要发送的数据,仅前五个字节数据被发出,其他数据无效。
Recv 5 bytes
SEND OK。