基于C51单片机的ESP8266Wifi模块(ESP 您所在的位置:网站首页 esp8266wifi模块接入米家 基于C51单片机的ESP8266Wifi模块(ESP

基于C51单片机的ESP8266Wifi模块(ESP

2024-07-10 08:49| 来源: 网络整理| 查看: 265

1、模块简介 ESP-01S 是由安信可科技开发的 Wi-Fi 模块,该模块核心处理器为ESP8266。ESP8266 拥有完整的且自成体系的 Wi-Fi 网络功能,既能够独立应用,也可以作为从机搭载于其他主机 MCU 运行。当 ESP8266 独立应用时,能够直接从外接flash 中启动。内置的高速缓冲存储器有利于提高系统性能,并且优化存储系统。另外⼀种情况是, ESP8266 只需通过 SPI/SDIO 接口或UART 接口即可作为Wi-Fi适配器,应用到基于任何微控制器设计中。具体介绍请参照产品官网esp8266详细介绍

2、AT指令介绍 作为一种通信模块,esp-01s同样基于AT指令设计。AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。 3、调试工具

安信可串口调试助手网络调试助手

4、模块波特率配置和验证 ESP-01s出厂波特率正常是115200。 (1) 上电后,通过串口输出一串系统开机信息,有的模块可能会出现乱码,以最后输出ready为准。 (2)上电后发送AT指令测试通信及模块功能是否正常。注意:AT指令,控制类都要加回车,数据传输时不加回车。 在这里插入图片描述 (3)通过命令配置成9600波特率 在这里插入图片描述 5、入网设置

(1)设置工作模式 在这里插入图片描述

(2)连接外网 在这里插入图片描述

(3)查询IP地址 在这里插入图片描述 6、连接TCP server,发送数据 (1)打开网络调试助手,设立TCP服务器 在这里插入图片描述

(2)连接服务器 在这里插入图片描述

(3)发送数据 在这里插入图片描述

7、透传模式 连接服务器后即可开启透传模式。 在这里插入图片描述 退出透传 在这里插入图片描述

8、代码编写

功能实现:模块与电脑连接上同一WIFI,位于同一局域网内。通过透传模式,互相通信。 效果展现:刚开始时,单片机D5,D6灭,连接上电脑服务器端后,D5,D6亮,此时网络调试助手上不断出现Hello字样,通过网络调试助手发送L1时,D5亮,发送L0时,D5灭。(ps:注意不同类型C51单片机引脚定义) 代码如下:

#include "reg52.h" #include "string.h" #define SIZE 12 sbit D5=P3^7; sbit D6=P3^6; sfr AUXR = 0x8E; char buffer[SIZE]; code char connect[] = "AT+CWJAP=\"WIFI名\",\"密码\"\r\n"; code char connect_server[] = "AT+CIPSTART=\"TCP\",\"联网IP\",端口号\r\n"; char mode[] = "AT+CIPMODE=1\r\n"; //开启透传模式 char send_data[] = "AT+CIPSEND\r\n"; //数据传输开始指令 char AT_OK_Flag = 0; //OK返回值的标志位 char AT_Connect_Net_Flag = 0; //WIFI GOT IP返回值的标志位 void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } void UartInit() //[email protected] { AUXR = 0x01; SCON = 0x50;//配置串口工作方式1,REN使能接收 TMOD &= 0x0F; TMOD |= 0x20;//配置定时器1工作方式8位重载 TH1=0xFD; TL1=0xFD; //9600波特率的初值 TR1=1;//启动定时器 EA = 1;//开启总中断 ES = 1;//开启串口中断 } void sendByte(char data_msg) { SBUF = data_msg; while(!TI); TI=0; } void sendString(char* str) { while(*str != '\0'){ sendByte(*str); str++; } } void Connect_service() { int i=1; while(i){ sendString(connect); while(!AT_OK_Flag); AT_OK_Flag = 0; //发送连服务器指令并等待成功 sendString(connect_server); while(!AT_OK_Flag); AT_OK_Flag = 0; //发送透传模式指令并等待成功 sendString(mode); while(!AT_OK_Flag); AT_OK_Flag = 0; //发送数据传输指令并等待成功 sendString(send_data); while(!AT_OK_Flag); if(AT_Connect_Net_Flag){ D5=0; //点亮D5,代表连接服务器并打开透传模式成功 } if(AT_OK_Flag){ D6=0; //点亮D6,代表连接服务器并打开透传模式成功 i=0; } } } void main() { D5=D6=1;//灭状态灯 UartInit(); //配置C51串口的通信方式 Delay1000ms();//给esp8266模块上电时间 //发送联网AT指令 Connect_service(); while(1){ Delay1000ms(); sendString("hello\r\n"); } } void Uart_Handler() interrupt 4 { static int i=0; //静态变量,被初始化一次 char tmp; if(RI) //中断处理函数中,对于接收中断的响应 { RI = 0;//清除接收中断标志位 tmp = SBUF; if(tmp == 'W' || tmp == 'O' || tmp == 'F' || tmp=='L' || tmp == 'E' || tmp == "?"){ i=0; } buffer[i++] = tmp; //连接服务器等OK返回值指令的判断 if(buffer[0] == 'O' && buffer[1] == 'K'){ AT_OK_Flag = 1; AT_Connect_Net_Flag = 1; memset(buffer,'\0',SIZE); } //联网失败出现FAIL字样捕获 if(buffer[0] == 'F' && buffer[1] == 'A'){ for(i=0; i for(i=0; i for(i=0; i D5=0; memset(buffer,'\0',SIZE); } if(buffer[0] == 'L' && buffer[1] == '0'){ D5=1; memset(buffer,'\0',SIZE); } if(i==12) i=0;//发送中断 } }

ESP-01s作服务器 USB转TTL插入电脑,接线:TX-RX,RX-TX VCC-3.3V GND-GND 注意:确保电脑连接上ESP-01s,可以去电脑WLAN图标那里查看。连接上模块发出的WIFI信号,WIFI图标上没有带锁的那个。 模块基本配置如下:

//1 配置成双模 AT+CWMODE=2 Response :OK //2 使能多连接 AT+CIPMUX=1 Response :OK //3 建立TCPServer(要提前打开网络调试助手,才会连上。连上后会有0:CONNECT字样 AT+CIPSERVER=1 // default port = 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

代码书写逻辑与前面部分类似,只需动一下上述配置即可,不再赘述。 9、白盒测试代码可行性 接线图如下: 在这里插入图片描述 通过下图发送模拟: 在这里插入图片描述

10、结语 有什么问题,欢迎留言讨论。遇到问题,莫急莫慌,寻找解决方案,通过现象,查看代码逻辑。学会调试,解决bug。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有