標題: 用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黑下載附件…………
復制代碼
0.png (9.05 KB, 下載次數: 186)
下載附件
2017-12-1 03:34 上傳
以上資料51hei下載地址:
wifi測試程序.zip
(2.46 MB, 下載次數: 1249)
2017-11-30 18:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: Floray002 時間: 2017-12-1 11:39
以上實驗圖片來自此款開發板賣家提供的資料
作者: Floray002 時間: 2017-12-1 11:43
這幅圖為自己使用蘋果手機進行的調試,經檢測,板子上的3.3V實際上不夠這個電壓,所以esp8266模塊的供電是使用電池從外部供電的,還有就是實現時,注意各個模塊供地。
-
9D69A02DBC8C474946010FD2B3764EE3.png
(120.2 KB, 下載次數: 258)
下載附件
2017-12-1 11:43 上傳
實驗圖
作者: 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模塊的信息。
QQ截圖20180412125634.png (48.09 KB, 下載次數: 114)
下載附件
2018-4-12 12:58 上傳
(試了試,沒打開串口調試助手,程序也沒有反應)
我剛開始學,不是很懂,是不是我哪連線連錯了,把單片機傳送給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 10:44 上傳
作者: 太陽神犬 時間: 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.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |