玩转RT-Thread系列教程(12)--WIFI模组的使用
玩轉RT-Thread系列教程(12)–WIFI模組的使用
本章節也是最有意思的章節,我將帶你手把手物聯網,讓你直觀的感受RTT軟件包的便捷以及強大之處!
一、添加at_device軟件包
1.1、配置Cubemx
根據正點原子開發板原理圖,我們可以看出wifi使用到了串口3,記得用跳線帽將串口3與GBC接口連接。
使能串口3
1.2、打開env配置
使能串口3
1.3、使能at_device
配置用戶信息,輸入您的wifi和密碼
1.4、更新軟件包
1.5、生成mdk工程
二、啟動測試AT組件
打開已經生成好的mdk工程,我們發現自動添加了兩個文件,分別為AT、at_device
2.1、測試前的準備工作
2.1.1、首先讓我們先來了解一下AT指令吧
AT 命令集是一種應用于 AT 服務器(AT Server)與 AT 客戶端(AT Client)間的設備連接與數據通信的方式。
- AT 功能的實現需要 AT Server 和 AT Client 兩個部分共同完成。
- 前綴由字符 AT 構成,主體由命令、參數和可能用到的數據組成;結束符一般為 <CR><LF> ("\r\n")。
- AT Server 和 AT Client 之間支持多種數據通訊的方式(UART、SPI 等),最常用的是串口 UART 通訊方式。
本次我們使用的通信模組為安信可公司出版的ESP8266,以下是改通訊模組常用AT指令:
- AT+RST 復位模組
- AT+GMR 查詢版本信息
- AT+CWMODE=1 開啟模組透傳
- AT+CWJAP=“WIFI名稱”,“WIFI密碼” 模組作為STA模式連接wifi
- AT+CIFSR 查看分配的IP地址
- AT+CIPSTART=“TCP”,“xxxxx”,1883 使用TCP方式連接服務器
- AT+CIPMODE=1 開啟透傳
- AT+CIPSEND 發送數據
2.2、修改at_client+at_device_esp8266文件
修改響應最大支持的接收數據的長度為128,防止緩沖區內存過小
將rt_thread_mdelay函數的延遲時間修改成1000ms,讓AT+RST有足夠時間來運行
2.3、編譯、下載、驗證
可以看到,AT_Client已經成功初始化,并且模組已經成功的連接到wifi。
測試聯網
可以看到輸入ifconfig已經成功的獲取到了ip地址
Ping下百度,可以收到數據包,證明我們的wifi已經成功聯網了
三、可能出現的錯誤匯總
3.1、超時問題
\ | / - RT - Thread Operating System/ | \ 4.0.2 build Aug 16 20192006 - 2019 Copyright by rt-thread team [32m[I/sal.skt] Socket Abstraction Layer initialize success.[0m [32m[I/at.clnt] AT client(V1.3.0) on device uart3 initialize success.[0m [0m[D/at.dev] the network interface device(esp0) set up status[0m [0m[D/at.dev] esp8266 device(esp0) initialize start.[0m [31m[E/at.clnt] Read response buffer failed. The Response buffer size is out of buffer size(256)![0m [0m[D/at.clnt] execute command (ATE0) timeout (5000 ticks)![0m [32m[I/at.dev] esp8266 device(esp0) initialize retry...[0m1.Read response buffer failed. 緩沖區內存過小,那我們就直接增大就好了
2.command (ATE0)運行超時,ATE0是AT指令中的關閉回顯,出現這個問題的原因可能是AT組件初始化時間過短
解決緩沖區內存過小問題
修改響應最大支持的接收數據的長度為128,防止緩沖區內存過小
解決ATE0運行超時問題
AT_SEND_CMD(client, resp, "AT+RST"); /* reset waiting delay */ rt_thread_mdelay(2000);//增加延時 /* disable echo */ AT_SEND_CMD(client, resp, "ATE0");3.2、不支持AT+CIPDNS_CUR?指令—8266的固件版本太低
解決`AT+CIPDNS_CUR?指令問題
訪問樂鑫的官網去下載更新版本的AT固件,https://www.espressif.com/zh-hans/support/download/at,并燒錄固件即可
總結
以上是生活随笔為你收集整理的玩转RT-Thread系列教程(12)--WIFI模组的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联网时代之核心 论人工智能未来发展趋势
- 下一篇: Java编程工具(11):IDEA 服务