标题: 用51单片机和esp8266实现通过手机app控制单片机小灯 [打印本页]
作者: Floray002 时间: 2017-11-30 18:49
标题: 用51单片机和esp8266实现通过手机app控制单片机小灯
用51单片机和esp8266实现通过手机app控制单片机小灯,也可以控制其他外设,可以自行添加。附件为源程序,app可使用附件里面的安卓手机测试app或者ios系统可以去apple store下载netassist使用。
设计目的:
给所有客户提供一个标准全功能而又经济适用的体验平台!客户拿到手直接测试,而
没有任何争议的环节。
本测试板能完成什么:
拥有本测试板,你可以无需任何其他开发工具,对ESP8266 模块进行AT 类应用与SDK类应用开发。
简单的演示功能:用安卓手机做的一个控制界面,用手机WIFI 和板载WIFI 进行数据交互,让手机控制 板载WIFI 输出数据,板载CPU 收到数据后控制板载LED,和蜂鸣器的动作!当然你还可以进过串口调试工具,直接对板载WIFI 模块进行手动测试!
测试版是一块51/AVR开发板,MCU可更换,板上资源丰富。既可以学习WiFi又能学习单片机,一举两得
下面是收到测试版后的简单说明:
1. 默认收到的开发板内有开发板测试程序,使用WiFi功能时,需要用户把程序烧写到单片机(程序烧写见“KR-51程序烧写说明”)。
2.烧写完程后,连接蓝牙模块,如下图;
上图为收到开发板的跳线的跳线帽位置,只需插USB供电,或者插上独立供电电源供电(独立供电电源不小于5V/600mA)。上电后如果电源灯不亮,请尝试多次开关(左上角开关)。正常上电后可看到模块蓝灯在间歇性闪烁,这是MCU在配置模块作为服务端,在灯无闪烁后,可以在手机上搜索到ESP8266的WiFi名称,安卓手机设置里可以看到这个WIFI,如下图
连上这个WIFI,打开手机端APP(在测试版程序文件夹里),等待模块蓝灯停止闪烁,直接点连接,可以控制LED,蜂鸣器。
- 如果以上试过后无反应,依旧提示连接失败,请检查模块波特率和单片机是否一致。
上图:(注:此跳线用跳线帽短接3,5 和4,6,代表USB_UART和模块的串口直连,)

查看波特率方法:模块:打开03_调试工具里的“SSCOM”串口调试助手,如果这样显示 代表模块工作在115200波特率下,如果不是,可调节波特率(一般是115200或者9600),直到输出正常字符。这时可通过AT+CIOBAUD=9600,改为9600的波特率. (更多指令请参照指令说明设置)
恢复连接,插上模块,重新连接
单片机源程序如下:
- /**************************************************************************************
- *功能:Wifi模块测试 *
- *说明:手机安装测试APP,手机连接WiFi模块,控制开发板上的LED、蜂鸣器 *
- *硬件连接:在J10处插上跳线帽 1,3用跳线短路 2,4用跳线短路 *
- *作者:研发中心 *
- ***************************************************************************************/
- #include <REGX52.H>
- #include<intrins.h>
- typedef unsigned int uint;
- typedef unsigned char uchar;
- /**串口数据使用**/
- #define RX1_Lenth 32 //串口接收缓冲长度
- uchar idata RX1_Buffer[RX1_Lenth]; //接收缓冲
- uchar TX1_Cnt; //发送计数
- uchar RX1_Cnt; //接收计数
- bit B_TX1_Busy; //发送忙标志
- /************* 端口引脚定义 **************/
- sbit LED1=P1^0;//LED1
- sbit LED2=P1^1;//LED2
- sbit LED3=P1^2;//LED3
- sbit DK1=P1^3;//继电器
- sbit BEEP=P2^5;//蜂鸣器
- /**wifi模块命令**/
- unsigned char RST[8]="AT+RST\r\n";
- unsigned char LYMS[13]="AT+CWMODE=2\r\n";
- //unsigned char SZLY[38]="AT+CWSAP='ESP8266','0123456789',11,0\r\n";
- unsigned char SZDLJ[13]="AT+CIPMUX=1\r\n";
- unsigned char KQFU[21]="AT+CIPSERVER=1,5000\r\n";
- unsigned char FSSJ[13]="AT+CIPSEND=\r\n";//AT+CIPSEND= 发送数据
- void Delay2(unsigned long cnt)
- {
- long i;
- for(i=0;i<cnt*100;i++);
- }
- void Delay3(unsigned int N)
- {
- int i;
- for(i=0;i<N*10;i++);
- }
- /********************************************************************
- * 名称 : Uart_Init()
- * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中断
- * 输入 : 无
- * 输出 : 无
- ***********************************************************************/
- void Uart_Init(void)
- {
- TMOD = 0x20; //定时器工作在定时器1的方式2
- PCON = 0x00; //不倍频
- SCON = 0x50; //串口工作在方式1,并且启动串行接收
- TH1 = 0xFd; //设置波特率 9600
- TL1 = 0xFd;
- TR1 = 1; //启动定时器1
- ES = 1; //开串口中断
- EA = 1; //开总中断
- RX1_Cnt=0; //接受计数清零
- TX1_Cnt = 0; //发送计数清零
- B_TX1_Busy = 0;//初始化判忙标志位
- }
- /********************************************************************
- * 名称 : Main()
- * 功能 : 主函数
- * 输入 : 无
- * 输出 : 无
- ***********************************************************************/
- void main(void)
- {
- char i=0;
- Uart_Init();
- Delay3(2000);
- /******************设置WiFi模块**********************************************/
- for(i=0;i<8;i++)//AT+RST 重启
- {
- SBUF=RST[i];Delay3(5);
- }
- Delay3(5000);
- for(i=0;i<13;i++)//AT+CWMODE=2 设置成路由模式
- {
- SBUF=LYMS[i];Delay3(5);
- }
- /*Delay3(1000);
- for(i=0;i<38;i++)//AT+CWSAP="ESP8266","0123456789",11,0 设置路由
- {
- SBUF=SZLY[i];Delay3(5);
- }*/
- Delay3(3000);
-
- for(i=0;i<13;i++)//AT+CIPMUX=1 设置成多连接
- {
- SBUF=SZDLJ[i];Delay3(5);
- }
- Delay3(2000);
- for(i=0;i<21;i++)//AT+CIPSERVER=1,5000 开启TCP服务端口
- {
- SBUF=KQFU[i];Delay3(5);
- }
- Delay3(2000);
- while (1)
- {
-
- }
- }
- /********************************************************************
- * 名称 : Uart_Int()
- * 功能 : 串口中断子函数
- * 输入 : 无
- * 输出 : 无
- ***********************************************************************/
- void UART1_int (void) interrupt 4
- {
- // char i,a,b,c;
- if(RI)
- {
- RI = 0;
- RX1_Buffer[RX1_Cnt] = SBUF; //保存一个字节
- if(RX1_Buffer[0]==0x45)
- {
- RX1_Cnt++;
- }
- else
- {
- RX1_Cnt=0;
- }
- if(RX1_Cnt>=10)
- {
- if(RX1_Buffer[0]==0x45&&RX1_Buffer[1]==0x53&&RX1_Buffer[2]==0x50)
- {
- if(RX1_Buffer[4]==0x4C&&RX1_Buffer[5]==0x45&&RX1_Buffer[6]==0x44)//判断LED
- {
- if(RX1_Buffer[7]==0x31)//判断LED1
- {
- if(RX1_Buffer[3]==0x4B)//判断开
- {
- LED1=0;
- }
- if(RX1_Buffer[3]==0x47)//判断关
- {
- LED1=1;
- }
- }
- if(RX1_Buffer[7]==0x32)//判断LED2
- {
- if(RX1_Buffer[3]==0x4B)//判断开
- {
- LED2=0;
- }
- if(RX1_Buffer[3]==0x47)//判断关
- {
- LED2=1;
- }
- }
- if(RX1_Buffer[7]==0x33)//判断LED3
- {
- if(RX1_Buffer[3]==0x4B)//判断开
- {
- LED3=0;
- }
- if(RX1_Buffer[3]==0x47)//判断关
- {
- LED3=1;
- }
- }
- }
- if(RX1_Buffer[4]==0x4A&&RX1_Buffer[5]==0x44&&RX1_Buffer[6]==0x51)//判断继电器
- {
- if(RX1_Buffer[7]==0x31)//判断LED1
- {
- if(RX1_Buffer[3]==0x4B)//判断开
- {
- DK1=1;
- }
- if(RX1_Buffer[3]==0x47)//判断关
- {
- DK1=0;
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
以上资料51hei下载地址:
wifi测试程序.zip
(2.46 MB, 下载次数: 1249)
作者: Floray002 时间: 2017-12-1 11:39
以上实验图片来自此款开发板卖家提供的资料
作者: Floray002 时间: 2017-12-1 11:43
这幅图为自己使用苹果手机进行的调试,经检测,板子上的3.3V实际上不够这个电压,所以esp8266模块的供电是使用电池从外部供电的,还有就是实现时,注意各个模块供地。
-
9D69A02DBC8C474946010FD2B3764EE3.png
(120.2 KB, 下载次数: 258)
实验图
作者: Floray002 时间: 2017-12-3 09:11
我全部的资料都分享在上面了
作者: 永远的lgz 时间: 2018-1-7 22:01
楼主,我的手机用不了你这个软件,怎么回事
作者: chengfgc 时间: 2018-2-1 11:33
APP用不了,怎么回事呢?
作者: bhjyqjs 时间: 2018-2-9 08:49
好贴,谢谢楼主!
作者: youcanyouup 时间: 2018-4-9 18:29
ESP8266需要烧写吗?
作者: jjj12345 时间: 2018-4-11 20:53
hulujia 发表于 2018-4-9 18:21
求分享
谢谢非常不错哦
作者: chaselbaymax 时间: 2018-4-12 13:04
萌新有一个问题请教大佬:
我用的和你一样的开发板,然后运行程序没有反应,手机上搜不到wifi,阴差阳错打开了串口调试助手,发现这样的一幕,我每按一次复位,就会从串口输到电脑上一串应该传送给wifi模块的信息。
(试了试,没打开串口调试助手,程序也没有反应)
我刚开始学,不是很懂,是不是我哪连线连错了,把单片机传送给wifi模块的信息传到了电脑上
还是说这两个接口是连通的,发送到wifi模块的信息都能通过数据线显示在电脑上,如果这样的话,我为啥搜不到模块的wifi。。。
作者: hulujia 时间: 2018-4-12 15:00
楼主请问电池外部供电怎么实现?是要自己接线吗,不知道用usb转ttl模块接电脑上可以供电吗?
作者: 么么了 时间: 2018-4-16 20:49
你解决了吗
作者: hzp1239 时间: 2018-4-20 08:18
谢谢分享
作者: Aphroditezero9 时间: 2018-4-29 17:27
您的app用不了啊,麻烦问下app向单片机发送的具体是什么字符或字符串呢
作者: 12348856 时间: 2018-5-12 11:17
为什么下载了资料里面的程序打不开?
作者: sssjjj 时间: 2018-5-17 21:22
你们的可以用吗
作者: sssjjj 时间: 2018-5-18 19:17
不能用
作者: tony054 时间: 2018-5-27 00:38
好东西,来这里学习一下~
作者: sefawg 时间: 2018-6-28 11:22
我遇到了和你一模一样的问题,你的问题解决了吗? 是什么原因造成的?
作者: gnalorange 时间: 2018-7-9 22:33
好东西,正是我想要的!
作者: 一叶_知秋 时间: 2018-7-11 23:38
请问有app的代码吗
作者: ligongping 时间: 2018-8-1 08:55
本帖最后由 ligongping 于 2018-8-1 10:44 编辑
为什么我下载后会弹出来这个E:捕获1.PNG
-
捕获1.PNG
(41.01 KB, 下载次数: 215)
作者: 太阳神犬 时间: 2018-8-1 09:44
看到楼主做的,瞬间自己也想做一个了
作者: 驴闯天涯 时间: 2018-8-10 21:45
谢谢分享
作者: anxuchu1 时间: 2018-9-15 22:06
谢谢楼主了
作者: dcein 时间: 2018-10-10 20:22
大家能发一份wifi程序和app给我吗?多谢
作者: zqy181818 时间: 2018-10-13 11:58
这个E4A文件造成的,因为你的杀毒软件会误判。你可以放心用好了。
作者: zmc419 时间: 2018-10-14 09:54
用8266的端口直接输出不更好么,省掉了单片机
作者: zmc419 时间: 2018-10-14 10:00
朋友会做APP么。这个8266,用的是AT固件,单片机通过串口和8266通讯,不如直接用NODMCU固件
作者: lqsgg 时间: 2018-10-19 21:44
谢谢分享!学习学习!
作者: bhjyqjs 时间: 2018-10-26 14:18
很不错,谢谢分享!
作者: bioveronica 时间: 2018-11-25 20:51
第一次学习Wifi,谢谢楼主分享!
作者: Ramon123 时间: 2018-11-30 19:57
chaselbaymax 发表于 2018-4-12 13:04
萌新有一个问题请教大佬:
我用的和你一样的开发板,然后运行程序没有反应,手机上搜不到wifi,阴差阳错打 ...
现在能用了吗?我也出现了这样的情况
作者: xunxing 时间: 2018-11-30 22:10
尝试一下呀
作者: tong553 时间: 2019-3-23 13:13
资料不错,值得学习
作者: azi197417 时间: 2019-4-22 22:37
这个挺好的
作者: 方回首已百年身 时间: 2019-4-24 12:48
不错的东东,赞一个!
作者: JJJJ123 时间: 2019-6-20 22:16
楼主软件用不了。。
作者: wushengxu0718 时间: 2019-7-23 14:27
学习学习
作者: 不就一个你 时间: 2019-7-23 19:59
可以
作者: yihai703 时间: 2019-7-26 19:40
参考一下,谢谢
作者: assini 时间: 2019-8-6 10:05
很好 很棒 赞一个
作者: 18856141120 时间: 2019-9-2 00:03
谢谢分享谢谢谢
作者: ww8577 时间: 2019-9-5 15:57
我的手机是安卓系统无法使用这个软件,大家有什么好的方法吗?可能是我安卓版本太新了
作者: xyt9812 时间: 2019-9-17 19:15
太棒了,正想要一个51控制WiFi的实例代码,谢谢楼主!
作者: xyt9812 时间: 2019-9-17 19:16
太棒了,有了代码就会用了,谢谢楼主分享。
作者: lern01 时间: 2020-2-7 19:00
Esp8266的发送格式好似是:+IPD
作者: dyjpc 时间: 2020-2-10 23:12
三星手机A6s打不开安卓app,不能运行,不知差在哪里
作者: 太阳黑子1 时间: 2020-2-11 19:21
太好玩了!
作者: 570612699 时间: 2020-6-11 10:33
谢谢楼主,很有用
作者: sniar 时间: 2020-6-11 20:44
文件能用吗?

作者: sniar 时间: 2020-6-11 20:45
文件下载下来可以用吗?有人测试吗?
作者: dilongking 时间: 2020-9-11 08:58
回家试一下,这好像很复杂,晕,我这真是太新手了
作者: liushiming82 时间: 2020-9-11 09:09
APP是什么软件写的
作者: 快乐眼泪 时间: 2020-9-11 20:52
我做了一个没成功
作者: zhaobolove 时间: 2020-9-21 21:53
这个没有技术含量, 太简单了
作者: 万人弃 时间: 2020-9-29 16:15
这个好!代码也在!试了一下!还不错
作者: Floray002 时间: 2020-10-26 16:57
我的话是苹果手机,没有用过安卓的那一款,我用的是苹果对应的那款软件
作者: Floray002 时间: 2020-10-26 16:58
配套的安卓手机测试app我没有试过,因为我是苹果,我用的apple store的netassist使,这个调试过没问题
作者: heikeji123456 时间: 2021-6-19 15:58
APP源码要如何编写呢?大家有类似能传个附件,给我们学习吗?
作者: mc6666 时间: 2021-6-28 16:45
一样的,什么情况,解决了嘛
作者: magicfu 时间: 2021-8-18 16:56
有没有实现LED调光功能的,手机APP上带调光条,控制单片机上LED的亮度
作者: KKK1177 时间: 2022-4-5 15:24
APP用不了怎么回事
作者: QQQQ987 时间: 2022-9-2 00:33
51加物连网呀——,赞一个,
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |