首页 » 通讯 » 国产之光wifi模块ESP8266的AT指令操作_函数_串口

国产之光wifi模块ESP8266的AT指令操作_函数_串口

admin 2024-12-24 14:48:39 0

扫一扫用手机浏览

文章目录 [+]

ESP8266 01

. . . .首先和大家说一下,ESP这颗芯片是国产的,而且远销外洋,原名是“乐鑫科技”在国外的热度也非常的高,尤其是在物联网领域,领头羊的存在。
(附上官网https://www.espressif.com/)

国产之光wifi模块ESP8266的AT指令操作_函数_串口 国产之光wifi模块ESP8266的AT指令操作_函数_串口 通讯

乐鑫的官网

国产之光wifi模块ESP8266的AT指令操作_函数_串口 国产之光wifi模块ESP8266的AT指令操作_函数_串口 通讯
(图片来自网络侵删)

. . . .大家可以看一下,各种资料相称全,是所有半导体官网我唯一能看的不吃力的官网(还有STC的也不吃了[含羞]),这几年乐鑫一贯在推自己的互助IDE,但是觉得不是很顺利,毕竟开拓了很多的SDK支持它,像是大略的Arduino、microPython这些也都支持,非常的方便。

. . . .本章节是想和大家说说,我良久以前用的AT指令集,这个AT指令集现在基本在市情不多见了,在迢遥的3G时期用的比较多。


但是我本日查了查资料,创造这个AT操作起来还挺方便,(自我觉得),只须要几个指令就行,也不须要什么配置。

部分AT指令集

教程开始:

1、查看模块的管脚分布:

管脚图

功能解释

. . . .管脚我们看一下,VCC、GND电源(3.3V),TXD、RXD的通讯接口,GPIO2通用上拉接口、这些好说,设置端口有RST复位,CH_PD使能芯片,GPIO0设置事情模式。

. . . .我们接线的时候设置一下,RST、CH_PD、GPIO0设置高电位---“外部禁止复位,芯片使能,Flash Boot事情模式”。

. . . .将我们的模块接到串口芯片上,可以去淘宝买一个16旁边一个,像是这样;

是不是很完美。
(记得下载驱动 CH340)

. . . .连接上往后,我们打开串口助手,发送“AT”,记得回车后发送;

串口助手

他会返回“OK”,表示呼应上了,这就模块驱动没有问题。

然后你看看你的手机或者条记本,是不是能搜到这样的一个wifi:

. . . .接下来我们发送一下AT指令:

. . . .到这一步,我们的wifi名字和密码都改了,我们连接上wifi,名称和密码是刚设置的“PPPTALK”,和“0123456789”。

. . . .打开网络助手:

网络助手

. . . .协议类型是TCP客户端,主机地址是我们设置的“192.168.1.88”,端口也是我们设置的“8888”,点“连接”,之后成功的话我们的串口助手会返回一条指令,解释连接成功。

. . . .现在我们不才面打字,发送,我们的wifi模块就会吸收到并打印在串口助手里面,是不是很大略,大家有兴趣可以看一下AT指令集和ESP的资料,实在太多。



. . . .详细怎么用单片机开拓的,我附上写的代码吧,不详细讲了,很大略,便是把指令集用串口发过去:

#include "config.h"#include "esp8266.h"#include "delay.h"#include "uart.h"//// 定义吸收数据数组和命令实行是否完成的标志位//uint8 rcvTable[50];uint8 flag = 0;//// 函数名称:Uart_Cmd_Display // 输入参数:str-发送的命令// 输出参数:无 // 函数功能:串口打印单片机向ESP8266发送的命令,便于不雅观察实现征象//void Uart_Cmd_Display(uint8 str){displayMode;Uart_Send_String(str);Uart_Send_String("\r\n");cmdMode;}//// 函数名称:Esp8266_Send_String // 输入参数:str-发送的命令// 输出参数:无 // 函数功能:向ESP8266模块发送命令//void Esp8266_Send_String(uint8 str){cmdMode;Uart_Send_String(str);Uart_Send_String("\r\n");}//// 函数名称:Esp8266_Sta_Mode // 输入参数:无// 输出参数:无 // 函数功能:ESP8266模块设置为STA模式// 把稳:忙旗子暗记检讨// 每发送一条命令一定要等待ESP8266完成操作后,再发送下一条命令//void Esp8266_Sta_Mode(void){Uart_Cmd_Display("setting sta mode...\r\n");flag=0;Uart_Cmd_Display("AT+RST"); //重启模块Esp8266_Send_String("AT+RST");//返回readywhile(flag!=0x02);flag=0;Uart_Cmd_Display("AT+CWMODE_CUR=1"); //设置为sta模式Esp8266_Send_String("AT+CWMODE_CUR=1");//返回OKwhile(flag!=0x01);flag = 0;Uart_Cmd_Display("AT+CWJAP_CUR=\"wifiname\",\"password\"");//连接到网络Esp8266_Send_String("AT+CWJAP_CUR=\"TP-LINK_WQ\",\"85462351\"");//返回OKwhile(flag!=0x01);flag = 0;Uart_Cmd_Display("AT+CIPMUX=1");//设置多连接Esp8266_Send_String("AT+CIPMUX=1");//返回OKwhile(flag!=0x01);flag = 0;Uart_Cmd_Display("AT+CIPSERVER=1,8888"); //设置为做事器,端口为8888Esp8266_Send_String("AT+CIPSERVER=1,8888");//返回OKwhile(flag!=0x01);flag = 0;Uart_Cmd_Display("AT+CIFSR"); //查询路由器分配的IP地址Esp8266_Send_String("AT+CIFSR");//返回OKwhile(flag!=0x01);flag = 0;Uart_Cmd_Display("sta mode is ready...\r\n"); }//// 函数名称:Esp8266_Show_IP // 输入参数:无// 输出参数:无 // 函数功能:串口打印路由器分配的IP地址//void Esp8266_Show_IP(uint8 ipData){uint8 j;for(j=10;j<28;j++){displayMode;Uart_Send_Char((ipData+j));cmdMode;}displayMode;Uart_Send_String("\r\n");cmdMode;}//// 函数名称:arryClear // 输入参数:dataArry// 输出参数:无 // 函数功能:数组元素清零//void arryClear(uint8 dataArry){uint8 i;for(i=0;i<50;i++){(dataArry+i)=0;}}//// 函数名称:Uart_Int // 输入参数:无// 输出参数:无 // 函数功能:串口中断做事程序// 紧张两个功能:// 1. 忙旗子暗记判断 - 单片机发送指令后,根据ESP8266反馈的信息判断指令是否完成// 2. 任务判断 - 单片机根据从ESP8266模块收到的信息,实行相应的动作(ledOn/ledOff)//void Uart_Int(void) interrupt 4 {static uint8 i = 0;if(TI){TI = 0;led = ~led;}else{RI = 0;rcvTable[i]=SBUF;if(i==50)i=0;i++;if(rcvTable[i-1]=='\n'){i = 0;if((rcvTable[0]=='O')&&(rcvTable[1]=='K')){Uart_Cmd_Display("OK\r\n");flag = 0x01;}else if((rcvTable[0]=='r')&&(rcvTable[1]=='e')&&(rcvTable[4]=='y')){Uart_Cmd_Display("ready\r\n");flag = 0x02;}else if((rcvTable[0]=='+')&&(rcvTable[10]=='I')&&(rcvTable[11]=='P')){Esp8266_Show_IP(rcvTable);}else if((rcvTable[1]==',')&&(rcvTable[3]=='O')&&(rcvTable[4]=='N')){displayMode;Uart_Send_String("Link ");Uart_Send_Char(rcvTable[0]);Uart_Cmd_Display(":Connected"); //显示连接设备}else if((rcvTable[1]==',')&&(rcvTable[3]=='L')&&(rcvTable[4]=='O')){displayMode;Uart_Send_String("Link ");Uart_Send_Char(rcvTable[0]);Uart_Cmd_Display(" Closed"); //显示断开设备}}else{if((rcvTable[0]=='+')&&(rcvTable[1]=='I')&&(rcvTable[2]=='P')&&(rcvTable[3]=='D')&& (rcvTable[4]==',')&&(rcvTable[9]=='l')&&(rcvTable[10]=='e')&&(rcvTable[11]=='d')&&(rcvTable[12]=='O')&&(rcvTable[13]=='f')&&(rcvTable[14]=='f')){displayMode;Uart_Send_String("Msg from Link ");Uart_Send_Char(rcvTable[5]);Uart_Cmd_Display(": ledOff"); //led offled = 1;arryClear(rcvTable);i = 0;}if((rcvTable[0]=='+')&&(rcvTable[1]=='I')&&(rcvTable[2]=='P')&&(rcvTable[3]=='D')&& (rcvTable[4]==',')&&(rcvTable[9]=='l')&&(rcvTable[10]=='e')&&(rcvTable[11]=='d')&&(rcvTable[12]=='O')&&(rcvTable[13]=='n')){displayMode;Uart_Send_String("Msg from Link ");Uart_Send_Char(rcvTable[5]);Uart_Cmd_Display(": ledOn"); //led onled = 0;arryClear(rcvTable);i = 0; } }}}

//// 包含头文件//#include "config.h"#include "esp8266.h"#include "delay.h"#include "uart.h"//// main函数//int main(void){Delay500ms();Delay500ms();power = 0;UartInit();Esp8266_Sta_Mode();while(1);}

. . . .这因此前51单片机开拓的,说实话,现在我自己都看不明白了,还是要做Arduino,这个实在是太难。

希望大家能给我个点赞和关注!

感激了!

更新不易!

支持原创!

[感激][感激]

标签:

相关文章

RS-485通讯常见问题_接口_终端

小编1. MAX488/MAX490在点对点通信中事情很正常,为何在点对多点通信时无法正常通信?由于MAX488/MAX490没有...

通讯 2024-12-26 阅读0 评论0

IT投入曲线,介绍科技发展的助推器

随着科技的飞速发展,信息技术(IT)已成为推动社会进步的重要力量。而IT投入曲线,作为衡量IT行业发展趋势的重要指标,更是备受关注...

通讯 2024-12-26 阅读0 评论0

IT技能介绍,助力职场精英的崛起之路

在信息化时代,IT技术已成为推动社会进步的重要力量。随着科技的飞速发展,IT行业人才需求日益旺盛,竞争也愈发激烈。为了帮助职场精英...

通讯 2024-12-26 阅读0 评论0