找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 55533|回復(fù): 63
打印 上一主題 下一主題
收起左側(cè)

用51單片機(jī)和esp8266實(shí)現(xiàn)通過手機(jī)app控制單片機(jī)小燈

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:255806 發(fā)表于 2017-11-30 18:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
用51單片機(jī)和esp8266實(shí)現(xiàn)通過手機(jī)app控制單片機(jī)小燈,也可以控制其他外設(shè),可以自行添加。附件為源程序,app可使用附件里面的安卓手機(jī)測試app或者ios系統(tǒng)可以去apple store下載netassist使用。

設(shè)計(jì)目的:
給所有客戶提供一個(gè)標(biāo)準(zhǔn)全功能而又經(jīng)濟(jì)適用的體驗(yàn)平臺(tái)!客戶拿到手直接測試,而
沒有任何爭議的環(huán)節(jié)。
本測試板能完成什么:
擁有本測試板,你可以無需任何其他開發(fā)工具,對(duì)ESP8266 模塊進(jìn)行AT 類應(yīng)用與SDK類應(yīng)用開發(fā)。
簡單的演示功能:用安卓手機(jī)做的一個(gè)控制界面,用手機(jī)WIFI 和板載WIFI 進(jìn)行數(shù)據(jù)交互,讓手機(jī)控制 板載WIFI 輸出數(shù)據(jù),板載CPU 收到數(shù)據(jù)后控制板載LED,和蜂鳴器的動(dòng)作!當(dāng)然你還可以進(jìn)過串口調(diào)試工具,直接對(duì)板載WIFI 模塊進(jìn)行手動(dòng)測試!
測試版是一塊51/AVR開發(fā)板,MCU可更換,板上資源豐富。既可以學(xué)習(xí)WiFi又能學(xué)習(xí)單片機(jī),一舉兩得
下面是收到測試版后的簡單說明:
1. 默認(rèn)收到的開發(fā)板內(nèi)有開發(fā)板測試程序,使用WiFi功能時(shí),需要用戶把程序燒寫到單片機(jī)(程序燒寫見“KR-51程序燒寫說明”)。
2.燒寫完程后,連接藍(lán)牙模塊,如下圖;
上圖為收到開發(fā)板的跳線的跳線帽位置,只需插USB供電,或者插上獨(dú)立供電電源供電(獨(dú)立供電電源不小于5V/600mA)。上電后如果電源燈不亮,請(qǐng)嘗試多次開關(guān)(左上角開關(guān))。正常上電后可看到模塊藍(lán)燈在間歇性閃爍,這是MCU在配置模塊作為服務(wù)端,在燈無閃爍后,可以在手機(jī)上搜索到ESP8266的WiFi名稱,安卓手機(jī)設(shè)置里可以看到這個(gè)WIFI,如下圖
連上這個(gè)WIFI,打開手機(jī)端APP(在測試版程序文件夾里),等待模塊藍(lán)燈停止閃爍,直接點(diǎn)連接,可以控制LED,蜂鳴器。
  • 如果以上試過后無反應(yīng),依舊提示連接失敗,請(qǐng)檢查模塊波特率和單片機(jī)是否一致。
上圖:(注:此跳線用跳線帽短接3,5 和4,6,代表USB_UART和模塊的串口直連,)

查看波特率方法:模塊:打開03_調(diào)試工具里的“SSCOM”串口調(diào)試助手,如果這樣顯示 代表模塊工作在115200波特率下,如果不是,可調(diào)節(jié)波特率(一般是115200或者9600),直到輸出正常字符。這時(shí)可通過AT+CIOBAUD=9600,改為9600的波特率. (更多指令請(qǐng)參照指令說明設(shè)置)
恢復(fù)連接,插上模塊,重新連接

單片機(jī)源程序如下:
  1. /**************************************************************************************
  2. *功能:Wifi模塊測試                                                                                                               *
  3. *說明:手機(jī)安裝測試APP,手機(jī)連接WiFi模塊,控制開發(fā)板上的LED、蜂鳴器                                          *
  4. *硬件連接:在J10處插上跳線帽  1,3用跳線短路 2,4用跳線短路                                                          *
  5. *作者:研發(fā)中心                                                                                                                                                  *
  6. ***************************************************************************************/
  7. #include <REGX52.H>
  8. #include<intrins.h>

  9. typedef unsigned int uint;
  10. typedef unsigned char uchar;
  11. /**串口數(shù)據(jù)使用**/
  12. #define        RX1_Lenth                32                        //串口接收緩沖長度

  13. uchar        idata RX1_Buffer[RX1_Lenth];        //接收緩沖
  14. uchar        TX1_Cnt;        //發(fā)送計(jì)數(shù)
  15. uchar        RX1_Cnt;        //接收計(jì)數(shù)
  16. bit                B_TX1_Busy;        //發(fā)送忙標(biāo)志

  17. /*************        端口引腳定義        **************/
  18. sbit LED1=P1^0;//LED1
  19. sbit LED2=P1^1;//LED2
  20. sbit LED3=P1^2;//LED3
  21. sbit DK1=P1^3;//繼電器
  22. sbit BEEP=P2^5;//蜂鳴器        

  23. /**wifi模塊命令**/
  24. unsigned char RST[8]="AT+RST\r\n";
  25. unsigned char LYMS[13]="AT+CWMODE=2\r\n";
  26. //unsigned char SZLY[38]="AT+CWSAP='ESP8266','0123456789',11,0\r\n";

  27. unsigned char SZDLJ[13]="AT+CIPMUX=1\r\n";
  28. unsigned char KQFU[21]="AT+CIPSERVER=1,5000\r\n";
  29. unsigned char FSSJ[13]="AT+CIPSEND=\r\n";//AT+CIPSEND= 發(fā)送數(shù)據(jù)         


  30. void Delay2(unsigned long cnt)
  31. {
  32.         long i;
  33.          for(i=0;i<cnt*100;i++);
  34. }
  35. void Delay3(unsigned int N)
  36. {
  37.         int i;
  38.         for(i=0;i<N*10;i++);
  39. }



  40. /********************************************************************
  41. * 名稱 : Uart_Init()
  42. * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中斷
  43. * 輸入 : 無
  44. * 輸出 : 無
  45. ***********************************************************************/
  46. void Uart_Init(void)
  47. {
  48.      TMOD = 0x20;   //定時(shí)器工作在定時(shí)器1的方式2
  49.      PCON = 0x00;   //不倍頻
  50.      SCON = 0x50;        //串口工作在方式1,并且啟動(dòng)串行接收        
  51.      TH1 = 0xFd;    //設(shè)置波特率 9600
  52.      TL1 = 0xFd;
  53.      TR1 = 1;                //啟動(dòng)定時(shí)器1
  54.          ES = 1;                //開串口中斷
  55.          EA = 1;                //開總中斷
  56.          RX1_Cnt=0;                //接受計(jì)數(shù)清零
  57.          TX1_Cnt = 0;        //發(fā)送計(jì)數(shù)清零
  58.          B_TX1_Busy = 0;//初始化判忙標(biāo)志位               
  59. }
  60. /********************************************************************
  61. * 名稱 : Main()
  62. * 功能 : 主函數(shù)
  63. * 輸入 : 無
  64. * 輸出 : 無
  65. ***********************************************************************/
  66. void main(void)
  67. {
  68.         char i=0;

  69.         Uart_Init();

  70.         Delay3(2000);
  71.   /******************設(shè)置WiFi模塊**********************************************/
  72.         for(i=0;i<8;i++)//AT+RST 重啟
  73.         {
  74.                 SBUF=RST[i];Delay3(5);
  75.         }
  76.         Delay3(5000);
  77.         for(i=0;i<13;i++)//AT+CWMODE=2 設(shè)置成路由模式
  78.         {
  79.                 SBUF=LYMS[i];Delay3(5);
  80.         }
  81.         /*Delay3(1000);
  82.         for(i=0;i<38;i++)//AT+CWSAP="ESP8266","0123456789",11,0 設(shè)置路由
  83.         {
  84.                 SBUF=SZLY[i];Delay3(5);
  85.         }*/
  86.         Delay3(3000);
  87.         
  88.         for(i=0;i<13;i++)//AT+CIPMUX=1 設(shè)置成多連接
  89.         {
  90.                 SBUF=SZDLJ[i];Delay3(5);
  91.         }
  92.         Delay3(2000);
  93.         for(i=0;i<21;i++)//AT+CIPSERVER=1,5000 開啟TCP服務(wù)端口
  94.         {
  95.                 SBUF=KQFU[i];Delay3(5);
  96.         }
  97.         Delay3(2000);
  98.         while (1)
  99.         {
  100.         
  101.         }
  102. }

  103. /********************************************************************
  104. * 名稱 : Uart_Int()
  105. * 功能 : 串口中斷子函數(shù)
  106. * 輸入 : 無
  107. * 輸出 : 無
  108. ***********************************************************************/
  109. void UART1_int (void) interrupt 4
  110. {
  111. //        char i,a,b,c;
  112.         if(RI)
  113.         {
  114.                 RI = 0;
  115.                 RX1_Buffer[RX1_Cnt] = SBUF;                //保存一個(gè)字節(jié)
  116.                 if(RX1_Buffer[0]==0x45)
  117.                 {
  118.                         RX1_Cnt++;
  119.                 }
  120.                 else
  121.                 {
  122.                         RX1_Cnt=0;
  123.                 }
  124.                 if(RX1_Cnt>=10)
  125.                 {
  126.                         if(RX1_Buffer[0]==0x45&&RX1_Buffer[1]==0x53&&RX1_Buffer[2]==0x50)
  127.                         {
  128.                                 if(RX1_Buffer[4]==0x4C&&RX1_Buffer[5]==0x45&&RX1_Buffer[6]==0x44)//判斷LED
  129.                                 {
  130.                                         if(RX1_Buffer[7]==0x31)//判斷LED1
  131.                                         {
  132.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  133.                                                 {
  134.                                                         LED1=0;
  135.                                                 }
  136.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  137.                                                 {
  138.                                                         LED1=1;
  139.                                                 }
  140.                                         }
  141.                                         if(RX1_Buffer[7]==0x32)//判斷LED2
  142.                                         {
  143.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  144.                                                 {
  145.                                                         LED2=0;
  146.                                                 }
  147.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  148.                                                 {
  149.                                                         LED2=1;
  150.                                                 }
  151.                                         }
  152.                                         if(RX1_Buffer[7]==0x33)//判斷LED3
  153.                                         {
  154.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  155.                                                 {
  156.                                                         LED3=0;
  157.                                                 }
  158.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  159.                                                 {
  160.                                                         LED3=1;
  161.                                                 }
  162.                                         }
  163.                                 }
  164.                                 if(RX1_Buffer[4]==0x4A&&RX1_Buffer[5]==0x44&&RX1_Buffer[6]==0x51)//判斷繼電器
  165.                                 {
  166.                                         if(RX1_Buffer[7]==0x31)//判斷LED1
  167.                                         {
  168.                                                 if(RX1_Buffer[3]==0x4B)//判斷開
  169.                                                 {
  170.                                                         DK1=1;
  171.                                                 }
  172.                                                 if(RX1_Buffer[3]==0x47)//判斷關(guān)
  173.                                                 {
  174.                                                         DK1=0;
  175. ……………………

  176. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼



以上資料51hei下載地址:
wifi測試程序.zip (2.46 MB, 下載次數(shù): 1249)


評(píng)分

參與人數(shù) 7黑幣 +126 收起 理由
zqy181818 + 5
wefdw + 2 回帖助人的獎(jiǎng)勵(lì)!
Aphroditezero9 + 1 回帖助人的獎(jiǎng)勵(lì)!
chaselbaymax + 5
arthuryu + 8 贊一個(gè)!
qjzyx + 5 贊一個(gè)!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏34 分享淘帖 頂11 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:255806 發(fā)表于 2017-12-1 11:39 | 只看該作者
以上實(shí)驗(yàn)圖片來自此款開發(fā)板賣家提供的資料
回復(fù)

使用道具 舉報(bào)

板凳
ID:255806 發(fā)表于 2017-12-1 11:43 | 只看該作者
這幅圖為自己使用蘋果手機(jī)進(jìn)行的調(diào)試,經(jīng)檢測,板子上的3.3V實(shí)際上不夠這個(gè)電壓,所以esp8266模塊的供電是使用電池從外部供電的,還有就是實(shí)現(xiàn)時(shí),注意各個(gè)模塊供地。

9D69A02DBC8C474946010FD2B3764EE3.png (120.2 KB, 下載次數(shù): 258)

實(shí)驗(yàn)圖

實(shí)驗(yàn)圖
回復(fù)

使用道具 舉報(bào)

地板
ID:255806 發(fā)表于 2017-12-3 09:11 | 只看該作者
我全部的資料都分享在上面了
回復(fù)

使用道具 舉報(bào)

5#
ID:272887 發(fā)表于 2018-1-7 22:01 | 只看該作者
樓主,我的手機(jī)用不了你這個(gè)軟件,怎么回事
回復(fù)

使用道具 舉報(bào)

6#
ID:373 發(fā)表于 2018-2-1 11:33 | 只看該作者
APP用不了,怎么回事呢?
回復(fù)

使用道具 舉報(bào)

7#
ID:66287 發(fā)表于 2018-2-9 08:49 | 只看該作者
好貼,謝謝樓主!
回復(fù)

使用道具 舉報(bào)

8#
ID:293625 發(fā)表于 2018-4-9 18:29 | 只看該作者
ESP8266需要燒寫嗎?
回復(fù)

使用道具 舉報(bào)

9#
ID:6428 發(fā)表于 2018-4-11 20:53 來自手機(jī) | 只看該作者
hulujia 發(fā)表于 2018-4-9 18:21
求分享

謝謝非常不錯(cuò)哦
回復(fù)

使用道具 舉報(bào)

10#
ID:306348 發(fā)表于 2018-4-12 13:04 | 只看該作者
萌新有一個(gè)問題請(qǐng)教大佬:
我用的和你一樣的開發(fā)板,然后運(yùn)行程序沒有反應(yīng),手機(jī)上搜不到wifi,陰差陽錯(cuò)打開了串口調(diào)試助手,發(fā)現(xiàn)這樣的一幕,我每按一次復(fù)位,就會(huì)從串口輸?shù)诫娔X上一串應(yīng)該傳送給wifi模塊的信息。 (試了試,沒打開串口調(diào)試助手,程序也沒有反應(yīng))
我剛開始學(xué),不是很懂,是不是我哪連線連錯(cuò)了,把單片機(jī)傳送給wifi模塊的信息傳到了電腦上
還是說這兩個(gè)接口是連通的,發(fā)送到wifi模塊的信息都能通過數(shù)據(jù)線顯示在電腦上,如果這樣的話,我為啥搜不到模塊的wifi。。。
回復(fù)

使用道具 舉報(bào)

11#
ID:304623 發(fā)表于 2018-4-12 15:00 | 只看該作者
樓主請(qǐng)問電池外部供電怎么實(shí)現(xiàn)?是要自己接線嗎,不知道用usb轉(zhuǎn)ttl模塊接電腦上可以供電嗎?
回復(fù)

使用道具 舉報(bào)

12#
ID:302373 發(fā)表于 2018-4-16 20:49 | 只看該作者
chaselbaymax 發(fā)表于 2018-4-12 13:04
萌新有一個(gè)問題請(qǐng)教大佬:
我用的和你一樣的開發(fā)板,然后運(yùn)行程序沒有反應(yīng),手機(jī)上搜不到wifi,陰差陽錯(cuò)打 ...

你解決了嗎
回復(fù)

使用道具 舉報(bào)

13#
ID:312159 發(fā)表于 2018-4-20 08:18 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

14#
ID:306809 發(fā)表于 2018-4-29 17:27 | 只看該作者
您的app用不了啊,麻煩問下app向單片機(jī)發(fā)送的具體是什么字符或字符串呢
回復(fù)

使用道具 舉報(bào)

15#
ID:327484 發(fā)表于 2018-5-12 11:17 | 只看該作者
為什么下載了資料里面的程序打不開?
回復(fù)

使用道具 舉報(bào)

16#
ID:332490 發(fā)表于 2018-5-17 21:22 | 只看該作者
你們的可以用嗎
回復(fù)

使用道具 舉報(bào)

17#
ID:332490 發(fā)表于 2018-5-18 19:17 | 只看該作者
不能用
回復(fù)

使用道具 舉報(bào)

18#
ID:319167 發(fā)表于 2018-5-27 00:38 | 只看該作者
好東西,來這里學(xué)習(xí)一下~
回復(fù)

使用道具 舉報(bào)

19#
ID:345303 發(fā)表于 2018-6-28 11:22 | 只看該作者
chaselbaymax 發(fā)表于 2018-4-12 13:04
萌新有一個(gè)問題請(qǐng)教大佬:
我用的和你一樣的開發(fā)板,然后運(yùn)行程序沒有反應(yīng),手機(jī)上搜不到wifi,陰差陽錯(cuò)打 ...

我遇到了和你一模一樣的問題,你的問題解決了嗎? 是什么原因造成的?
回復(fù)

使用道具 舉報(bào)

20#
ID:25153 發(fā)表于 2018-7-9 22:33 | 只看該作者
好東西,正是我想要的!
回復(fù)

使用道具 舉報(bào)

21#
ID:369805 發(fā)表于 2018-7-11 23:38 | 只看該作者
請(qǐng)問有app的代碼嗎
回復(fù)

使用道具 舉報(bào)

22#
ID:355680 發(fā)表于 2018-8-1 08:55 | 只看該作者
本帖最后由 ligongping 于 2018-8-1 10:44 編輯

為什么我下載后會(huì)彈出來這個(gè)E:捕獲1.PNG

捕獲1.PNG (41.01 KB, 下載次數(shù): 215)

捕獲1.PNG
回復(fù)

使用道具 舉報(bào)

23#
ID:381550 發(fā)表于 2018-8-1 09:44 | 只看該作者
看到樓主做的,瞬間自己也想做一個(gè)了
回復(fù)

使用道具 舉報(bào)

24#
ID:385131 發(fā)表于 2018-8-10 21:45 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

25#
ID:398467 發(fā)表于 2018-9-15 22:06 | 只看該作者
謝謝樓主了
回復(fù)

使用道具 舉報(bào)

26#
ID:406035 發(fā)表于 2018-10-10 20:22 | 只看該作者
大家能發(fā)一份wifi程序和app給我嗎?多謝
回復(fù)

使用道具 舉報(bào)

27#
ID:130231 發(fā)表于 2018-10-13 11:58 | 只看該作者
ligongping 發(fā)表于 2018-8-1 08:55
為什么我下載后會(huì)彈出來這個(gè)

這個(gè)E4A文件造成的,因?yàn)槟愕臍⒍拒浖䲡?huì)誤判。你可以放心用好了。
回復(fù)

使用道具 舉報(bào)

28#
ID:137736 發(fā)表于 2018-10-14 09:54 | 只看該作者
用8266的端口直接輸出不更好么,省掉了單片機(jī)
回復(fù)

使用道具 舉報(bào)

29#
ID:137736 發(fā)表于 2018-10-14 10:00 | 只看該作者
朋友會(huì)做APP么。這個(gè)8266,用的是AT固件,單片機(jī)通過串口和8266通訊,不如直接用NODMCU固件
回復(fù)

使用道具 舉報(bào)

30#
ID:186637 發(fā)表于 2018-10-19 21:44 | 只看該作者
Floray002 發(fā)表于 2017-12-3 09:11
什么意思?資料都在上面

謝謝分享!學(xué)習(xí)學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

31#
ID:66287 發(fā)表于 2018-10-26 14:18 | 只看該作者
很不錯(cuò),謝謝分享!
回復(fù)

使用道具 舉報(bào)

32#
ID:405298 發(fā)表于 2018-11-25 20:51 | 只看該作者
第一次學(xué)習(xí)Wifi,謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

33#
ID:436164 發(fā)表于 2018-11-30 19:57 來自手機(jī) | 只看該作者
chaselbaymax 發(fā)表于 2018-4-12 13:04
萌新有一個(gè)問題請(qǐng)教大佬:
我用的和你一樣的開發(fā)板,然后運(yùn)行程序沒有反應(yīng),手機(jī)上搜不到wifi,陰差陽錯(cuò)打 ...

現(xiàn)在能用了嗎?我也出現(xiàn)了這樣的情況
回復(fù)

使用道具 舉報(bào)

34#
ID:418772 發(fā)表于 2018-11-30 22:10 | 只看該作者
嘗試一下呀
回復(fù)

使用道具 舉報(bào)

35#
ID:325517 發(fā)表于 2019-3-23 13:13 來自手機(jī) | 只看該作者
資料不錯(cuò),值得學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

36#
ID:452731 發(fā)表于 2019-4-22 22:37 | 只看該作者
這個(gè)挺好的
回復(fù)

使用道具 舉報(bào)

37#
ID:368281 發(fā)表于 2019-4-24 12:48 | 只看該作者
不錯(cuò)的東東,贊一個(gè)!
回復(fù)

使用道具 舉報(bào)

38#
ID:395560 發(fā)表于 2019-6-20 22:16 | 只看該作者
Floray002 發(fā)表于 2017-12-3 09:11
什么意思?資料都在上面

樓主軟件用不了。。
回復(fù)

使用道具 舉報(bào)

39#
ID:588682 發(fā)表于 2019-7-23 14:27 | 只看該作者
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

40#
ID:583132 發(fā)表于 2019-7-23 19:59 | 只看該作者
hulujia 發(fā)表于 2018-4-12 15:00
樓主請(qǐng)問電池外部供電怎么實(shí)現(xiàn)?是要自己接線嗎,不知道用usb轉(zhuǎn)ttl模塊接電腦上可以供電嗎?

可以
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表