完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 rob1983 于 2015-9-11 09:46 编辑
44. ESP8266串口WiFi模块 云服务器 测试程序.rar
(67.99 KB, 下载次数: 539
)
哈哈哈,即便不那么懂单片机,按照操作步骤,也可以在地球任何可以上网的地方,控制家里想要控制的东东啦。 ESP8266和单片机IAP15W4K58S4是通过串口通信的,除了电源就两根线…… /************************************************************************************ Copyright, LCE STUDIO 程序名称:ESP8266 云连接控制程序(18.432MHz) 功能说明: 该程序将ESP8266设置为STAtiON工作模式,并通过家用wifi热点云服务器建立连接, 手机APP通过注册后并关联该ESP8266模块,通过互联网发送关灯与开灯的指令, 单片机解析后执行 串口1波特率为9600,用于后台监控 串口2波特率为115200,用于与ESP8266模块进行通信 程序版本:1.0 (2015/09) ************************************************************************************/ #include "stc15f2k60s2.h" // 单片机STC15F2K60S2头文件,可以不再加入reg51.h #include #include "delay.h" // 延时函数头文件 #include "uart.h" // 串行通信函数头文件 #include ***it RST = P2^6; ***it LED1 = P5^0; ***it LED2 = P5^1; ***it LED3 = P5^2; #define Buf_Max 50 unsigned char xdata Rec_Buf[Buf_Max]; unsigned char i = 0; void CLR_Buf(void); bit Hand(unsigned char *a); char code str1[]="AT "; // 联机指令,返回"OK" char code str2[]="AT+CWMODE=1 "; // 设置ESP8266的工作模式,返回"OK"或者"no change" char code str3[]="AT+CWJAP="WiFi362","1234567890" "; // 连接到WiFi热点,lces为热点名称,88518851为密码;连接成功返回“OK” char code str4[]="AT+CIFSR "; // 本机IP地址查询指令 char code str5[]="AT+CIPSTART="TCP","192.168.191.1",8234 "; // 连接到TCP服务器,返回“Linked” char code str6[]="AT+CIPSEND=6 "; // 发送数据指令 char code str7[]="hello! "; // 数据内容 char code AT_CLDSTART[]="AT+CLDSTART "; char code AT_SMARTLINK[]="AT+CWSMARTSTART=1 "; char code AT_LANSTART[]="AT+LANSTART "; void main() // 主函数 { RST = 1; // ESP8266复位功能脚,拉低会将ESP8266复位 UartInit(); // 初始化串口 ES = 1; // 串口1中断打开 IE2 = 0x01; // 串口2中断打开 EA = 1; // 总中断打开 DelayMS(1000); // 延时一段时间,让ESP8266启动 DelayUS(100); U1SendString(Rec_Buf); // 将ESP8266启动信息通过串口1打印出 U1SendString(" "); U1SendString("Welcome to LSE STUDIO, Please wait while we are getting the device ready "); CLR_Buf(); //清除缓存内容 while(!Hand("OK")) //判断是否握手成功,如果不成功延时一会,再发送AT握手指令 { U2SendString(str1); //发送联机指令 DelayMS(500); } CLR_Buf(); //清除缓存内容 U1SendString("OK,Succee Establish connection with ESP8266 "); LED1 = 0; while(!(Hand("OK")|Hand("no change"))) //判断是否设置成功,如不成功,延时后再次发送 { U2SendString(str2); //发送设置ESP8266工作模式指令 DelayMS(500); } CLR_Buf(); U1SendString("OK,ESP8266 has been set as Station Mode "); U1SendString("OK,Plese Press The Smartlink buttom "); DelayMS(1000); U2SendString(AT_SMARTLINK); DelayMS(1000); do //此循环完成SMARTLINK 的配置 { LED1=1; DelayMS(500); LED1=0; DelayMS(500); // U1SendString(Rec_Buf); }while(strstr(Rec_Buf,"WIFI GOT")==NULL); //此循环完成SMARTLINK 的配置 U1SendString("OK,ESP8266 is configured as SMARTLINK!"); CLR_Buf(); U2SendString(AT_CLDSTART); //加入安信可云 DelayMS(1000); do //此循环完成安信可云的配置 { LED1=1; DelayMS(500); LED1=0; DelayMS(500); // U1SendString(Rec_Buf); }while(strstr(Rec_Buf,"OK")==NULL); //此循环完成SMARTLINK 的配置 U1SendString("OK,ESP8266 is Linked with Cloud Sever! "); CLR_Buf(); U2SendString(AT_LANSTART);//开启内网模式(此模式下,模组会用内网回应手机APP 要查询的ID 和KEY) DelayMS(1000); do //此循环完成安信可云的配置 { LED1=1; DelayMS(500); LED1=0; DelayMS(500); // U1SendString(Rec_Buf); }while(strstr(Rec_Buf,"OK")==NULL); //此循环完成SMARTLINK 的配置 U1SendString("OK,ESP8266 Internal LAN mode is Started! "); while (1) // 主循环 { if(Hand("LIGHT:0")) // 收到“openled1”的指令 { ES = 0; IE2 = 0x00; LED1 = 0; LED2 = 0; LED3 = 0; CLR_Buf(); U1SendString("Command: LEDs turn on, Executed! "); ES = 1; IE2 = 0x01; } else if(Hand("LIGHT:1")) // 收到“openled2”的指令 { ES = 0; IE2 = 0x00; LED1 = 1; LED2 = 1; LED3 = 1; CLR_Buf(); U1SendString("Command: LEDs turn off, Executed! "); ES = 1; IE2 = 0x01; } } } bit Hand(unsigned char *a) { if(strstr(Rec_Buf,a)!=NULL) return 1; else return 0; } void CLR_Buf(void) { unsigned char k; for(k=0;k Rec_Buf[k] = 0; } i = 0; } void Uart1() interrupt 4 using 1 { ES = 0; if (RI) { RI = 0; //清除RI位 Rec_Buf = SBUF; i++; if(i>Buf_Max) { i = 0; } } if (TI) { TI = 0; //清除TI位 } ES = 1; } void Uart2() interrupt 8 using 1 { IE2 = 0x00; if (S2CON & S2RI) { S2CON &= ~S2RI; Rec_Buf = S2BUF; i++; if(i>Buf_Max) { i = 0; } } if (S2CON & S2TI) { S2CON &= ~S2TI; } IE2 = 0x01; } ` |
|
相关推荐
15个回答
|
|
没朋友需要吗,自己顶一下
|
|
|
|
谢楼主分享谢楼主分享
|
|
|
|
刚接触到这个模块,还都不懂,谢谢楼主的分享
|
|
|
|
楼主,有没有网页版的
|
|
|
|
我顶~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
大侠,学习了,我也正打算做一个试试,有一个问题就是 你那个APP在哪里可以下载啊? 拜托
|
|
|
|
楼主《我想找你帮帮忙,我刚刚接触这款WIFI模块还不怎么会用,希望楼主能指点
|
|
|
|
THANK U VERY MUCH !!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
|
|
|
谢谢楼主,感谢楼主分享
|
|
|
|
dng
|
|
|
|
学习一下。。。。。。。。。。。。。。。。。。。。。。。。。。。。
|
|
|
|
谢谢分享,学习了。
|
|
|
|
MARK!!!!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
195 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
172 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
453 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
697 浏览 2 评论
602 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11982 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 00:43 , Processed in 1.009794 second(s), Total 100, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号