2、以设备模式接入家中路由器配置
AT
+
CWJAP“wifi名称”
,
“wifi密码”
//
指令WIFI CONNECTED
//
结果WIFI GOT IP
//
结果
3、查询IP地址
AT
+
CIFSR
//
指令//结果
CIFSR
:
APIP
,
“192.168.4.1” //表示ESP作为路由器的ip地址
CIFSR
:
APMAC
,
“4e:75:25:0d:ae:2f”
CIFSR
:
STAIP
,
“192.168.0.148” //连接服务器的ip地址
CIFSR
:
STAMAC
,
“4c:75:25:0d:ae:2f”OK
三、 连接到TCPserver并发送数据
1. 开关网络助手,设立TCP服务器
2. 连接服务器
AT
+
CIPSTART“TCP”
,
“100.117.98.129”
,
8888
//
指令,注意双引号逗号都要半角
(
英文
)
输入CONNECT
//
结果:成功OK
//
结果:成功
3 . 发送数据
AT
+
CIPSEND5
//
设置即将发送数据的长度 (这里是5
个字节)hello
//
看到大于号后,输入消息,hello
,不要带回车Response
:
SEND OK
//
结果:成功//
注意,这种情况下,每次发送前都要先发送AT+CIPSEND=长度 的指令,再发数据!
4、数据透传
由于发送数据要设置数据的长度,比较麻烦,如果设置为透传,就可以不设置数据长度,想发多少就多少
AT
+
CIPMODE1
//
开启透传模式Response
:
OKAT
+
CIPSEND
//
带回车Response
://
这个时候随意发送接收数据咯
退出透传
//在透传发送数据过程中,若识别到单独的⼀包数据 “+++”,则退出透传发送
四、esp8266-01s与stc51单片机相连,通过串口通信点亮led灯
1.直接上代码
#include "reg52.h"
#include<intrins.h>
#include<string.h>
#define SIZE 12
sbit led1=P3^7;
sbit led2=P3^6;
sfr AUXR=0x8E;
char buffer[SIZE];
code char LJWL[] ="AT+CWJAP=\"5613\",\"12345678\"\r\n"; //转意在两双引号之前,以设备模式接入家中路由器配置
code char LJFWQ[]="AT+CIPSTART=\"TCP\",\"100.117.64.126\",8888\r\n";//连接TCP server
char TCMS[] ="AT+CIPMODE=1\r\n"; //透传
char SJCS[] ="AT+CIPSEND\r\n"; //发送数据
char RESET[] = "AT+RST\r\n"; //重启模块指令
char AT_OK_Flag=0;
char AT_Connect_Net_flag=0;
void Delay1000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 8;
j = 1;
k = 243;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void UartInit(void) //9600bps@11.0592MHz
{
SCON=0x50;//配置串口方式1,REN使
TMOD &= 0xF0;
TMOD|=0x20;//配置定时器1模式8位自动
TH1 =0xFD;
TL1 =0xFD;//9600的波特率
TR1=1;//启动定时器
AUXR=0x01;
EA=1;//打开总中断
ES=1;//打开串口中断
}
void sendByte(char data_msg)
{
SBUF=data_msg;
while(TI==0);//发送中断
TI=0;
}
void sendstring(char *str)
{
while(*str!='\0')
{
sendByte(*str);
str++;
}
}
void main()
{
int mark=0;
led1=1;//灭灯状态
//配置C51串口的通信方式
UartInit();
Delay1000ms();//给wifi模块上电时间
sendstring(LJWL);
while(!AT_Connect_Net_flag);
while(!AT_OK_Flag);
AT_OK_Flag = 0;
//发送连服务器指令并等待成功
sendstring(LJFWQ);
while(!AT_OK_Flag);
AT_OK_Flag=0;
//发送透传模式指令并等待成功
sendstring(TCMS);
while(!AT_OK_Flag);
AT_OK_Flag=0;
//发送数据传输指令并等待成功
sendstring(SJCS);
while(!AT_OK_Flag);
AT_OK_Flag=0;
if(AT_Connect_Net_flag)
{
led1=0;//点亮led1,代表入网成功
}
while(1)
{
Delay1000ms();
//往发送缓冲区写入数据,就完成数据得发送
sendstring("shangguan shuai");
}
}
void Uart_Handler() interrupt 4
{
char tmp;
static int i=0;//静态变量,被初始化一次
if(RI)//中断处理函数中,对于接收中断的响应
{
RI=0;
tmp=SBUF;//一个字母一个字母的输入
//tmp=='W'||tmp=='O'||tmp=='L'||tmp=='F'
if(tmp=='W'||tmp=='O'||tmp=='A'||tmp=='P')
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/0f83b4d88b1a22c34b7e6b2b6c626f44.png)
![img](https://img-blog.csdnimg.cn/img_convert/9ea0b46ae409d4a6c774eeb9eb4bac7a.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/5167cbd936290955630594b39cc9cf62.png)
![img](https://img-blog.csdnimg.cn/img_convert/5971a6be63853e236796eaf7ab07e391.png)
![img](https://img-blog.csdnimg.cn/img_convert/e5de3a0cc355dd91aca5bed79f4ba5b5.png)
![img](https://img-blog.csdnimg.cn/img_convert/888f17104c6ab80767a20cda07341b88.png)
![](https://img-blog.csdnimg.cn/img_convert/f7bca8c33776bf7b66c92e18206c4630.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
4)]
[外链图片转存中...(img-HwHiU6Gy-1715557696615)]
[外链图片转存中...(img-n00dYNU9-1715557696615)]
[外链图片转存中...(img-oF3jsqkL-1715557696616)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!