学习STC51单片机22(芯片为STC89C52RCRC)
记住这个AT指令千万不要去脑子记,要用手册查
每日一言
努力不是为了感动谁,而是为了不辜负自己的野心。
硬件:ESP8266 wife模块
蓝牙,ESP-01s,Zigbee,NB-lot等通信模块都是基于AT指令的设计
老样子 我们用usb转TTL模块(ch340)来连接ESP8266
我们需要ESP8266调试助手(安信可)因为ESP8266很多的技术支持都是安信可做的
其实我们之前的STCISP也是可以的,但是这个比较专业页面看的比较舒服,所以下载这个串口助手
有看到ready就表示重启成功了
1.AT+RST 重启命令
ESP8266出厂通常是115200,但是我们之前都是用9600所以我们更改一下波特率
2.AT+UART=9600,8,1,0,0 设置波特率8个数据位1个停止位
设置为9600波特率的话是为了将它移植到单片机上的话,是可以匹配得上的
入网设置
设置工作模式
模式 | 角色 | 功能 | 典型场景 |
Station(STA) | 客户端(Client) | 连接到现有 WiFi 网络(如路由器),获取 IP 地址,通过该网络访问外部资源(如服务器)。 | 智能插座连入家庭 WiFi,访问云端 API。 |
Access Point(AP) | 热点(WiFi 路由器) | 创建独立 WiFi 网络,允许其他设备(如手机、电脑)连接到自己。 | 配置页面(如智能设备初次设置)。 |
混合模式(双模)(STA+AP) | 同时作为客户端和热点 | 既连接到现有网络,又创建自己的热点供其他设备接入。 | 复杂组网(如 Mesh 网络节点)。 |
3.AT+CWMODE=3
我们可以直接配置成双模,那么就两个都支持了
如果看到这样的信息OK 那么久配置成功了
以设备模式工作
以设备模式接入家中路由器配置
4.AT+CWJAP="Netcore_BD5255","135075xxxxx"
这边有个bug就是它不支持中文的WIFE名字,这个+CWJAP:3是显示错误码的,按道理是密码错误,但是我的密码是正确的,后面发现不能是中文名称,所以我切换一个英文的就可以了
配置成功后会显示WIFE CONNECTED
WIFE GOT IP
OK
那么就是配置成功了以设备模式成功连接上了自己家的wife
连接上了以后我们可以查询一下ESP8266的IP地址
5.AT+CIFSR
解释一下每一个意思
- +CIFSR:APIP,"192.168.4.1" :表示 ESP8266 在 AP(接入点)模式下的 IP 地址,即当 ESP8266 作为热点时,它自身所拥有的 IP 地址,其他设备连接该热点后,可通过这个 IP 与 ESP8266 通信 。
- +CIFSR:APMAC,"4a:3f:da:06:fd:9a" :ESP8266 在 AP 模式下的 MAC 地址,MAC 地址是设备在网络中的物理地址,用于在链路层标识设备 。
- +CIFSR:STAIP,"192.168.167.26" :ESP8266 在 STA(站点)模式下的 IP 地址,意味着当 ESP8266 作为客户端连接到其他 WiFi 网络(如家用路由器)时,从该网络获取到的 IP 地址 。
- +CIFSR:STAMAC,"4a:3f:da:06:fd:9a" :ESP8266 在 STA 模式下的 MAC 地址,和 AP 模式下 MAC 地址相同,是 ESP8266 硬件本身的唯一标识 。
“192.168.4.1” 和 “192.168.167.254” 这两个 IP 地址是连接网络后,由网络中的 DHCP(动态主机配置协议 )服务器分配的,而非ESP8266本身固有地址 。
地址分配来源
一般家庭或办公网络中,路由器承担 DHCP 服务器功能。当 ESP8266 或电脑等设备连接到该网络,会向 DHCP 服务器发送请求。服务器从预设的 IP 地址池中选取未分配的地址,分配给设备。比如常见的路由器地址池可能是 “192.168.1.10 - 192.168.1.200” ,设备连接就从中获址。
然后我们可以ipconfig一下查一下自己电脑的ip地址
我们会发现ESP处于设备模式和PC同属一个局域网
当 ESP8266 和 PC 都连接到同一台路由器(或热点)时 ,它们就处于同一个局域网(LAN)内。路由器(或热点)作为局域网的核心设备,会为连接到它的设备分配 IP 地址,这些地址通常在同一网段 。
由于我们开了双模所以这个ESP8266也会作为一个路由器发送WFIE信号,就是这个没有密码且信号很强的这个
有些是ESP_xxxxx前缀是ESP 有些就是像我这样的,刚开始我也懵了,但是后缀是一样的
连接到TCP-server
为什么要连接到TCP服务器呢
连接到 TCP Server(TCP 服务器)是为了实现设备间的可靠数据通信。在物联网(IoT)场景中,ESP8266(作为客户端)通常需要与服务器交换数据(如上传传感器数据、接收控制指令),而 TCP 协议提供了稳定、有序、无差错的数据传输,适合这类场景。
Ipconfig可以查看当前的ip地址
怎么连接呢
6.AT+CIPSTART=\"TCP\",\"192.168.167.197\",8880
参数1是TCP服务器的意思,参数2是当前服务器的ip地址,这边我们是本地测试,用的是局域网,在自己电脑上安装的TCP服务器,所以TCP服务器的ip地址就是当前电脑连接wife的分配的ip地址,参数3是TCP服务器的端口号
连接之后我们要设置数据的传输模式
第一种是这样的
7.AT+CIPSEND=4 设置即将发送数据的长度 (数字4代表这里是4个字节)
只能发送4个字节的数据,一般汉字发两个,数字或者字符发4个(以4举例)
第二种
这个是最好用的
7.AT+CIPMODE=1 设置为数据传输模式为数据透传模式
AT+CIPCEND 开启数据传输
这个是数据透传模式,就是你可以随便发信息,多少个字符都不会被限制,这个两个一起使用
现在你就解锁了安信可这边可以通过物理的通道(TXD)向ESP8266发送数据,然后ESP8266执行指令通过IP与TCP服务器进行通信,TCP服务器那边也可以通过ip发送数据到ESP8266这边,ESP8266会通过物理通道(TXD)向安信可串口助手发送数据
通信原理是这样的(也是接线原理)