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

相关推荐
listhi5201 分钟前
基于STM32F407与FT245R芯片实现USB转并口通信时序控制
stm32·单片机·嵌入式硬件
光影少年1 小时前
云计算生态及学习方向和就业领域方向
学习·云计算
好奇龙猫1 小时前
[AI学习:SPIN -win-安装SPIN-工具过程 SPIN win 电脑安装=accoda 环境-第四篇:代码修复]
人工智能·学习
luckyPian1 小时前
学习go语言
开发语言·学习·golang
chenzhou__1 小时前
MYSQL学习笔记(个人)(第十五天)
linux·数据库·笔记·学习·mysql
JJJJ_iii4 小时前
【机器学习01】监督学习、无监督学习、线性回归、代价函数
人工智能·笔记·python·学习·机器学习·jupyter·线性回归
Han.miracle5 小时前
数据结构——二叉树的从前序与中序遍历序列构造二叉树
java·数据结构·学习·算法·leetcode
知识分享小能手7 小时前
uni-app 入门学习教程,从入门到精通,uni-app基础扩展 —— 详细知识点与案例(3)
vue.js·学习·ui·微信小程序·小程序·uni-app·编程
●VON8 小时前
重生之我在大学自学鸿蒙开发第九天-《分布式流转》
学习·华为·云原生·harmonyos·鸿蒙
无妄无望8 小时前
docker学习(4)容器的生命周期与资源控制
java·学习·docker