STM32实战项目系列之智能家居篇(第五篇章)实战解析
#esp8266
一、WIFI介绍
首先跟大家介绍一下WIFI技术,WIFI网络是一种无线通信网络,也称为:无线宽带,正常的WIFI工作范围在100m的距离,但是收到发射功率大小的影响以及环境的因素,一般情况下的室内定位范围为10m,室外为30m左右,此外,WIFI传输速率也是非常高的可达600Mb/S;
WIFI技术是一种使用电信号在无线电波上进行数据传输的技术,通过建立局域网,让各类设备(手机、电脑、平板等)以无线的方式连接,实现设备之间的无线传输。
以上介绍这些就是偏学术语的定义,大家了解即可,相信每个人对于WIFI并不陌生,而今天我们要做的其实就是,如何利用WIFI模块进行数据的传输;
本处使用的是esp-01s。
当我们使用下载器(usb-ttl)和esp8266 01s连接时,将3.3v与下载器3.3v电源连接,GND和下载器GND连接,RX与下载器TX连接,TX与下载器RX连接,EN与下载器3.3v连接。此处我未使用下载器与之连接,我使用了学习板上的端口与之相连接。(如果要烧录固件的话将GPIO0接GND,调试的时候断开即可)。
AT指令
在使用USB转TTL模块与电脑连接之后,就可以使用串口调试助手进行WIFI模块的调试了。首先有一点,AT指令不区分大小写,均以回车、换行结尾(发送新行)。下面介绍常用的AT指令:
1、ESP8266的应用模式:ESP266支撑单AP模式、单STA模式和混合模式。简单的来说就是:
2、什么是透传模式?
如果不开启透传模式,我们怎么发送数据呢?在每次发送数据前都必须先发送指令AT+CIPSEND=<param>,例如:
-
第一步串口发送AT+CIPSEND=4
-
第二部串口接收到OK
-
第三步发送想要的数据 > //在 > 后面输入要上传的数据
但是一旦开启了透传模式,我们就不需要在每次发送数据前都发送指令AT+CIPSEND=<param>了,只需要发送一次AT+CIPSEND,之后发送的所有内容全部当成是数据了!
但需要知道的是,一旦进入透传模式将无法对传输进行加密
一般来说想要ESP8266连接当前环境的热点,与服务器建立TCP连接,传输数据有以下步骤。
但其实还包含了诸多为了阻止或处理异常状态的代码。
模块使用分为俩种情况,服务端和客服端,其中客户端最为常用
- 设置模式为AP模式:AT+CWMODE=2
- 重启模块:AT+RST
- AT+CWSAP=“wifi名称”,“wifi密码”,6,4 创建热点(“6”为通道号,“4”为加密等级)
- 查看模块的ip地址:命令: AT+CIFSR
- AT+CIPMUX=1 设置为多连接模式,启动模块
- AT+CIPSERVER=1,8080 服务器的设置端口(8080为默认端口,可根据自己意向设置)时
- AT+CWMODE=1:设置工作模式(STA模式)
- AT+RST:模块重启(生效工作模式)
- AT+CWJAP="111","11111111":连接当前环境的WIFI热点(热点名,密码)
- AT+CIPMUX=0:设置单路连接模式
- AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",xxxx:建立TCP连接
- AT+CIPMODE=1:开启透传模式
- AT+CIPSEND:透传模式下,传输数据
- +++:退出透传模式
下列提供本文参考esp8266下载固件的文章:
记录:esp8266-01/01s如何下载固件(下载教程)_esp8266固件下载-CSDN博客
本文使用的模块作为客户端。
本文选用透传模式(可以连续的发送数据)。特点:1、透传只能在单链模式下开启。2、当模块为服务端时,又因为必须开启多链模式,不符合第一条件,所以只能作为单链模式下的客户端。
我先用手机的网络调试助手进行了一番操作,操作了几个小时后。。。没有ok,后进行pc端的操作,试了一下就ok了,在pc设置ip地址时候我们不能胡乱设置,根据控制面板中的网络ip号进行设置
在所有准备完后会返回一个>,如下图所示:
此时就可以接发数据,如下图所示:
pc端对模块发送数据如下如图所示:
作者:飞翔的w