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

標題: ESP8266 wifi模塊與51單片機通信入門教程,模塊出廠固件燒錄 [打印本頁]

作者: a1bc2de3f    時間: 2019-5-9 23:11
標題: 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)


作者: admin    時間: 2019-5-10 05:00
好資料,51黑有你更精彩!!!
作者: swustlx86    時間: 2019-5-10 08:52
感謝分享   CH_PD要給高電平模塊才工作  這條很 有用   以前一直不知道
作者: hufeng    時間: 2019-5-10 16:55
感謝分享,正好在研究這個
作者: 73453453783    時間: 2019-6-23 03:17
太棒了,真是了不起
作者: 終極小饅頭啦    時間: 2019-7-5 12:42
樓主,CH_PD腳我是沒接的,也能正常工作,應該是默認上電高電平的
作者: 76711031    時間: 2019-7-6 22:36
感謝分享~~~~~~~~~~~~~~~~~~~~~
作者: 鵬博士PBs    時間: 2019-7-7 10:33
wift模塊和6395串口進行通信
作者: a1bc2de3f    時間: 2019-7-10 10:44
終極小饅頭啦 發表于 2019-7-5 12:42
樓主,CH_PD腳我是沒接的,也能正常工作,應該是默認上電高電平的

CH_PD沒接的話只能看到紅色燈亮,但是發AT指令是沒有反應的,wifi模塊應該沒有工作,CH_PD接高電平,插到電腦usb口時會看到藍色的燈閃爍,發AT指令正常。
作者: NOP12    時間: 2019-7-16 11:25
我喜歡
作者: 261779498    時間: 2019-7-16 13:48
學習學習,感謝分享
作者: zsheng2011    時間: 2019-7-30 20:09
資料不錯,我已經制作成功了
作者: zk_2019    時間: 2019-8-5 10:45
請問波特率更改不成功是怎么回事呢?手機也連接不上

作者: a1bc2de3f    時間: 2019-8-5 14:48
zk_2019 發表于 2019-8-5 10:45
請問波特率更改不成功是怎么回事呢?手機也連接不上

你是指發更改波特率的AT指令返回的是error嗎?可以刷一下固件看看行不行
作者: q1914702038    時間: 2019-8-8 16:27
怎么讓單片機發給手機上
作者: 517363095    時間: 2019-8-21 14:41
謝謝分享!!!嘗試
作者: 小飛龍    時間: 2019-8-22 18:53
我用的是8266MOD的板子,只需要連RX/TX和GND,已經成功了
作者: GodWorks    時間: 2019-8-23 10:26
good 謝謝分享
作者: Immortal盲點    時間: 2019-8-24 15:56
為什么usb-ttl轉換器插到電腦上串口有警告?
作者: lhrlhr    時間: 2019-8-24 21:32
收藏下…………………………
作者: 鵬博士PBs    時間: 2019-8-25 07:29
漲知識了 不錯不錯 感謝分享
作者: a1bc2de3f    時間: 2019-8-25 07:54
標題: RE: ESP8266 wifi模塊與51單片機通信入門教程,模塊出廠固件燒錄
Immortal盲點 發表于 2019-8-24 15:56
為什么usb-ttl轉換器插到電腦上串口有警告?

這個,,,你usb-ttl的驅動裝了嗎,如果裝了的話可能是電腦串口的某些問題吧,我也不太清楚。
作者: Immortal盲點    時間: 2019-8-25 16:20
為什么連上單片機之后手機沒辦法連接8266而且下載不了程序到單片機上呢
作者: 楓樹566    時間: 2019-8-25 20:22
感謝樓主分享,很不錯
作者: 瀟瀟123    時間: 2019-10-15 17:09
幫大忙了,十分感謝
作者: 篤三信    時間: 2019-10-16 08:43
大學見人用串口,藍牙,ZIGBEE做過,
但是WIFI還是第一次
作者: wcx6270    時間: 2019-10-16 09:24
這個不錯啊
作者: Tgf    時間: 2019-11-16 20:36
請問樓主,為啥要燒固件呀?
作者: Tgf    時間: 2019-11-24 00:51
q1914702038 發表于 2019-8-8 16:27
怎么讓單片機發給手機上

這得需要服務器,可以去用阿里云服務器,學生好像有優惠
作者: CC救救我8    時間: 2020-1-15 10:33
感謝樓主分享!特別是代碼方面的 對我的實現很有意義
作者: lulgs    時間: 2020-1-16 13:41
感謝分享!再加一個手機APP就完美了
作者: avenma    時間: 2020-1-16 14:39
感謝樓主分享
作者: rsurb0371    時間: 2020-3-6 10:15
用AT指令改過波特率,熱點名字,密碼,IP地址,工作模式 之后就永久有效了嗎? 還是用一次改一次?
作者: 這是我    時間: 2020-3-9 12:06
好資料,已經刷好原廠固件,可以改波特率了。
作者: jiajia86    時間: 2020-3-9 14:37
謝謝分享。
作者: ak333    時間: 2020-3-9 16:23
學習了,謝謝樓主,說明很詳細;
作者: yeweixin    時間: 2020-3-23 00:38
請問接usb轉ttl上的3.3v可以嗎,普中的板
作者: wsh791    時間: 2020-3-23 11:33
謝謝分享
作者: denminshen    時間: 2020-4-16 15:40
非常詳細的資料,謝謝樓主分享!
作者: 心羽家電    時間: 2020-4-17 09:21
值得學習 感謝樓主的分享
作者: dehermano    時間: 2020-4-26 16:09
請問8266必須要刷固件庫才能使用嗎
作者: daocheng    時間: 2020-4-27 11:19
好資料,好小巧的ESP8266 wifi模塊,好喜歡!
教程也很詳細,問一下下一步想怎么利用它,打算做什么?
作者: tangystt    時間: 2020-4-27 14:11
值得學習 感謝樓主的分享
作者: dubolin    時間: 2020-5-4 22:49
樓主,可以看一下你的單片機與ESP8266的連線圖嗎?,謝謝
作者: dubolin    時間: 2020-5-5 15:47
yeweixin 發表于 2020-3-23 00:38
請問接usb轉ttl上的3.3v可以嗎,普中的板

請問你用usb轉ttl上的3.3v可以成功嗎
作者: 15817750246    時間: 2020-5-5 20:29
燒錄那里有些資料時DOUT的
作者: 小毛孩子    時間: 2020-5-7 13:13
AP模式是不是只能收不能發啊
作者: Linda12345    時間: 2020-5-16 01:00
很實用,謝謝呀!
作者: 作業暖冬    時間: 2020-6-1 17:04
請問下樓主刷固件有什么用
不刷的話是不是不能使用at指令
作者: carlson-chuo    時間: 2020-6-2 17:49
謝謝,正要學習,感謝分享。
作者: a1bc2de3f    時間: 2020-6-3 12:27
作業暖冬 發表于 2020-6-1 17:04
請問下樓主刷固件有什么用
不刷的話是不是不能使用at指令

一般買來的新模塊都不用刷的,就正常用就行。刷固件就是當你發現有一些奇怪問題的時候(例如波特率的問題或發AT指令返回異常),就可以刷一下,不過也不排除新買的也會有一些奇怪問題,像我師兄買了一個就有問題,刷一下固件就正常了。
作者: a1bc2de3f    時間: 2020-6-3 12:33
dubolin 發表于 2020-5-5 15:47
請問你用usb轉ttl上的3.3v可以成功嗎

有3.3的口應該可以的,不過最好能用萬用表測一下電壓有多少。
作者: 一起擼    時間: 2020-6-4 23:53
很有用,感謝分享
作者: 許老師    時間: 2020-6-5 09:27
很棒,解釋很詳細
作者: weidoit    時間: 2020-6-5 14:58
ESP8266(硬件)+Proteus(軟件)測試通過。




作者: 柏rui    時間: 2020-6-8 11:20
真的有用 十分感謝 謝樓主
作者: 怒天狂龍hbt    時間: 2020-6-8 13:56
學習學習,感謝分享
作者: 楊宮梓    時間: 2020-6-23 14:44
感謝樓主分享,有很大用處
作者: ii11nnocent    時間: 2020-7-24 23:25
首先感謝樓主分享資料。我的情況是這樣的,8266連接電腦,一切指令都沒有問題,包括用手機發送指令,電腦的串口助手可以收到。但是將程序寫道單片機內后,發現手機可以連接8266的wifi,但是無法通過手機的app連接8266,ip地址和端口都已經修改完,點擊連接后顯示連接失敗,是我哪里操作不嗎?是不是需要重新刷固件?
作者: seenian    時間: 2020-10-7 01:18
ii11nnocent 發表于 2020-7-24 23:25
首先感謝樓主分享資料。我的情況是這樣的,8266連接電腦,一切指令都沒有問題,包括用手機發送指令,電腦的 ...

巨佬,解決了嗎,我的也是這樣的,糾結好久了,不知道咋辦。
作者: 麗山小旋風    時間: 2020-10-7 09:51
q1914702038 發表于 2019-8-8 16:27
怎么讓單片機發給手機上

手機應該有一個APP接受單片機的信息,你到τ 寶買8266的時候看看有么有
作者: pcpop    時間: 2020-10-7 14:37
mark一下,舉得很有用
作者: seenian    時間: 2020-10-14 15:24
ii11nnocent 發表于 2020-7-24 23:25
首先感謝樓主分享資料。我的情況是這樣的,8266連接電腦,一切指令都沒有問題,包括用手機發送指令,電腦的 ...

單片機給8266發送指令之前要先加延時,不然上電的時候8266復位會和AT指令沖突,延時要長一點。
作者: faiz999    時間: 2020-11-11 20:50
樓主你好,我的esp8266接了單片機后一直亮藍燈什么問題?
作者: qixiu1342    時間: 2020-11-26 21:51
最近在學8266,看見樓主的資料很不錯,謝謝樓主的分享
作者: ying007    時間: 2020-11-27 09:33
這個要微信或APP操作才更好
作者: kbnh    時間: 2021-1-16 17:03
為什么網絡調試助手不能接收到單片機發出的數據?
作者: 嘉雨加    時間: 2021-1-18 22:20
感謝分享,步驟明了,參考很棒
作者: wbwcf13e    時間: 2021-4-1 15:31
a1bc2de3f 發表于 2019-7-10 10:44
CH_PD沒接的話只能看到紅色燈亮,但是發AT指令是沒有反應的,wifi模塊應該沒有工作,CH_PD接高電平,插到 ...

倆燈都亮是咋回事?
作者: ak333    時間: 2021-4-3 22:24
好資料,謝謝分享,在學習串口透傳
作者: 欣欣    時間: 2021-4-29 15:10
這個ESP8266模塊,用51單片機通信,我一直希望能學習到
今天終于找到了:配置模塊、模塊與51單片機簡單通信、出廠固件的燒錄等內容
真是大好人啊!
作者: lxa0    時間: 2021-4-29 16:05
樓主圖文并貿非常好!
還為大家提供相關資料,
非常感謝你!
作者: yygdzjs    時間: 2021-4-30 10:02
昨天到網上買了,兩個模塊(ESP8226-DTH11溫度濕度,繼電器模塊),
以為已經有 相應程序,測試一下。只有原廠的程序.自己要處理.
看看你們的資料.

作者: lcy960    時間: 2021-6-2 22:05
CH_PD要給高電平模塊才工作  這條很 有用   以前一直不知道

GPIO0一般不用管,燒錄固件時要接地
作者: wwh2382    時間: 2021-6-15 15:53
這兩天刷SOnOFF,然后回復AT指令就亂了。剛才按樓主的介紹刷了出廠固件,恢復正常,且版本有提高。不錯!

作者: yangbulasi    時間: 2021-6-22 16:49
非常好的資料,收下好好學習
作者: pq1972    時間: 2021-6-22 22:13
好資料,雖然現在還看不太懂,慢慢學習
作者: xjx51    時間: 2021-8-7 21:32
太有用了!剛試了下就行了
作者: 風158    時間: 2021-8-7 22:08
dehermano 發表于 2020-4-26 16:09
請問8266必須要刷固件庫才能使用嗎

現在的8266已不需要刷固件了,用軟件修改串口速率為9600以適應單片機,再設置成ap模式,就能讓單片機通過WiFi與手機通訊了,超級簡單。
作者: zhaxiaobian_er    時間: 2021-11-1 15:40
樓主的分享精神 值得學習。 樓主好樣的。
作者: pq1972    時間: 2021-11-22 12:41
買了一塊,還沒開始弄,謝謝樓主的資料
作者: 西點鐘靈毓秀    時間: 2021-11-23 09:42
ESP8266 wifi模塊與51單片機通信入門教程,模塊出廠固件燒錄。非常有用
作者: dokakakak    時間: 2021-12-11 21:38
剛好有個任務就是要做這個差不多的項目,謝謝樓主分享
作者: kentra    時間: 2021-12-12 07:21
wifi模塊應該沒有工作,CH_PD接高電平,插到電腦usb口時會看藍色的燈閃爍,發AT指令正常
作者: 女神    時間: 2021-12-23 13:02
faiz999 發表于 2020-11-11 20:50
樓主你好,我的esp8266接了單片機后一直亮藍燈什么問題?

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




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一区二区三区在线 | 国产婷婷在线视频 | 欧美一区二区三区四区视频 | 自拍偷拍亚洲一区 | 亚洲一区久久 | 最新中文字幕第一页视频 | 亚洲一区 | 粉嫩av在线 | 成人av免费| 亚洲免费影院 | 欧美一级全黄 | 在线观看亚洲一区二区 | 中文字幕一区在线观看视频 | 狠狠操狠狠干 | 亚洲少妇综合网 | 久久一区二区三区四区五区 | 久久综合久色欧美综合狠狠 | 日韩欧美第一页 | 久久伊人精品 | 精品国产视频 | 日韩欧美中文字幕在线观看 | av一区二区三区 | 欧美福利三区 | www国产成人免费观看视频,深夜成人网 | 精品毛片| 性精品 | 亚洲欧美日韩久久 | www国产精品 | 亚洲综合久久网 | 精品欧美 | 久久久蜜臀国产一区二区 | 天堂成人国产精品一区 | 九九九视频 | 亚洲经典一区 | 中文欧美日韩 | 成人高潮片免费视频欧美 | 在线观看视频91 | 国产日韩欧美在线播放 | 在线观看av网站永久 | 日韩精品久久久久 | 亚洲一区国产 |