首页 > 其他分享 >esp8266 wifi模块的使用

esp8266 wifi模块的使用

时间:2023-09-02 15:22:11浏览次数:51  
标签:esp8266 wifi TCP 透传 发送 模式 模块 发送数据 ESP8266

 

 

esp8266 可以配置AP模式,和Station 模式,AP 就是我们平时所说的热点,Station 则是前面说的连接 AP 的设备

ESP8266 还有第三种模式:AP+Station,即:将 AP 和 Station 的功能合二为一,但是应用的场景不多,这里不做展示。当 ESP8266 设置为 AP 模式时,其他设备可以接入该热点,最多支持 4 台 Station 设备接入。AP 模式也是 ESP8266 默认的模式。

最大波特率  4608000bps。

 

 

 

 

参考学习网站

ESP8266配置透传模式(AT指令)

https://blog.csdn.net/qq_36955622/article/details/119380360


 

STM32物联网实战教程(一)—ESP8266的AT指令集详解

https://blog.csdn.net/qq_39400113/article/details/107721178

STM32物联网实战教程(二)—MQTT协议简介

https://blog.csdn.net/qq_39400113/article/details/107650715

 

STM32物联网实战教程(七)—MQTT协议发布消息和发布确认

https://blog.csdn.net/qq_39400113/article/details/107685606

【STM32】ESP8266 AT指令

https://blog.51cto.com/dlican/3739310#22__21

 

配置记录:

AT+CWMODE=1


OK
AT+CWJAP="myLink","mynight223"

WIFI CONNECTED
WIFI GOT IP

AT+CIPSTART="TCP","192.168.0.106",8080

CONNECT

OK


AT+CIPMODE=1


OK
AT+CIPSEND


OK

>

 

 

 

     1、设置WIFI模式为AP模式,也就是充当热点模式(AT+CWMODE=2)
    另: AT+CWMODE=1 为 Station 模式,AT+CWMODE=3 位 AP+Station 模式
    2、设置AP热点属性(AT+CWSAP=AT+CWSAP_DEF="ESP8266-XSD","12345678",5,3)

  其含义为:热点名为ESP8266-XSD,密码为12345678,使用通道5,加密方式为 WPA2_PSK,这里的通道对应的就是不同的射频频率,如果同一空间内存在相同通道的 WIFI 信号,将会产生干扰,影响上网质量,因此可以设置通道来避免这种干扰,常用的通道有 1、6、11,因为这三个通道互不产生干扰
设置为Station 模式(AT +CWMODE=1,AT +CWJAP)

  该模式是平时应用最多的模式,因为物联网设备需要连接到家中路由才可以接入外网,此时设备就作为 Station 连接到 AP 热点。设置 Station 并连接 AP 流程如下:

    1.设置 WIFI 模式为 Station(AT+CWMODE=1)
    2.连接到家中路由器(AT+CWJAP="liuyao","liuyao1001")
使用TCP实现局域网内的设备通信
5.1建立TCP连接(AT+CIPSTART)

  TCP实现局域网内的设备通信时先要让ESP8266连接到家中的热点。该条指令可以指定建立连接的协议类型,通常使用的有两种:TCP和UDP。我们先打开网络调试助手,并将其设置为TCP Server端,具体设置如下:

  接着发送AT指令建立 TCP 连接:AT+CIPSTART="TCP","192.168.0.103",8080,成功连接会提示CONNECT,接着使用发送指令:AT+CIPSEND=14,其中14是发送数据的长度,该指令发送完成后,接收窗口会显示 > ,我们接着在发送窗口发送I m TCP Client,TCP Server 端会收到该信息,接着再通过 TCP Server 发送I m TCP Server,串口接收端会打印 Client 收到的数据。
  下面就是ESP8266连接当前环境的热点,与服务器建立TCP连接,传输数据的过程和动画演示(所有的字符和标点必须是英文)。

    1.设置WIFI 模式为 Station:AT+CWMODE=1
    2.连接到家中路由器:AT+CWJAP="liuyao","liuyao1001"
    3.发送AT指令建立 TCP 连接:AT+CIPSTART="TCP","192.168.0.103",8080
    4.提示发送数据长度为14: AT+CIPSEND=14(返回>)
    5.串口调试助手发送:I m TCP Client(返回Recv 14 bytea SEND OK)
    6.网络调试助手发送:I m TCP Server (串口调试助手收到+IPD,21:hello I m TCP Server!)


  这一步很多人可能很懵,不知道为啥要这样做,你这个搞的串口调试助手还有网络调试助手还有啥TCP Server到底是啥意思啊?
  哈哈,我相信很多初学者学到这里也不是很清楚。我这里简单说一下,我们的用ESP8266是不是要让它连到家中的网啊,那在这里我们的网络调试助手的TCP Server就是我们要连接的网络。有人又要说了,我要连家中路由器的网啊,为啥要连网络调试助手的网啊?这是因为如果你连家中的网,请问你如何给你家的路由器发送数据啊!你怎么知道路由器接收到了数据啊!路由器又咋给你发送数据啊!你又咋接收数据啊!我们这里用网络调试助手的目的就是让网络调试助手来代替路由器局域网。TCP Server就是服务端的意思也是就是服务器。至于为啥用串口调试助手我就不用说了吧,只有你在串口助手上调试好了,我们才用单片机的串口结合ESP8266共同代替客服端,也就不需要调试助手了。
  所以说我们一定要在串口调试助手上把相关的数据调通了,把原理过程搞懂了之后我们再去搞单片机程序,再去搭建你的服务器而不是用网络调试助手代替了。
  怎么样现在明白了吧!
5.2开启透传传输(AT+CIPMODE=1)

  前面在使用 TCP 进行数据发送时,在每次发送数据之前都要指定发送数据的长度,而且在接收到数据之后,还会有+IPD,< len>的前缀,这样很不方便进行数据的处理,因此我们可以使用AT+CIPMODE=1指令开启透传模式,开启透传模式后只需要在第一次发送数据时使用ATD +CIPSEND指令来告诉ESP8266开始透传发送,随后我们直接发送想要的数据即可,在接收到数据时,也没有了+IPD,< len >前缀。
  下面就是ESP8266连接当前环境的热点,与服务器建立TCP连接,开启透传模式传输数据的过程和动画演示(所有的字符和标点必须是英文)。

    1.设置WIFI 模式为 Station:AT+CWMODE=1
    2.连接到家中路由器:AT+CWJAP="liuyao","liuyao1001"
    3.发送AT指令建立 TCP 连接:AT+CIPSTART="TCP","192.168.0.103",8080
    4.开启透传模式:AT+CIPMODE=1 (返回ok)
    5.开始透传发送:AT+CIPSEND (返回>)
    6.串口调试助手发送:hello I m TCP Client! (网络调试助手收到hello I m TCP Client!)
    7.网络调试助手发送:hello I m TCP Server!(串口调试助手收到>hello I m TCP Server!)

  如果想要退出透传发送模式,先发送+++(0x2B 0x2B 0x2B),注意没有换行符,接着使用AT+CIPMODE=0(有换行符)指令退出透传模式,恢复到默认传输模式。如果不退出透传模式,那么在透传模式下就不能发送AT指令了,它会默认为字符串发送。


注意:在非透传模式下,客户端每次向服务端发送数据之前都要先发送AT+CIPSEND=<len>来告诉服务端我接下来要发送数据的长度,否则在发送之后会返回EEROR。

注意:在透传模式下,客户端每次向服务端发送数据之前不需要发送AT+CIPSEND=<len>来告诉服务端我接下来要发送数据的长度。在设置好透传模式(即发送了AT+CIPMODE=1和AT+CIPSEND)后,直接发送数据就可以了。

在非透传模式下和透传模式下。只有客服端向服务端发送数据之前需要先发送最对应的命令,然后再发送数据。而服务端向客户端发送数据之前不需要向客户端先发送任何命令,直接就是发送数据。另外,所有AT指令(除了退出透传的+++指令)和数据在发送时都需要勾选发送新行或AT指令自动回车,也就是说命令和数据发送之前都需要回车换行,否则不能发送成功。

使用SmartConfig为设备配网

 

 

开启透传模式

开启ESP8266透传,在串口助手看到以下回发数据时,ESP8266已经进入透传模式
AT指令:AT+CIPSEND
模块回发数据

 

退出透传模式

退出透传发送 +++ (不需要加换行符)即可,像上面AT指令都需要换行发送
设置上电自动透传

上面指令都是一次性发送AT指令开启透传模式,ESP8266断电再上电后只会主动连接最后一次连接过的路由,并不会自动进入透传模式,在连接路由后,发送如下指令
AT指令:AT+SAVETRANSLINK=1,"192.168.3.47",8080,"TCP"
将TCP Sever的IP,端口号,通讯方式给到ESP8266

连接wifi并最后退出透传模式

1                  +++            不需要发送新行或者不需要回车
以下2到步都需要发送新行或者回车
2                    AT+RESTORE                            让模块恢复出厂设置
3                    AT                                                判断模块的好坏及工作状态,正常就会回复OK
4                    AT+CWMODE_CUR=1                关闭回显
5                    AT+CWJAP_CUR="wifiname","wifiPassword"                连接热点,需要根据自己的热点更改
6                    AT+CIPSTART="TCP","a1BDinky4Et.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883                    连接TCP        这里的a1BDinky4Et为自己的阿里云产品密钥
7                    AT+CIPMODE=1                        设置传输模式为透传模式
8                    AT+CIPSEND                            告诉模块开始传输数据,收到模块的‘>’就证明可以了    

9                    +++        退出透传模式时 ,注意这个不需要发送新行

出现AT指令出现busy p…的问题


 

标签:esp8266,wifi,TCP,透传,发送,模式,模块,发送数据,ESP8266
From: https://www.cnblogs.com/mynight2012/p/17673679.html

相关文章

  • 1772_WPS关闭WPS热点和云服务等模块
    全部学习汇总:GitHub-GreyZhang/windows_skills:someskillswhenusingwindowssystem.说起来,WPS加入的WPS热点以及WPS云服务等可能还都是很不错的功能。不过,我不是很喜欢。我喜欢我能够更加自由地去随心所欲使用我用的软件,如果可能,最好是自由软件。虽说自由软件的王国里面有O......
  • 同时创建作者和作者详情表,ModelSerializer使用,模块与包的使用,反序列化校验源码分析
    1同时创建作者和作者详情表1.1django项目改名字后顺利运行#1先改文件夹名#2改项目名#3改项目内的文件夹名#4替换掉所有文件中的drf_day04---》drf_day05#5命令行中启动:pythonmanage.pyrunserver#6setting--->django--->指定项目根路径1.1作者......
  • 同时创建一对一表关系字段(作者和作者详情为例)、ModelSerializer使用、模块与包的使用
    同时创建一对一表关系字段(作者和作者详情为例)序列化器#作者表序列化类classAuthorSerializer(serializers.Serializer):name=serializers.CharField(max_length=32)age=serializers.IntegerField()sex=serializers.CharField(max_length=16)addr......
  • 光模块知识全解析:网络工程师的必备技能
    在这个信息爆炸的时代,数据传输已经成为我们生活中不可或缺的一部分。而在众多的数据传输方式中,光纤通信以其高速、高带宽、低损耗的特点,成为了现代通信的主流。而在这个光纤通信的背后,有一个神奇的器件在默默地发挥着作用,那就是光模块。那么,光模块究竟是什么呢?它又是如何工作的呢?本......
  • Jinja2模块生成html
    1、html模板<!DOCTYPEhtml><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"><htmlalign='left'><h1>巡检报告</h1><body><h2>报告综述</h2><p>巡检地点:机房&nbsp;&......
  • 三河凡科科技飞讯教学篇:学习振弦采集模块的开发基本原理
    三河凡科科技飞讯教学篇:学习振弦采集模块的开发基本原理振弦采集模块是一种用于测量物体振动、形变、压力等物理量的电子设备。它通过测量物体的振动变化,可以得出物体在不同条件下的动态特性,对于工程设计、科学研究、医学检测等领域都有广泛应用。本文将介绍振弦采集模块的开发基......
  • 连接WiFi_AT指令_ESP32
    1.按复位键。串口输出显示ready2.设置客户端模式AT+CWMODE=13.连接路由器AT+CWJAP="ssid","passwd"4.获得模块IPAT+CIFSR ......
  • 解锁WiFi密码,我只用了60行代码
    WiFi现在已经遍布我们生活方方面面,如今,如论到工作单位,还是租住的房子,或者一家餐厅,随处都可以连上WiFi。因此,我们对WiFi密码的需求也没有之前那么迫切了。如何WiFi密码?本文,将会通过Python教大家如何实现,这里纯粹是为了学习用途。WiFi列表首先,我们需要获取附近的WiFi列表。下面,就来......
  • nginx--添加stream模块
    使用的是openEuler22.03(LTS-SP2)系统,yum源选择清华大学的源清楚yum缓存后重新加载,nginx版本变成1.23.2[[email protected]]#yuminfonginxLastmetadataexpirationcheck:0:21:11agoonFri01Sep202310:29:45AMCST.InstalledPackagesName:......
  • ansible常用模块使用熟练!!!
    快速上手Ansible以及常见模块应用原创 北极星 运维记事 2023-06-2521:52 发表于四川收录于合集#Linux19个Playbook介绍Ansibleplaybook剧本介绍在ansible中,类似”脚本”的文件被称作”剧本”,英文名称为’playbook’,用于配置,部署,和管理被控节点我们只需要把......