esp8266模塊 stm32通信及實戰經驗總結

u過本人還是在校菜鳥一隻,最近跟着學長做東西,第一次使用WIFI模塊與stm32進行通信,半天過去了,終於對ESP8266有了一定的理解,在此篇博客中,我只介紹如何使用(步驟以及注意事項),儘量不涉及太多的理論知識(況且我這個小白也不懂啊)。博客會不斷補充,小編也不想湊博客數量,一切務實爲準,不對之處,還請朋友們指出,共同進步。

參考了一篇很棒的博客,鏈接如下:https://blog.csdn.net/qq_23922117/article/details/73042693

ESP8266一共有三種角色/工作模式,分別是:1.Station (客戶端模式)2.AP (接入點模式)3.Station+AP (兩種模式共存)

客戶端模式就是作爲設備(client)連接區域網內路由,接入點模式即是作爲路由(sever),允許其他設備連接ESP8266.第三種即是同時扮演兩種角色。與藍牙模塊相似,esp8266也需要進行AT指令設置。下面進行具體操作:

第一步,連接CH340轉TTL模塊和ESP8266(esp8266和esp8266-01s接線方式完全一樣,功能也基本相同。)

     

CH340-TTL----------ESP8266
TX -----------URXD(注意不要接反了)
RX ---------- UTXD(注意不要接反了)
3v3 ----------CH_PD
3v3-----------VCC(不要5V供電)
GND---------GND,連接線路之後,打開串口調試助手,設置波特率爲115200,然後發送“AT”(這裏的串口助手發送AT,需要追加回車換行,即Enter鍵,然後點擊發送,模塊才能返回OK的字樣,後邊的所有的AT指令也是如此),ESP8266就能返回"OK"的字樣了,表示接線無誤,通信正常。

一、透傳模式即是STA模式:ESP8266模塊要和電腦(服務端)在同一個局域網中。對路由器不需要任何其他的配置,只需要知道WIFI名稱和密碼;也不需要有外網;首先解釋一下,當設備加入路由器的時候,路由器會給不同設備分配一個不同的IP地址,對電腦來說也就是電腦裏查看的IPv4的那個IP。  通過電腦可以查看ip地址,也可以通過路由器查看ip地址。 有些設備不能自己查看,就可以通過路由器查看了。通過電腦開一個服務器,這個端口號可以自己修改,但是ip地址要使用在局域網中的那個ip。

原文:https://blog.csdn.net/m0_38048888/article/details/79768412
具體步驟

1.AT+RST,迴歸出廠設置。

2.是讓esp8266模塊連接WIFI。備註:想要連接的WIFI賬號最好是英文或者數字的,如果存在漢字,很容易連接失敗。

查看當前ES8266模塊可以連接的WIFI,語句:AT+CWLAP,然後發送即可。我的效果是:(第一個WIFI賬號就出現了亂碼)

3.連接WIFI語句:AT+CWJAP="ssid","password" // 傳入路由的ssid password,(ssid儘量爲非中文)。輸入這句,就可以連接上指定WIFI了。

查詢設備的IP,AT+CIFSR,返回即使設備的IP地址。(暫時不說怎麼用)

4.在 PC 上使用網絡調試助手,創建一個服務器。協議類型爲  TCP Server.還有本地IP地址是固定的,它取決於電腦所連接的WIFI賬號IP。按照固定格式輸出

注意,如果出現了返回“ERROR CLOSED”的字樣,由兩種原因造成:(1)沒有關閉電腦防火牆,解決辦法就是關閉防火牆。(2)電腦端和ESP8266連接的不是同一個WIFI,解決辦法是,連接到同一個WIFI下。(小編在這裏鼓搗了一下午才弄明白解決這兩個問題)

5.開啓透傳模式:AT+CIPMODE=1,響應OK。

6.開始透傳:AT+CIPSEND,然後在發送的任何數據都會在另一端接收到,這裏是指:串口助手和網絡調試助手之間。

說的接地氣一點,透傳模式就類似兩個藍牙配對,相互可以收發數據,而且一段發生麼,另一端接受什麼,對於發送信息的內容沒有限制。

二、單連接模式(Client)

與上一個模式區別在於:發送數據的長度可以自定義,並且只能單發單接受。

發送數據AT+CIPSEND=4 // 發送四個字節,字節數可按需任定>DGFY // 輸入要發送的四個字節內容,無需回車。

響應:SEND OK

注意,若發送的字節數目超過了指令設定的長度n,則會響應busy,併發

送數據的前 n 個字節,完成後響應SEND OK

暫時就寫到這裏,項目實戰時再做進一步解析。

---------------------------------------------------------------------------------------------------------------第一次補充

今天做一下補充,通過TCP協議,esp8266將數據傳輸至指定網站服務器。

由於以前都是做單片機通過esp8266發送數據給電腦端口查看一些數據,如今,我們來聊聊更爲實用一點的知識。

基本的硬件配置都不用變,但是有幾個關係是需要一定弄清楚的。

first.------------------------設備的IP地址,即是ESP8266的IP地址(具體還沒有用過這個數據)

second--------------------網絡調試助手的IP地址以及端口號(它的IP地址取決於電腦所連接的路由的地址,端口號可以自己設置)

third-----------------------配置esp8266的AT+CIPSTART="TCP","******",*****。配置它的作用在於,讓該模塊與該IP地址建立連接,發送信息。****如果將這裏的IP地址改成某個網站服務器的地址,那麼即可將數據上傳到該網站,用於更多的作用****

同時,這種建立連接的方式可以通過“http”,“tcp”等多種方式,建立通信的方式不同,自然也就需要軟件端不同的程序框架來配合咯。

說到底,應該如何上手操作呢?

先說串口助手AT指令的配置。--------------只需要將AT+CIPSTART="TCP","******",****。語句中的IP地址改爲網站的IP地址,同時,也要匹配端口號。

舉例:加入已知IP號,39.96.179.213、端口號爲80(軟件端可以自行設定),則語句即爲AT+CIPSTART="TCP","39.96.179.213",80(然後串口助手發送)

然後再說新知識---“數據發送語句”,切記注意標點符號。加入已知網站地址http://jc.itwany.com/data.php

注意網站信息與格式的對應。

這個道理是通用的,哪怕是其他的網站地址,按照格式修改即可。

我發送的數據是1111,但是和前面的“消息頭”中間存在一行空白,這裏的回車換行是爲了什麼,小編也不清楚,總之是大佬這麼指點的。按照上面格式發送,軟件端就能夠接收到相應消息咯。成功發送一條消息之後,一般都會有返回信息(這個根據個人喜好設定),內容當然就是自由添加了。

實現效果:訪問某個指定的後臺服務器,發送數據,並且數據按照一定格式返回。

小弟愚鈍,大牛不喜勿噴。以後有空再進行添加,沒有時間去搜集相關佐證資料了,若有不對之處,請大家指正,共同學習,共同進步。

---------------------------------------------------------------------------------------------------------------第二次補充(很簡短,重點知識在下一個博客)

上一次咱們說道哪兒了?直接記錄新知識吧。

上一次寫的esp8266發送數據到指定網站方式,哎,禁不起實踐的檢驗。不是說這種方式不行,而是說這方式在真正的工程中用到的很少,太耗費時間(編寫相關代碼的時候)

接受一個項目,需要實現數據從單片機----------》後臺服務器;開始繼續沿用老辦法,一想到在stm32裏

給esp8266編寫基本的AT指令時,前邊都要加上那麼一大串無用的數據,由於標點符號等等,非常容易犯錯,需要多一些時間去實現信息配對(項目裏要求不能使用屏幕或者串口助手SO,壓力山大)

說說實際的解決辦法吧。。。。我去找了一個軟件大佬,偷學了兩手。

實際上,在硬件部分,我已經設定了AT+CIPSTART="TCP","39.96.179.213",80(然後串口助手發送)//裏邊設定了發送信息統一遵循TCP協議,就像你發送數字6,但是在實際的發送過程中,esp8266內部就幫你加上了消息頭,開發者只需要負責“發送數據”,而無需關心數據的實際格式。

爲了檢驗數據的收發無誤,我在後臺服務器裏如此設置。只要接收到數據,後臺服務器就會返回“Swoole:+原數據”

如果硬件發送“success”,軟件端返回的數據就是“Swoole+success”。

在硬件端口,我發送“123456”

 

返回的數據就是標準的。

至於後臺服務器如何實現的?就是用了一些框架搭建的,並非自己最初鼓搗的“原生”程序。具體軟件知識,我放在下一個博客在記錄吧。太困了。

對了,有一點我後來才明白,所謂“透傳”,就是你只管傳輸就行了,就想透明的管道,你發什麼,這邊原樣呈現你發送的數據,不過,你需要匹配好兩端的程序---------->TCP協議,軟件端就對應TCP協議進行解碼信息。

--------------------------------------------------------------------------------------------------------第三次補充(項目實戰經驗)

 

我曾許下十年,只爲最美的遇見。

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章