用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ī)源程序如下:
- /**************************************************************************************
- *功能:Wifi模塊測試 *
- *說明:手機(jī)安裝測試APP,手機(jī)連接WiFi模塊,控制開發(fā)板上的LED、蜂鳴器 *
- *硬件連接:在J10處插上跳線帽 1,3用跳線短路 2,4用跳線短路 *
- *作者:研發(fā)中心 *
- ***************************************************************************************/
- #include <REGX52.H>
- #include<intrins.h>
- typedef unsigned int uint;
- typedef unsigned char uchar;
- /**串口數(shù)據(jù)使用**/
- #define RX1_Lenth 32 //串口接收緩沖長度
- uchar idata RX1_Buffer[RX1_Lenth]; //接收緩沖
- uchar TX1_Cnt; //發(fā)送計(jì)數(shù)
- uchar RX1_Cnt; //接收計(jì)數(shù)
- bit B_TX1_Busy; //發(fā)送忙標(biāo)志
- /************* 端口引腳定義 **************/
- 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= 發(fā)送數(shù)據(jù)
- 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; //定時(shí)器工作在定時(shí)器1的方式2
- PCON = 0x00; //不倍頻
- SCON = 0x50; //串口工作在方式1,并且啟動(dòng)串行接收
- TH1 = 0xFd; //設(shè)置波特率 9600
- TL1 = 0xFd;
- TR1 = 1; //啟動(dòng)定時(shí)器1
- ES = 1; //開串口中斷
- EA = 1; //開總中斷
- RX1_Cnt=0; //接受計(jì)數(shù)清零
- TX1_Cnt = 0; //發(fā)送計(jì)數(shù)清零
- B_TX1_Busy = 0;//初始化判忙標(biāo)志位
- }
- /********************************************************************
- * 名稱 : Main()
- * 功能 : 主函數(shù)
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void main(void)
- {
- char i=0;
- Uart_Init();
- Delay3(2000);
- /******************設(shè)置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 設(shè)置成路由模式
- {
- SBUF=LYMS[i];Delay3(5);
- }
- /*Delay3(1000);
- for(i=0;i<38;i++)//AT+CWSAP="ESP8266","0123456789",11,0 設(shè)置路由
- {
- SBUF=SZLY[i];Delay3(5);
- }*/
- Delay3(3000);
-
- for(i=0;i<13;i++)//AT+CIPMUX=1 設(shè)置成多連接
- {
- SBUF=SZDLJ[i];Delay3(5);
- }
- Delay3(2000);
- for(i=0;i<21;i++)//AT+CIPSERVER=1,5000 開啟TCP服務(wù)端口
- {
- SBUF=KQFU[i];Delay3(5);
- }
- Delay3(2000);
- while (1)
- {
-
- }
- }
- /********************************************************************
- * 名稱 : Uart_Int()
- * 功能 : 串口中斷子函數(shù)
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void UART1_int (void) interrupt 4
- {
- // char i,a,b,c;
- if(RI)
- {
- RI = 0;
- RX1_Buffer[RX1_Cnt] = SBUF; //保存一個(gè)字節(jié)
- 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)//判斷關(guān)
- {
- LED1=1;
- }
- }
- if(RX1_Buffer[7]==0x32)//判斷LED2
- {
- if(RX1_Buffer[3]==0x4B)//判斷開
- {
- LED2=0;
- }
- if(RX1_Buffer[3]==0x47)//判斷關(guān)
- {
- LED2=1;
- }
- }
- if(RX1_Buffer[7]==0x33)//判斷LED3
- {
- if(RX1_Buffer[3]==0x4B)//判斷開
- {
- LED3=0;
- }
- if(RX1_Buffer[3]==0x47)//判斷關(guān)
- {
- 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)//判斷關(guān)
- {
- DK1=0;
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
0.png (9.05 KB, 下載次數(shù): 186)
下載附件
2017-12-1 03:34 上傳
以上資料51hei下載地址:
wifi測試程序.zip
(2.46 MB, 下載次數(shù): 1249)
2017-11-30 18:48 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|