当前位置:   article > 正文

Esp8266-01s学习(一):作为设备模式连接服务器,与stc51单片机相连,通过串口通信点亮led灯。_esp01的波特率怎么查

esp01的波特率怎么查

目录

一、波特率的配置

二、入网设置

     1、设置工作模式

       2、以设备模式接入家中路由器配置

          3、查询IP地址

三、 连接到TCPserver并发送数据

            1. 开关网络助手,设立TCP服务器

              2. 连接服务器

              3 . 发送数据  

              4、数据透传

四、esp8266-01s与stc51单片机相连,通过串口通信点亮led灯

1.直接上代码


一、波特率的配置

 ESP-01s 出厂波特率正 常是 115200, 注意: AT 指令,控制类都要加回车,数据传输时不加回车
     1、上电后发送 AT 指令测试通信及模块功能是否正常
AT
OK
     2、通过一下命令配置成 9600 波特率
AT+UART=9600,8,1,0,0
注:8表示数据位,1表示停止位,后面两个0分别表示校验位和流控位

二、入网设置

     1、设置工作模式

AT + CWMODE = 3 //1. station (设备)模式 2. AP (路由)模式 3. 是双模
OK      //结果

       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 + CIPSEND = 5 // 设置即将发送数据的长度 (这里是5 个字节)
>hello   // 看到大于号后,输入消息,hello ,不要带回车
Response : SEND OK // 结果:成功
// 注意,这种情况下,每次发送前都要先发送AT+CIPSEND=长度 的指令,再发数据!

              4、数据透传

由于发送数据要设置数据的长度,比较麻烦,如果设置为透传,就可以不设置数据长度,想发多少就多少

AT + CIPMODE = 1 // 开启透传模式
Response : OK
AT + CIPSEND // 带回车
Response : > // 这个时候随意发送接收数据咯

  退出透传

//在透传发送数据过程中,若识别到单独的包数据 “+++”,则退出透传发送            

四、esp8266-01s与stc51单片机相连,通过串口通信点亮led灯

1.直接上代码

  1. #include "reg52.h"
  2. #include<intrins.h>
  3. #include<string.h>
  4. #define SIZE 12
  5. sbit led1=P3^7;
  6. sbit led2=P3^6;
  7. sfr AUXR=0x8E;
  8. char buffer[SIZE];
  9. code char LJWL[] ="AT+CWJAP=\"5613\",\"12345678\"\r\n"; //转意在两双引号之前,以设备模式接入家中路由器配置
  10. code char LJFWQ[]="AT+CIPSTART=\"TCP\",\"100.117.64.126\",8888\r\n";//连接TCP server
  11. char TCMS[] ="AT+CIPMODE=1\r\n"; //透传
  12. char SJCS[] ="AT+CIPSEND\r\n"; //发送数据
  13. char RESET[] = "AT+RST\r\n"; //重启模块指令
  14. char AT_OK_Flag=0;
  15. char AT_Connect_Net_flag=0;
  16. void Delay1000ms() //@11.0592MHz
  17. {
  18. unsigned char i, j, k;
  19. _nop_();
  20. i = 8;
  21. j = 1;
  22. k = 243;
  23. do
  24. {
  25. do
  26. {
  27. while (--k);
  28. } while (--j);
  29. } while (--i);
  30. }
  31. void UartInit(void) //9600bps@11.0592MHz
  32. {
  33. SCON=0x50;//配置串口方式1,REN使
  34. TMOD &= 0xF0;
  35. TMOD|=0x20;//配置定时器1模式8位自动
  36. TH1 =0xFD;
  37. TL1 =0xFD;//9600的波特率
  38. TR1=1;//启动定时器
  39. AUXR=0x01;
  40. EA=1;//打开总中断
  41. ES=1;//打开串口中断
  42. }
  43. void sendByte(char data_msg)
  44. {
  45. SBUF=data_msg;
  46. while(TI==0);//发送中断
  47. TI=0;
  48. }
  49. void sendstring(char *str)
  50. {
  51. while(*str!='\0')
  52. {
  53. sendByte(*str);
  54. str++;
  55. }
  56. }
  57. void main()
  58. {
  59. int mark=0;
  60. led1=1;//灭灯状态
  61. //配置C51串口的通信方式
  62. UartInit();
  63. Delay1000ms();//给wifi模块上电时间
  64. sendstring(LJWL);
  65. while(!AT_Connect_Net_flag);
  66. while(!AT_OK_Flag);
  67. AT_OK_Flag = 0;
  68. //发送连服务器指令并等待成功
  69. sendstring(LJFWQ);
  70. while(!AT_OK_Flag);
  71. AT_OK_Flag=0;
  72. //发送透传模式指令并等待成功
  73. sendstring(TCMS);
  74. while(!AT_OK_Flag);
  75. AT_OK_Flag=0;
  76. //发送数据传输指令并等待成功
  77. sendstring(SJCS);
  78. while(!AT_OK_Flag);
  79. AT_OK_Flag=0;
  80. if(AT_Connect_Net_flag)
  81. {
  82. led1=0;//点亮led1,代表入网成功
  83. }
  84. while(1)
  85. {
  86. Delay1000ms();
  87. //往发送缓冲区写入数据,就完成数据得发送
  88. sendstring("shangguan shuai");
  89. }
  90. }
  91. void Uart_Handler() interrupt 4
  92. {
  93. char tmp;
  94. static int i=0;//静态变量,被初始化一次
  95. if(RI)//中断处理函数中,对于接收中断的响应
  96. {
  97. RI=0;
  98. tmp=SBUF;//一个字母一个字母的输入
  99. //tmp=='W'||tmp=='O'||tmp=='L'||tmp=='F'
  100. if(tmp=='W'||tmp=='O'||tmp=='A'||tmp=='P')
  101. {
  102. i=0;
  103. }
  104. buffer[i++]=tmp;
  105. //入网成功的判断依据WIFI GOT IP
  106. if(buffer[0]=='W'&& buffer[5]=='G')
  107. {
  108. AT_Connect_Net_flag=1;
  109. memset(buffer,'\0',SIZE);
  110. }
  111. //连接服务器等OK返回值指令的判断
  112. if(buffer[0]=='O'&& buffer[1]=='K')
  113. {
  114. AT_OK_Flag=1;
  115. memset(buffer,'\0',SIZE);
  116. }
  117. //联网失败出现FAIL字样捕获
  118. if(buffer[0] == 'A' && buffer[2] == 'L'){
  119. for(i=0;i<2;i++){
  120. led1 = 0;
  121. Delay1000ms();
  122. led1 = 1;
  123. Delay1000ms();
  124. }
  125. sendstring(RESET);
  126. memset(buffer, '\0', SIZE);
  127. }
  128. //灯控指令
  129. if(buffer[0]=='P'&& buffer[2]=='1')
  130. {
  131. led1=0;//点亮了led1
  132. memset(buffer, '\0', SIZE);
  133. }
  134. if(buffer[0]=='P'&& buffer[2]=='0')
  135. {
  136. led1=1;//熄灭led1
  137. memset(buffer, '\0', SIZE);
  138. }
  139. if(i==12)
  140. {
  141. i=0;
  142. }
  143. }
  144. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/440867
推荐阅读
相关标签
  

闽ICP备14008679号