学习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关灯 "。好了圆满结束

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
Lester_11015 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元5 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133975 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315205 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2