学习STC51单片机25(芯片为STC89C52RCRC)

每日一言

生活就像弹簧,你弱它就强,你强它就弱,别轻易认输。

ESP8266作为路由器模式(AP模式)也就是在局域网内可以有服务器的作用

那么我们需要将pc作为设备进行连接ESP的发射出来的WIFE

叫做这个AI啥的 也有可能叫做ESP啥的这个06FD9A是这个ESP8266的MAC地址(物理地址),物理地址是标识一个硬件的唯一地址

先讲ESP作为AP模式的的AT指令说清楚来

//1 配置成路由模式AP模式 (我们AP模式是可以作为服务器来使用的只要我们在同一个局域网里面,就可以通过ip地址来进行通信)

AT+CWMODE=2

Response :OK //反馈结果

//2 使能多链接

AT+CIPMUX=1

Response :OK

//3 建立TCPServer

AT+CIPSERVER=1 // default port = 333 默认端口333

Response :OK

//4 发送数据

AT+CIPSEND=0,4 // 发送4个字节在连接0通道上

>abcd //输入数据,不带回车

Response :SEND OK

//• 接收数据

+IPD, 0, n: xxxxxxxxxx //+IPD是固定字符串 0是通道,n是数据长度,xxx是数据

//断开连接

AT+CIPCLOSE=0

Response :0, CLOSED OK

//ESP-01s工作在路由模式,课程查询路由器IP地址192.168.4.1,使用的服务器默认端口号333

解释一下

多连接模式(AT+CIPMUX=1)适用于以下场景:

  1. 同时与多个客户端通信
    1. 例如,ESP866 作为 TCP 服务器时,可同时接受多个客户端的连接(如手机、电脑、其他设备)。
  2. 混合协议通信
    1. 同时建立 TCP 和 UDP 连接(如连接 TCP 服务器的同时,通过 UDP 广播数据)。
  3. 多路数据传输

将不同类型的数据通过不同连接发送(如传感器数据走连接 0,控制指令走连接 1)。

我们的esp8266开启ap模式之后,那么他自己就作为路由器或者是说TCP服务器了,那我们就可以将自己PC上的网络调试助手设置成TCP client模式(客户端模式),那我们的电脑就去连接ESP8266的WIFE,因为需要Esp8266作为路由器分配给我们pc一个与ESP8266自身IP的相同网段的IP地址,这样才可以进行通信

一般是我们连接上ESP的wife后,再打开这个网络调试助手,他就是会自动显示出当前的PC的IP地址,,远程主机地址就是ESP的ip地址,默认端口号是333

连接成功后,我们就可以通过网络调试助手(这边的身份是客户端,也可以比作为手机)给ESP8266(服务器)进行发送数据,但是8266还不能给发送信息到TCP客户端,因为还没开数据透传模式

AT+CIPSEND=0,4 // 发送4个字节在连接0通道上

这样的话就可以发送了,但是只能有限的发,比如这边设置的是4个字节

让我们用单片机发AT指令(AP模式)

代码

这个也是一样可以用白盒测试的,这边我就不说了,就是接线把ESP8266TXD到安可信的RXD,这样就可以利用安可信来看成功与否了,然后我们手动往单片机输入OK的反馈信息用来测试代码是否成功,因为可以看到具体的反应(内部结构数据流动),所以我们叫做白盒测试

通过最开始的ESP8266作为sta模式的时候,做的单片机发送指令给ESP这个操作大家都会了,那么我们这个一样的,都是一样操作,

代码的话重点在这个

这个其实就是发现了,ESP成功后的信息为OK,那么我们就是可以利用OK这个标志,作为记录标志位,所以只有反馈为OK的时候,我们的代码才会让他跳出循环,否则就一直卡在循环里,直到ESP8266成功后返回OK,才跳出循环,那么为什么返回OK就跳出循环呢,那么这个就是我们的中断机制,我们设置的单片机接收到buffer[0]为O和buffer[1]为K的时候,我们才会将标志位置位1,那么初始的OK标志位就会0变成1,那么这个 "!AT_OK_Flag" 才会跳出循环,之后立即复位标志位为0,因为下面的指令还需要用到OK标志位。。

这个CIPSERVER的下面为什么不用OK标志位呢,因为用不用都行,因为下一步就是需要我们去连接WIFE,那么连接WIFE后,我们连接TCP Client,然后client连接上ESP8266这个服务器后(检查是否是与ESP8266是同一个网段,因为有时候会出现不一样的网段,有时候会连接不成功的样子)

,那么会反馈 "0,CONNECT",我们就去检测这个,所以不用OK这个标志位了,取决于喜好吧,代码都能跑,只是检测这个"0,CONNECT"更符合逻辑,这些就是重点了,其他的自己也看的明白,因为都是一个逻辑

最后我们利用TCP客户端进行发送到ESP服务器,我们输入": op开灯 " " : cl关灯 "。好了圆满结束

相关推荐
爱意随风起风止意难平1 小时前
003 flutter初始文件讲解(2)
学习·flutter
东京老树根1 小时前
SAP学习笔记 - 开发18 - 前端Fiori开发 应用描述符(manifest.json)的用途
笔记·学习
虾球xz2 小时前
CppCon 2014 学习:C++ Memory Model Meets High-Update-Rate Data Structures
java·开发语言·c++·学习
水水沝淼㵘2 小时前
嵌入式开发学习日志(linux系统编程--系统编程之 进程间通信IPC)Day32
linux·运维·学习
小浪学编程4 小时前
C#学习12——预处理
学习
Timmer丿4 小时前
kafka学习笔记(三、消费者Consumer使用教程——配置参数大全及性能调优)
笔记·学习·kafka
Timmer丿4 小时前
kafka学习笔记(三、消费者Consumer使用教程——消费性能多线程提升思考)
笔记·学习·kafka
战族狼魂4 小时前
转战web3远程工作的英语学习的路线规划
学习
湮雨塵飛5 小时前
ESP32开发之LED闪烁和呼吸的实现
vscode·嵌入式硬件·esp32·freertos·呼吸灯
颜妮儿5 小时前
地震资料裂缝定量识别——学习计划
学习