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

article/2025/6/28 8:09:09

每日一言

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

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


http://www.hkcw.cn/article/TXFebJSluK.shtml

相关文章

基于Android的拼车系统的设计与实现

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言&#xff0…

美媒发现:中国持续上升,美国跌成负值

美媒公布最新民调:全球对中国好感度上升,美国形象转而跌入负区间值美国Axios新闻网2日援引晨间咨询公司(Morning Consult)最新民调数据称,全球对中国的好感度持续上升,而对美国的好感度则跌入负区间值,美国贸易政策正以牺牲其自身利益为代价,助推中国崛起。Axios新闻网…

马克龙笑容满面邀妻子与球队合影 甜蜜互动成焦点

马克龙笑容满面邀妻子与球队合影 甜蜜互动成焦点。5月28日,法国总统马克龙结束了对越南的访问后,与妻子布里吉特一同抵达印度尼西亚,开启正式访问行程。在越南访问期间,一段布里吉特“打脸”马克龙的视频引发了热议,尽管马克龙解释这只是两人间的玩笑,但这一事件仍让他显…

FFmpeg移植教程(linux平台)

目录 第三方源码编译三部曲关于 configure 的说明 FFmpeg 移植流程获取源码方法一:git 远程克隆方法二:官网下载压缩包解压 配置安装 第三方源码编译三部曲 Linux平台下有许多开源的第三方库和服务,这些开源代码一般都符合GNU-autotools编码…

ERP管理系统:Java+Vue,含源码及文档,涵盖采购、销售、库存等业务,优化企业运营

前言: 在当今竞争激烈的商业环境中,企业需要高效、精准地管理各个业务环节,以提升运营效率、降低成本、增强市场竞争力。ERP管理系统作为一种集成化的管理工具,将企业的各个核心业务模块整合在一个统一的平台上,实现了…

shiro使用详解

01-Shiro 实战教程 1.权限的管理 1.1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现 对用户访问系统的控制 ,按照安全规则或者 安全策略 控制用户可以访问而且只能访问自己被授权的资…

ACTF2025-web-eznote-wp

附件审计 app.js const express require(express) const session require(express-session) // 会话管理中间件 const { randomBytes } require(crypto) // 生成加密随机数 const fs require(fs) // 文件系统操作 const spawn require(child_process) // 执行外部命令&a…

CSS 3D 变换中z-index失效问题

CSS 3D 变换中 z-index 失效问题 1. z-index 失效了 在 CSS 中,z-index 通常用于控制元素的层叠顺序,数值越大,元素越靠前显示。在 3D 变换(如 rotateX、translateZ) 中使用 z-index 时,可能会发现z-inde…

能源行业的网络安全:一场无声的战争

想象一下,你家的电力突然中断,冰箱里的食物开始变质,空调停止运转,甚至连手机充电都成了奢望。这不是科幻电影,而是网络攻击可能给我们的生活带来的真实影响。能源行业,这个维系现代社会运转的命脉&#xf…

ESP32-C3 + W5500 + MicroPython 编译记录

前言 我本来是想连个网,结果连上了无数个坑…… 在这个项目中,我的目标是用 ESP32-C3 W5500 作为有线网关,运行 MicroPython。听上去简单,实操下来却是一场跨平台 编译环境 烧录流程的大混战。 为了避免你也在这些坑里打转&…

项目管理进阶:56页大型IT项目管理实践经验分享【附全文阅读】

此文档为大型IT项目管理实践经验分享目录概览,主要包含以下核心内容: 1. **整体介绍**:阐述了项目管理在IT领域的重要性,特别是针对产品经理与开发人员间的冲突和挑战,提出通过项目管理方法来提升工作效率。目标受众为…

一种在SQL Server中传递多行数据的方法

这是一种比较偷懒的方法,其实各种数据库对Json 支持的很好。sql server 、oracle都不错。所以可以直接传json declare 这是一个json varchar(max) set 这是一个json{"data":[{"code":"1","name":"啥1"},{"…

SOC-ESP32S3部分:25-HTTP请求

飞书文档https://x509p6c8to.feishu.cn/wiki/KL4RwxUQdipzCSkpB2lcBd03nvK HTTP(Hyper Text Transfer Protocol) 超文本传输协议,是一种建立在 TCP 上的无状态连接,整个基本的工作流程是客户端发送一个 HTTP 请求,说明…

【音视频】H265 NALU分析

1 H265 概述 H264 与 H265 的区别 传输码率:H264 由于算法优化,可以低于 2Mbps 的速度实现标清数字图像传送;H.265 High Profile 可实现低于 1.5Mbps 的传输带宽下,实现 1080p 全高清视频传输。 编码架构:H.265/HEVC…

第十二节:第四部分:集合框架:List系列集合:LinkedList集合的底层原理、特有方法、栈、队列

LinkedList集合的底层原理 LinkedList集合的应用场景之一 代码:掌握LinkedList集合的使用 package com.itheima.day19_Collection_List;import java.util.LinkedList; import java.util.List;//掌握LinkedList集合的使用。 public class ListTest3 {public static …

用 Whisper 打破沉默:AI 语音技术如何重塑无障碍沟通方式?

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

实现Cursor + Pycharm 交互

效果演示: 直接可以在cursor或Pycharm中点击右键点击,然后就可以跳转到另一个应用的对应位置了 使用方法: 分别在两个应用中安装插件【Switch2Cursor Switch2IDEA,这两个插件分别安装在 IDEA 和 Cursor 中】: Switc…

【Linux】进程控制-上

> 🍃 本系列为Linux的内容,如果感兴趣,欢迎订阅🚩 > 🎊个人主页:【小编的个人主页】 >小编将在这里分享学习Linux的心路历程✨和知识分享🔍 >如果本篇文章有不足,还请多多包涵&a…

QT之头像剪裁效果实现

文章目录 源码地址,环境:QT5.15,MinGW32位效果演示导入图片设置剪裁区域创建剪裁小窗口重写剪裁小窗口的鼠标事件mousePressEventmouseMoveEventmouseReleaseEvent 小窗口移动触发父窗口的重绘事件剪裁效果实现 源码地址,环境&…

Android基于LiquidFun引擎实现软体碰撞效果

一、实现效果 Android使用LiquidFun物理引擎实现果冻碰撞效果 二、Android代码 // 加载liquidfun动态库static {System.loadLibrary("liquidfun");System.loadLibrary("liquidfun_jni");}class ParticleData {long id;ParticleSystem particleSystem;float…