#C0104
——《滄海拾昧集》@CuPhoenix
前言
????WiFi串口通訊模塊是嵌入式初學(xué)者需要接觸到的一種常用模塊,可以用于少量數(shù)據(jù)的串口通信(如:傳感器數(shù)據(jù)的傳輸、控制命令等),但在大量數(shù)據(jù)(如:視頻)的傳輸方面力有不逮。常用的WiFi串口通訊模塊有 ESP8266 等。
????本文將簡要介紹 ESP8266 模塊在使用時的基礎(chǔ)內(nèi)容和部分常見問題,并以野火例程 WiFi透傳控制LED燈 為例,對 ESP8266 模塊進行基本介紹。
本文用到的軟硬件環(huán)境是:
- STM32F103RCT6 最小系統(tǒng)板(Yourcee)
- ESP8266 WiFi串口通訊模塊(野火)
- CH340 USB-TTL轉(zhuǎn)換模塊
- Keil5 + 野火多功能調(diào)試助手(調(diào)試助手下載鏈接 提取碼:rau0)
一、ESP8266模塊基本連線
?
???? ESP8266 模塊的引腳和功能如下表:
引腳名稱 | 功能 |
---|---|
VCC | 高電平,接3.0~3.3V |
GND | 地 |
UTXD | USART Tx |
URXD | USART Rx |
RST | 復(fù)位重啟,低電平有效(懸空時為高) |
CH_PD | 模塊使能,高電平使能(懸空為低) |
GPIO0 | 與Flash燒錄功能有關(guān),接地為Flash燒錄狀態(tài),懸空為工作狀態(tài) |
GPIO1 | 懸空為高,在工作狀態(tài)時禁止拉低 |
?
???? 模塊可以通過USB-TTL模塊連接計算機,也可以直接接在單片機上使用。在工作狀態(tài),僅需將VCC、GND、CH-PD與 3.3V / GND 相連,UTXD、URXD 分別與 Rx / Tx 相連即可。GPIO0 和 RST 僅在固件燒錄時需要連接。(但通常也會為 RST 分配一個引腳進行連接,以便進行復(fù)位控制)
可能出現(xiàn)的問題:
- 強烈推薦模塊的供電直接用單片機進行供電,這樣可以保證供電電壓的穩(wěn)定和電流的充足,否則可能出現(xiàn)發(fā)送指令無回應(yīng)或亂碼的情況。
- 在使用USB-TTL模塊進行供電時,要注意所用的USB接口能提供的電流,尤其是臺式機建議使用機箱背面的USB3.0插口,USB2.0插口很可能出現(xiàn)供電不足的情況。(供電不足的現(xiàn)象是:USB-TTL模塊和ESP8266模塊上的紅燈都正常常亮,但發(fā)送AT指令無“OK”回文)
- 在使用獨立電源或混合供電的方式時,要注意將所有供電方式的GND相連,即需要共地。
?
二、ESP8266固件燒錄
???? 固件燒錄是指往模塊里燒錄需要的指令(如 AT 指令集),存在其Flash中,以便使用、調(diào)試。通常廠家在出廠時會預(yù)燒錄好 AT 指令集,不需要再自行燒錄。如果指令集無法使用,則需要再次進行燒錄。
1、燒錄準備
???? 固件燒錄需要準備燒錄用的文件和燒錄軟件,下載鏈接如下。
資源下載:
- 固件燒錄文件(8Mbit Flash 版) 提取碼:3t4g
- 樂鑫科技 Flash 燒錄工具
2、燒錄過程
???? 固件燒錄時,要將VCC、CH_PD接 3.3V ,GND、GPIO0、RST接地,UTXD、URXD接USB-TTL的Rx、Tx,然后打開燒錄工具,設(shè)置文件、地址、模式、端口、波特率(通常為115200),點擊開始,在狀態(tài)顯示為 等待上電同步 后,拔掉RST的接地線將其變成懸空,狀態(tài)即變?yōu)?下載中 ,等待下載完成即可。
?
?
三、ESP8266基本調(diào)試
???? 將ESP8266模塊通過USB-TTL接到計算機上,打開串口調(diào)試助手,設(shè)置波特率為115200,可以進行調(diào)試。所需要的數(shù)據(jù)手冊下載鏈接如下。
???? 固件燒錄需要準備燒錄用的文件和燒錄軟件,下載鏈接如下。
資源下載:
- ESP8266 AT 指令集 提取碼:hrrv
- ESP8266 AT 指令使用實例 提取碼:xa5u
?參考資料:
- ESP8266 功能/模式簡介
1、簡單調(diào)試
???? 在手冊里找到 AT 指令,進行簡單調(diào)試。這里舉例一個:設(shè)置為 STA 模式,并連接 WiFi ,然后查看當前連接的 AP 信息。
可能出現(xiàn)的問題:
- AT 指令需要以換行回車結(jié)尾,沒有換行回車可能出現(xiàn)問題。
AT+GMR // 查看基本信息
AT+CWMODE_CUR=1 // 設(shè)置為STA模式
AT+CWJAP_CUR="CU_92QW","yddm3a4j" // 連接網(wǎng)絡(luò)名稱為CU_92QW,密鑰為yddm3a4j的網(wǎng)絡(luò),不將連接信息記錄在Flash中(臨時連接)
AT+CWJAP_CUR? // 查看當前連接的網(wǎng)絡(luò)狀態(tài)
AT+CWQAP // 斷開連接
四、野火WiFi透傳例程演示
???? 以野火WiFi透傳例程為例,演示 ESP8266 模塊的上板調(diào)試。
資源下載:
- 野火 ESP8266 例程下載 提取碼:2qnb
?參考資料:
- WiFi 透傳例程介紹文檔
???? 打開例程后,對關(guān)鍵代碼進行修改,然后編譯燒錄。需要修改的代碼有:LED燈的引腳、USART的引腳、WIFi連接的網(wǎng)絡(luò)名稱與秘鑰。其位置如下:
<bsp_led.h>
/* 根據(jù)開發(fā)板實際引腳情況,對LED燈對應(yīng)的 GPIO 端口號進行修改 */
#define LED1_GPIO_PORT GPIOA
#define LED1_GPIO_CLK RCC_APB2Periph_GPIOA
#define LED1_GPIO_PIN GPIO_Pin_8
#define LED2_GPIO_PORT GPIOD
#define LED2_GPIO_CLK RCC_APB2Periph_GPIOD
#define LED2_GPIO_PIN GPIO_Pin_2
<bsp_usart1.h>
/* 根據(jù)開發(fā)板實際引腳情況,對 USART1 對應(yīng)的 GPIO 端口號進行修改 */
#define DEBUG_USARTx USART1
#define DEBUG_USART_CLK RCC_APB2Periph_USART1
#define DEBUG_USART_APBxClkCmd RCC_APB2PeriphClockCmd
#define DEBUG_USART_BAUDRATE 115200
// USART GPIO 引腳宏定義
#define DEBUG_USART_GPIO_CLK (RCC_APB2Periph_GPIOA)
#define DEBUG_USART_GPIO_APBxClkCmd RCC_APB2PeriphClockCmd
#define DEBUG_USART_TX_GPIO_PORT GPIOA
#define DEBUG_USART_TX_GPIO_PIN GPIO_Pin_9
#define DEBUG_USART_RX_GPIO_PORT GPIOA
#define DEBUG_USART_RX_GPIO_PIN GPIO_Pin_10
#define DEBUG_USART_IRQ USART1_IRQn
#define DEBUG_USART_IRQHandler USART1_IRQHandler
<bsp_esp8266_test.h>
/* 根據(jù)要連接的網(wǎng)絡(luò)和調(diào)試使用的計算機(作為服務(wù)器)進行修改 */
#define macUser_ESP8266_ApSsid "CU_92QW" // 網(wǎng)絡(luò)名稱
#define macUser_ESP8266_ApPwd "yddm3a4j" // 網(wǎng)絡(luò)密鑰
#define macUser_ESP8266_TcpServer_IP "192.168.1.7" // 計算機(服務(wù)器)在局域網(wǎng)中的IPV4地址
#define macUser_ESP8266_TcpServer_Port "8000" // 連接計算機(服務(wù)器)使用的端口號,不必修改
如何獲取本機IPV4地址:
- 在命令提示符(cmd)中,使用 ipconfig 命令,即可查看本機的 IPV4 地址。
- 注意:ESP8266 模塊必須和服務(wù)器連接在同一局域網(wǎng)中。
???? 按參考資料中的方法配置串口調(diào)試助手和網(wǎng)絡(luò)串口調(diào)試助手,上機演示如下:
敬謝諸君。文章來源:http://www.zghlxwxcb.cn/news/detail-783009.html
京華西山之巔。文章來源地址http://www.zghlxwxcb.cn/news/detail-783009.html
到了這里,關(guān)于【滄海拾昧】WiFi串口通信ESP8266模塊基本介紹(附野火WiFi透傳實例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!