久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 46047|回復: 84
打印 上一主題 下一主題
收起左側

ESP8266 wifi模塊與51單片機通信入門教程,模塊出廠固件燒錄

  [復制鏈接]
跳轉到指定樓層
#
前段時間在某寶買了個ESP8266模塊,用來實現和51單片機的通信,現在將大致過程分享一下,希望能幫助到那些想學習的小白
三部分內容:配置模塊、模塊與51單片機簡單通信、出廠固件的燒錄
附件里有pdf教程,跟帖子內容一樣的,瀏覽體驗可能會更好一點

我買的是8266-01,引腳圖如下



    引腳說明:
    •   VCC接3.3v,接5v時間長了可能會燒
    •   UTXD,URXD和其它的TXD,RXD接時注意交叉接就行了
    •   CH_PD要給高電平模塊才工作
    •   GPIO0一般不用管,燒錄固件時要接地
    •   RST低電平復位,高電平工作(默認高)
    •   GPIO2必須為高電平,內部默認已拉高,不用管

一、配置模塊:
一般接線如下,圖為模塊與usb轉ttl模塊的接線,與單片機的接線也類似



下圖為我的連接圖,我這個usb轉ttl模塊的VCC引腳是輸出3.3v的



接到電腦usb口,打開串口調試助手,wifi模塊買回來的時候波特率應該都是115200,所以要把串口助手的波特率設置為115200,然后點擊打開串口。

用到的AT指令如下:
•   AT(返回ok表示通信成功)
•   AT+CIOBAUD=X(改模塊的波特率,X為要改成的波特率,因單片機達不到太高的波特率所以要更改一下波特率,因為我學習板上的晶振是12MHZ的,所以我這里改成4800,原因后面會說到,一般改9600就行,改完之后記得把串口助手的波特率也設置成新波特率,再發AT,有ok表明通信成功)


•   AT+CWMODE=X(設置工作模式指令,X可以是1、2、3,具體如下:
1:Station模式
2:AP模式
3:Station+AP模式
Station可理解為讓wifi模塊去連接路由器或熱點,此時模塊作為客戶端
AP模式可理解為模塊本身是一個熱點,手機或電腦可以連接這個熱點,此時模塊作為服務器。
這里講的是AP模式,Station模式不講,可以自己去了解。
•   AT+RST(重啟指令,設置新的工作模式后需重啟才能生效。發送完這條指令后再發送其它指令可能會顯示串口無效,需要退出串口調試助手再重新進入。)



•   AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>(設置AP模式下的參數,簡單點說就是設置熱點的名字,密碼之類的,例如AT+CWSAP=”8266”,“66666666”,0,3)



這里我不設置,用默認的
•   AT+CWSAP?(可以查看當前AP模式下模塊熱點的具體信息)
•   AT+CIFSR(查看IP地址,好像都是192.168.4.1)
•   AT+CIPMUX=1(開啟多連接,貌似最多可以有5臺設備連接這個模塊,設備id分別分配為0到4)
•   AT+CIPSERVER=1,X(1表示開啟服務器,X為自己設置的端口號,一般設3或4位。也可以只開啟服務器而不設置端口號,默認端口是333好像)
注:倒數的這兩條指令在模塊掉電后需要重新配置,其它那幾條配置過一次不用再重新配置了。




到這里拿出手機,打開wifi并連接上模塊的熱點,如果搜不到熱點可以試一下拔了重插,再重新發那兩條指令。



連接熱點成功后打開網絡調試助手這個軟件,右滑進入設置,協議設置為TCP Client,即客戶端模式,IP地址為192.168.4.1,端口為剛才設置的,然后點連接,連接成功后就能通信了。



這里發送了hello和hello66666666,可以看到電腦上的串口調試助手顯示到手機發送過去的信息,這里注意到信息前還附帶了+IPD,0,X:這里的0表示設備id號,表示第0臺設備發送過來的信息,然后X表示信息包含的字符數量。


二、模塊與51單片機通信
程序比較簡單,實現的功能:手機發一個A,學習板上的燈亮,發B滅燈,簡單地測試一下。下圖是我的連線,很亂,主要注意接對就行了,學習板沒有3.3v,接了一個降壓模塊給模塊供電。



程序:
  1. #include <reg52.h>
  2. #include "intrins.h"
  3. sbit LED1=P2^0;
  4. typedef unsigned int u16;
  5. typedef unsigned char u8;
  6. u8 receive[2];
  7. u8 sign=0;
  8. void delay1s(void)   //誤差 0us
  9. {
  10.     u8 a,b,c;
  11.     for(c=46;c>0;c--)
  12.        for(b=152;b>0;b--)
  13.            for(a=70;a>0;a--);
  14.     _nop_();  //if Keil,require use intrins.h
  15. }
  16. //初始化串口
  17. void Init()
  18. {
  19.        SCON = 0x50;      //串口模式1,允許接收
  20.        TMOD = 0x20;    //T1工作模式2,自動重裝
  21.        PCON = 0x80;      //波特率倍增
  22.        REN = 1;
  23.                                          //根據實際選擇
  24. //  TH1 = 0xfa;          //波特率9600(11.0592)
  25.        TH1 = 0xf3;          //波特率4800(12.0000)
  26. //  TH1 = 0xf4;          //波特率4800(11.0592)
  27.        TL1 = TH1;
  28.        RI=0;
  29.        EA = 1;
  30.        ES = 0;
  31.        TR1 = 1;
  32. }
  33. //發送字符
  34. void send(u8 value)
  35. {
  36.        ES=0; //關閉串口中斷
  37.        TI=0; //清發送完畢中斷請求標志位
  38.        SBUF=value; //發送
  39.        while(!TI); //等待發送完畢
  40.        TI=0; //清發送完畢中斷請求標志位
  41.        ES=1; //允許串口中斷
  42. }
  43. //單片機向模塊發送AT指令
  44. void wifi_init()
  45. {
  46.        u8 j=0;
  47.    u8a[]="AT+CIPMUX=1\r\n";     //那兩條掉電要重新配置的指令
  48.    u8b[]="AT+CIPSERVER=1,6666\r\n";
  49.    while(a[j]!='\0')
  50.    {
  51.            send(a[j]);
  52.            j++;
  53.    }
  54.        j=0;                        //清零準備發第二條指令
  55.        delay1s();                    //延時一下
  56.        while(b[j]!='\0')
  57.    {
  58.            send(b[j]);
  59.            j++;
  60.    }
  61.        delay1s();
  62. }
  63. void wifi_data()
  64. {
  65.        if(receive[0]=='A')     LED1=0;    //亮
  66.        if(receive[0]=='B')    LED1=1;    //滅
  67. }   
  68. void main()
  69. {
  70.        Init();
  71.        wifi_init();
  72.        while(1)
  73.        {
  74.                 wifi_data();
  75.        }
  76. }
  77. //中斷程序,此程序只把+IPD,x,x:后的有用數據存進receive數組里
  78. void ZD() interrupt 4
  79. {
  80.        if(RI)
  81.        {
  82.                 RI=0;
  83.                 if(sign==1)
  84.                 {
  85.                         receive[0]=SBUF;
  86.                         sign=0;                    //保存receive[0]的數據
  87.                 }
  88.                 if(SBUF==':')       sign=1;
  89.        }
  90. }
復制代碼


上面提到的波特率問題,簡單地說,11.0592是最適合通信的,如果用12的話會有誤差,12的晶振在波特率為4800且加倍時(即SMOD為1),誤差會比較小,所以這也是我設置波特率為4800的原因,詳細可以看一下下面這張圖。



三、燒錄出廠AT固件
剛接觸8266模塊的時候,有些地方不是很懂,一頓亂操作之后啥也沒搞成,當時燒錄了一個我也不知道有什么用的固件,然后經常傻傻的,有很多奇怪的情況,后來燒錄了出廠固件功能就正常了,在這也寫一下具體操作。

接線方面,如下圖,主要是綠色那條,GPIO0接低電平時為下載模式。



電腦打開燒寫軟件



選中文件夾里面bin后綴的固件



按下圖配置好,選擇對應串口,點擊START即可燒寫



瞎說一些:
•   本人小白一個,也有很多不懂的地方,說的可能不是很對
•   如想了解更多,鏈接: wiki.ai-thinker點com/esp8266
•   對于不會java和安卓開發之類的又想弄個小app來實現控制硬件的,可以去了解一下E4A,中文編程,軟件里面有很多例程,例如客戶端,服務器之類的例程,可以參考一下然后自己整一個app,這個比較容易上手,有興趣的可以去學習一下。


全部資料51hei下載地址:
所有資料.zip (14.59 MB, 下載次數: 1196)

評分

參與人數 3黑幣 +72 收起 理由
lydsgy527 + 12 很給力!
西西弗 + 10 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏109 分享淘帖 頂8 踩
回復

使用道具 舉報

84#
ID:270495 發表于 2021-12-23 13:02 | 只看該作者
faiz999 發表于 2020-11-11 20:50
樓主你好,我的esp8266接了單片機后一直亮藍燈什么問題?

應該是不斷重啟或者是數據輸出
回復

使用道具 舉報

83#
ID:980181 發表于 2021-12-12 07:21 來自手機 | 只看該作者
wifi模塊應該沒有工作,CH_PD接高電平,插到電腦usb口時會看藍色的燈閃爍,發AT指令正常
回復

使用道具 舉報

82#
ID:991052 發表于 2021-12-11 21:38 | 只看該作者
剛好有個任務就是要做這個差不多的項目,謝謝樓主分享
回復

使用道具 舉報

81#
ID:87000 發表于 2021-11-23 09:42 | 只看該作者
ESP8266 wifi模塊與51單片機通信入門教程,模塊出廠固件燒錄。非常有用
回復

使用道具 舉報

80#
ID:624685 發表于 2021-11-22 12:41 | 只看該作者
買了一塊,還沒開始弄,謝謝樓主的資料
回復

使用道具 舉報

79#
ID:756400 發表于 2021-11-1 15:40 | 只看該作者
樓主的分享精神 值得學習。 樓主好樣的。
回復

使用道具 舉報

78#
ID:343102 發表于 2021-8-7 22:08 | 只看該作者
dehermano 發表于 2020-4-26 16:09
請問8266必須要刷固件庫才能使用嗎

現在的8266已不需要刷固件了,用軟件修改串口速率為9600以適應單片機,再設置成ap模式,就能讓單片機通過WiFi與手機通訊了,超級簡單。
回復

使用道具 舉報

77#
ID:884042 發表于 2021-8-7 21:32 | 只看該作者
太有用了!剛試了下就行了
回復

使用道具 舉報

76#
ID:624685 發表于 2021-6-22 22:13 | 只看該作者
好資料,雖然現在還看不太懂,慢慢學習
回復

使用道具 舉報

75#
ID:245820 發表于 2021-6-22 16:49 | 只看該作者
非常好的資料,收下好好學習
回復

使用道具 舉報

74#
ID:748788 發表于 2021-6-15 15:53 | 只看該作者
這兩天刷SOnOFF,然后回復AT指令就亂了。剛才按樓主的介紹刷了出廠固件,恢復正常,且版本有提高。不錯!
回復

使用道具 舉報

73#
ID:390236 發表于 2021-6-2 22:05 | 只看該作者
CH_PD要給高電平模塊才工作  這條很 有用   以前一直不知道

GPIO0一般不用管,燒錄固件時要接地
回復

使用道具 舉報

72#
ID:59830 發表于 2021-4-30 10:02 | 只看該作者
昨天到網上買了,兩個模塊(ESP8226-DTH11溫度濕度,繼電器模塊),
以為已經有 相應程序,測試一下。只有原廠的程序.自己要處理.
看看你們的資料.
回復

使用道具 舉報

71#
ID:74784 發表于 2021-4-29 16:05 | 只看該作者
樓主圖文并貿非常好!
還為大家提供相關資料,
非常感謝你!
回復

使用道具 舉報

70#
ID:506248 發表于 2021-4-29 15:10 | 只看該作者
這個ESP8266模塊,用51單片機通信,我一直希望能學習到
今天終于找到了:配置模塊、模塊與51單片機簡單通信、出廠固件的燒錄等內容
真是大好人啊!
回復

使用道具 舉報

69#
ID:315554 發表于 2021-4-3 22:24 | 只看該作者
好資料,謝謝分享,在學習串口透傳
回復

使用道具 舉報

68#
ID:477512 發表于 2021-4-1 15:31 來自手機 | 只看該作者
a1bc2de3f 發表于 2019-7-10 10:44
CH_PD沒接的話只能看到紅色燈亮,但是發AT指令是沒有反應的,wifi模塊應該沒有工作,CH_PD接高電平,插到 ...

倆燈都亮是咋回事?
回復

使用道具 舉報

67#
ID:864602 發表于 2021-1-18 22:20 | 只看該作者
感謝分享,步驟明了,參考很棒
回復

使用道具 舉報

66#
ID:845917 發表于 2021-1-16 17:03 來自手機 | 只看該作者
為什么網絡調試助手不能接收到單片機發出的數據?
回復

使用道具 舉報

65#
ID:669246 發表于 2020-11-27 09:33 | 只看該作者
這個要微信或APP操作才更好
回復

使用道具 舉報

64#
ID:693523 發表于 2020-11-26 21:51 | 只看該作者
最近在學8266,看見樓主的資料很不錯,謝謝樓主的分享
回復

使用道具 舉報

63#
ID:765731 發表于 2020-11-11 20:50 | 只看該作者
樓主你好,我的esp8266接了單片機后一直亮藍燈什么問題?
回復

使用道具 舉報

62#
ID:826428 發表于 2020-10-14 15:24 來自手機 | 只看該作者
ii11nnocent 發表于 2020-7-24 23:25
首先感謝樓主分享資料。我的情況是這樣的,8266連接電腦,一切指令都沒有問題,包括用手機發送指令,電腦的 ...

單片機給8266發送指令之前要先加延時,不然上電的時候8266復位會和AT指令沖突,延時要長一點。
回復

使用道具 舉報

61#
ID:826456 發表于 2020-10-7 14:37 | 只看該作者
mark一下,舉得很有用
回復

使用道具 舉報

60#
ID:636561 發表于 2020-10-7 09:51 | 只看該作者
q1914702038 發表于 2019-8-8 16:27
怎么讓單片機發給手機上

手機應該有一個APP接受單片機的信息,你到τ 寶買8266的時候看看有么有
回復

使用道具 舉報

59#
ID:826428 發表于 2020-10-7 01:18 來自手機 | 只看該作者
ii11nnocent 發表于 2020-7-24 23:25
首先感謝樓主分享資料。我的情況是這樣的,8266連接電腦,一切指令都沒有問題,包括用手機發送指令,電腦的 ...

巨佬,解決了嗎,我的也是這樣的,糾結好久了,不知道咋辦。
回復

使用道具 舉報

58#
ID:702127 發表于 2020-7-24 23:25 | 只看該作者
首先感謝樓主分享資料。我的情況是這樣的,8266連接電腦,一切指令都沒有問題,包括用手機發送指令,電腦的串口助手可以收到。但是將程序寫道單片機內后,發現手機可以連接8266的wifi,但是無法通過手機的app連接8266,ip地址和端口都已經修改完,點擊連接后顯示連接失敗,是我哪里操作不嗎?是不是需要重新刷固件?
回復

使用道具 舉報

57#
ID:787683 發表于 2020-6-23 14:44 | 只看該作者
感謝樓主分享,有很大用處
回復

使用道具 舉報

56#
ID:287128 發表于 2020-6-8 13:56 | 只看該作者
學習學習,感謝分享
回復

使用道具 舉報

55#
ID:772630 發表于 2020-6-8 11:20 | 只看該作者
真的有用 十分感謝 謝樓主
回復

使用道具 舉報

54#
ID:149389 發表于 2020-6-5 14:58 | 只看該作者
ESP8266(硬件)+Proteus(軟件)測試通過。



回復

使用道具 舉報

53#
ID:709586 發表于 2020-6-5 09:27 | 只看該作者
很棒,解釋很詳細
回復

使用道具 舉報

52#
ID:695451 發表于 2020-6-4 23:53 | 只看該作者
很有用,感謝分享
回復

使用道具 舉報

51#
ID:479008 發表于 2020-6-3 12:33 | 只看該作者
dubolin 發表于 2020-5-5 15:47
請問你用usb轉ttl上的3.3v可以成功嗎

有3.3的口應該可以的,不過最好能用萬用表測一下電壓有多少。
回復

使用道具 舉報

50#
ID:479008 發表于 2020-6-3 12:27 | 只看該作者
作業暖冬 發表于 2020-6-1 17:04
請問下樓主刷固件有什么用
不刷的話是不是不能使用at指令

一般買來的新模塊都不用刷的,就正常用就行。刷固件就是當你發現有一些奇怪問題的時候(例如波特率的問題或發AT指令返回異常),就可以刷一下,不過也不排除新買的也會有一些奇怪問題,像我師兄買了一個就有問題,刷一下固件就正常了。
回復

使用道具 舉報

49#
ID:74872 發表于 2020-6-2 17:49 | 只看該作者
謝謝,正要學習,感謝分享。
回復

使用道具 舉報

48#
ID:759111 發表于 2020-6-1 17:04 | 只看該作者
請問下樓主刷固件有什么用
不刷的話是不是不能使用at指令
回復

使用道具 舉報

47#
ID:741995 發表于 2020-5-16 01:00 來自手機 | 只看該作者
很實用,謝謝呀!
回復

使用道具 舉報

46#
ID:587564 發表于 2020-5-7 13:13 | 只看該作者
AP模式是不是只能收不能發啊
回復

使用道具 舉報

45#
ID:735762 發表于 2020-5-5 20:29 | 只看該作者
燒錄那里有些資料時DOUT的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人国内精品久久久久一区 | 国产精品亚洲第一 | 99久久婷婷国产综合精品电影 | 国产精品一区在线观看你懂的 | 国产激情在线看 | 日韩精品一区二区三区高清免费 | 亚洲v日韩v综合v精品v | 日日操av | 激情伊人网 | 久久中文字幕一区 | gav成人免费播放视频 | 午夜精品一区二区三区免费视频 | 国产麻豆一区二区三区 | 午夜在线视频一区二区三区 | 中文字幕亚洲区一区二 | 欧美国产日韩在线观看 | 久久久国产一区二区三区四区小说 | 成人激情视频在线观看 | 欧美一区二区三区久久精品 | 日韩av成人在线 | 欧美成人激情 | 天天射天天操天天干 | 成人免费在线视频 | 天堂一区二区三区 | 一区二区三区韩国 | 麻豆av在线免费观看 | 97久久超碰 | 538在线精品 | 青青草精品视频 | 日韩免费av | 欧美一区二区大片 | 精品视频亚洲 | 成人在线免费电影 | 亚洲综合二区 | 一区二区三区av夏目彩春 | 国产亚洲欧美在线 | 综合色站导航 | 欧美一级片在线看 | 久久99视频这里只有精品 | 亚洲日本国产 | 一区二区在线免费观看 |