精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

合宙Air780EP模塊AT開發-HTTP應用指南

合宙LuatOS ? 2024-08-01 17:15 ? 次閱讀

簡介

關聯文檔和使用工具:

  • AT固件獲取
  • AT指令手冊

概述

4G模塊支持HTTP和HTTPS協議, HTTP應用的基本流程如下:

1、激活PDP

2、初始化HTTP服務

3、設置HTTP會話參數

4、如果要支持SSL,配置SSL參數

5、如果使用POST命令,輸入POST數據

6、發起HTTP請求

7、收到HTTP應答,讀取應答數據

8、終止HTTP服務 第1步出現異常后:首先需要排查http連接和請求參數是否正常,通過postman是否可以請求成功,模塊上網是否正常(AT+CEREG?) 第2步到第5步,只要輸入格式正確,基本不會出問題;如果出錯,可以跳過,直接處理第6步的異常 第6步和第7步出現異常后:終止HTTP服務,有選擇性的去激活PDP;然后再有選擇性的激活PDP,從第2步開始重新執行

材料準備

  • [EVB_Air780EP]開發板一套,包括天線SIM
  • USB
  • PC電腦
  • 串口調試工具(如果沒有準備,推薦可以使用llcom,下載地址:https://llcom.papapoi.com)
  • AT固件獲取:https://gitee.com/openLuat/airm2m-ec718-at/releases ,進頁面按下Ctrl+F 搜索 AirM2M_780EP_LTE_AT 即可找到780EP模塊所使用的AT固件,推薦選用該固件名稱后面數字版本號最高的最新relase版本進行調試。
  • 當前文檔示例使用AirM2M_780EP_V1007_LTE_AT版本固件(除780EP模塊不能燒錄,但可以在上面AT固件獲取連接獲取到其他模塊型號的AT固件。)
wKgaomad_iCAGM1mACObj6OhrXM912.png

HTTP GET請求示例

具體指令和參數使用說明,可參考AT指令手冊

AT+CPIN? +CPIN: READY //查詢sim卡是否正常 OK AT+CGATT? +CGATT: 1 //查詢是否附著上數據網絡,如果返回+CGATT: 0表示未附著上 OK AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","" //設置APN,此處""表示使用從網絡端自動獲取到的APN OK AT+SAPBR=1,1 //發起激活PDP的請求 OK AT+SAPBR=2,1 //注意:此命令僅僅查詢PDP地址,可以不執行 +SAPBR: 1,1,"10.159.1.145" //請求到的PDP地址 OK AT+HTTPINIT OK AT+HTTPPARA="CID",1 OK AT+HTTPPARA="URL","airtest.openluat.com" OK AT+HTTPACTION=0 // GET請求 OK +HTTPACTION: 0,200,285 AT+HTTPREAD +HTTPREAD: 285 <2;title>Document<2;/title> Hello OK

在這個過程中,注意事項如下:

1、發送AT+HTTPACTION命令后,收到OK僅僅表示4G模塊開始處理這條命令,并不表示請求發送成功,收到了應答;只有收到+HTTPACTION: n,statusCode,len才表示請求結束,statusCode表示應答成功,其余都表示應答失敗 2、HTTP應答數據的緩沖區大小為4KB,如果返回的http body數據超過了這個大小,則需要斷點下載,可以使用AT+HTTPPARA命令,通過設置BREAK和BREAKEND參數來實現

2、HTTP被動斷開示例 發送AT+HTTPACTION命令,和服務器建立了http連接后,如果連接異常被動斷開,會輸出+HTTPACTION: ,,提示

3、PDP被動去激活示例 先來看下PDP被動去激活時的AT命令處理序列,如果不理解AT命令含義,請自行參考AT手冊。

+PDP DEACT // 出現PDP去激活的URC上報,后面如果沒做任何處理,接著做http請求會失敗,可以按照下方的建議處理。

應對處理每次結束都需要重新走一遍HTTP請求流程

第一種方法:

AT+CIPSHUT // 關閉移動場景

第二種方法:

AT+CIPSHUT // 關閉移動場景

AT+CGDCONT=5,"IP",""http://請填寫實際APN

AT+CGACT=1,5

第三種方法:

AT+CFUN=0 // 進入飛行模式

AT+CFUN=1 // 退出飛行模式

第四種方法:

AT+RESET // 重啟模塊

參考下發流程中收到"+SAPBR 1: DEACT"錯誤提示,表示PDP被動去激活,為異常處理的觸發點。

AT+HTTPINIT OK AT+HTTPPARA="CID",1 OK AT+HTTPPARA="URL","www.baidu.com" OK AT+HTTPACTION=0 // 傳入0為GET請求 OK +SAPBR 1: DEACT // 此處PDP被動去激活 +HTTPACTION: 0,601,0 AT+HTTPTERM OK // 此處無論返回OK、ERROR還是CME ERROR,都直接跳過,不用做正確性判斷 AT+SAPBR=0,1 +CME ERROR: 3 // 此處無論返回OK、ERROR還是CME ERROR,都直接跳過,不用做正確性判斷 -------------------- 下方進行異常處理 AT+CIPSHUT // 關閉移動場景 OK AT+CGDCONT=5,"IP","" // 請填寫實際APN OK AT+CGACT=1,5 // 激活PDP OK AT+HTTPINIT OK AT+HTTPPARA="CID",1 OK AT+HTTPPARA="URL","airtest.openluat.com" OK AT+HTTPACTION=0 OK +HTTPACTION: 0,200,285

HTTP POST請求示例

POST請求流程與GET流程基本一致,只有AT+HTTPACTION指令參數要從AT+HTTPACTION=0變為AT+HTTPACTION=1

具體指令和參數使用說明,可參考AT指令手冊

AT+CPIN? +CPIN: READY //查詢sim卡是否正常 OK AT+CGATT? +CGATT: 1 //查詢是否附著上數據網絡,如果返回+CGATT: 0表示未附著上 OK AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","" //設置APN,此處""表示使用從網絡端自動獲取到的APN OK AT+SAPBR=1,1 //發起激活PDP的請求 OK AT+SAPBR=2,1 //注意:此命令僅僅查詢PDP地址,可以不執行 +SAPBR: 1,1,"10.159.1.145" //請求到的PDP地址 OK AT+HTTPINIT OK AT+HTTPPARA="CID",1 OK AT+HTTPPARA="URL","airtest.openluat.com" OK AT+HTTPACTION=1 // POST請求 OK +HTTPACTION: 0,200,285 AT+HTTPREAD +HTTPREAD: 285 <2;title>Document<2;/title> Hello OK

HTTPS SSL請求示例

具體指令和參數使用說明,可參考AT指令手冊

帶SSL證書雙向驗證功能的HTTPS過程:

AT+FSCREATE="ca.crt" // 創建服務器端CA 證書文件 OK

AT+FSCREATE="client.crt" // 創建客戶端證書文件 OK

AT+FSCREATE="client.key" // 創建客戶端密鑰文件 OK

AT+FSWRITE="ca.crt",0,2080,15 // 文件長度2080字節只是舉例,要根據實際填寫。指令發送后會返回">",隨后寫入數據

這里輸入CA證書文件 OK

AT+FSWRITE="client.crt",0,128,10 // 指令發送后會返回">",隨后寫入數據 這里輸入客戶端證書文件 OK

AT+FSWRITE="client.key",0,188,10 // 指令發送后會返回">",隨后寫入數據 這里輸入客戶端密鑰文件 OK

AT+SAPBR=3,1,"CONTYPE","GPRS" OK

AT+SAPBR=3,1,"APN","" // 設置PDP承載之APN參數 模塊注冊網絡后會從網絡自動獲取并激活一個 PDP上下文,用于RNDIS上網使用(此可以通 過AT+CGDCONT?來查詢),所以輸入 AT+SAPBR=3,,"APN","" 即可,模塊內部會按 照自動獲取的來設置APN OK

AT+SAPBR=1,1 OK

AT+SAPBR=2,1 +SAPBR: 1,1,010.169.179.213

OK

下發ssl配置請根據實際請求服務器所需要的進行設置

AT+SSLCFG="cacert",153,"ca.crt" // 設置服務器CA 證書 SSL 上下文id,在TCP單鏈接的情況下缺省為0; 在HTTPS鏈接下為153,下同 OK

AT+SSLCFG="clientcert",153,"client.crt" // 設置客戶端證書 OK

AT+SSLCFG="clientkey",153,"client.key" // 設置客戶端KEY OK

AT+SSLCFG="seclevel",153,2 // 設置安全等級 OK

AT+SSLCFG="ciphersuite",153,0X0035 // 設置加密套件 OK

AT+SSLCFG="clientrandom",153,01B12C31 41516171F19202122232425262728293031 323334353637D // 設置隨機數 OK

AT+HTTPINIT // HTTP協議棧初始化 OK

AT+HTTPPARA="CID",1 // 設置HTTP會話參數:CID OK

AT+HTTPPARA="URL","https://..**" // 設置HTTP會話參數:URL 請寫具體的網址,而不要照抄 OK

AT+HTTPACTION=0 // GET 開始 OK

+HTTPACTION:0,200,1348

+HTTPACTION:0,200,1348

+HTTPACTION:0,200,1348 … … // 出現這些URC上報表明GET數據成功,等待READ

AT+HTTPREAD // 讀取從HTTP 服務器GET的數據

+HTTPREAD:1592 ……………… // ...表示HTTP數據

OK

AT+HTTPTERM // 結束HTTP服務 OK

斷點續傳

在實際的應用場景中,可能需要下載一個非常大的文件,例如幾百K字節、幾M字節,但是4G模塊中HTTP可用的內存緩沖區780EP模塊只有4KB左右,當文件大小超過這個緩沖區時,就要使用斷點續傳功能來分段下載處理了。下面以“下載一個119345字節的文件”為例,來說明如何使用斷點續傳功能(注意:本示例僅僅演示了正常流程的HTTP AT命令,完整流程以及異常處理流程請參考本文應用流程部分)

AT+CGATT? +CGATT: 1 OK AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","" OK AT+SAPBR=1,1 OK AT+SAPBR=2,1 +SAPBR: 1,1,"10.55.195.210" OK AT+HTTPINIT OK AT+HTTPPARA="URL","http://rcems.hzccs.com/upfile/ROBAM-M2-V13704A7-20240308-APP.bin" OK AT+HTTPACTION=2 // 使用head方式請求 OK +HTTPACTION: 2,200,0 AT+HTTPHEAD +HTTPHEAD: 247 Accept-Ranges: bytes ETag: W/"119345-1710117624106" Last-Modified: Mon, 11 Mar 2024 00:40:24 GMT Content-Type: application/octet-stream Content-Length: 119345 Date: Mon, 22 Jul 2024 03:34:24 GMT Keep-Alive: timeout=20 Connection: keep-alive OK //如下指令,表示下載文件的第一個3KB數據 AT+HTTPPARA="BREAK",0 OK AT+HTTPPARA="BREAKEND",3071 OK AT+HTTPACTION=0 OK +HTTPACTION: 0,206,3072 AT+HTTPREAD +HTTPREAD: 3072 ...... //此處輸出3072字節數據 OK //表示下載文件的第一個3KB數據完成 //如下指令,表示下載文件的第二個3KB數據 AT+HTTPPARA="BREAK",3072 OK AT+HTTPPARA="BREAKEND",6143 OK AT+HTTPACTION=0 OK +HTTPACTION: 0,206,3072 AT+HTTPREAD +HTTPREAD: 3072 ...... //此處輸出3072字節數據 OK //表示下載文件的第二個3KB數據完成 //此處參考上文指令,一直循環讀取文件的下一個300KB數據,直到讀取結束 ...... AT+HTTPTERM // 斷開HTTP OK

常見問題

1、HTTP支持多連接嗎

目前HTTP僅支持單連接,不支持多連接

2、HTTPS如何使用

本文主要描述了基本流程和異常處理,對于HTTPS使用方法沒有做過多描述,這一部分,請自行參考AT指令手冊HTTP章節下《使用方法舉例》中的"帶SSL證書驗證功能的HTTPS流程"使用方法;支持的SSL參數,請自行參考AT+SSLCFG命令說明 如果SSL的參數配置不變,則每次開機運行過程中,僅設置一次即可

3、重試多次PDP,HTTP應用一直連接失敗

如果重試多次PDP激活,PDP一直激活失敗,或者HTTP一直請求應答失敗,則嘗試使用如下手段恢復:

? 使用RESET引腳復位模塊

? 極端情況下,直接給模塊斷電,再上電,POWER KEY引腳拉低開機

4、HTTP下載的大文件如何可靠的發送給MCU(AT流控)

需要在斷點續傳流程指令里開頭加入AT+IFC的配置指令

AT+HTTPREAD

+HTTPREAD: 3072

...... //此處輸出3072字節數據

OK …處的3072字節數據,是模塊通過UART AT口發送給MCU,在實際傳輸過程中,由于串口芯片驅動、MCU端的處理能力、波特率的選擇都存在不確定性,可能會導致MCU端接收到的數據,實際上沒有3072字節,這就要求UART AT口打開流控功能。模塊支持硬流控和軟流控兩種:

硬流控,參考如下步驟操作: (1) 模塊和 的UART口,CTS、RTS要交叉相連

(2) MCU端固件要支持并且打開硬流控功能

(3) MCU端要發送AT+IFC=2,2命令到模塊端,打開模塊端的硬流控功能

軟流控,參考如下步驟操作: (1) MCU端固件要支持并且打開軟流控功能

(2) MCU端要發送AT+IFC=1,1命令到模塊端,打開模塊端的硬流控功能

5、為什么我只發了10字節消息,100次卻消耗了很多流量?

因為還有HTTP自帶的請求頭。

6、為什么頻繁請求會失敗?

支持的http連接總數有限數量為tcp連接數量8個,建議一個http連接返回請求結果之后,再去請求下一個連接;不要使用循環定時器方式不斷的發起新的http請求。

7、如何POST文件?

主要是使用AT+HTTPDATA命令錄入文件數據后,發送AT+HTTPACTION=1利用post上傳

8、數據發送接收緩存問題

AT版本:有緩存機制,內存中有一個的緩沖區(780EP模塊AT固件HTTP緩存為4KB),發送和接受使用的是同一塊緩沖區,發送和收到數據后,插入此緩沖區,然后通過AT口輸出urc,提示收到的數據長度;緩沖區滿之后,再收到新數據,會丟棄新收到的數據,并通過AT口輸出urc提示出錯;需要讀取數據時,發送AT+HTTPREAD命令讀取,可分段讀取,也可全部讀取

注意:緩沖區位于內存中,斷電或者重啟后,緩存表中的數據會被清空;雖然緩沖區可以緩存很多數據,但是建議收到數據時,通過AT+HTTPREAD及時讀取出來,以防緩沖區滿出錯

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2670

    瀏覽量

    47340
  • HTTP
    +關注

    關注

    0

    文章

    501

    瀏覽量

    31056
  • 合宙通信
    +關注

    關注

    0

    文章

    147

    瀏覽量

    1726
收藏 人收藏

    評論

    相關推薦

    Air780EP模塊Lua開發阿里云應用指南

    Air780EP模塊Lua開發阿里云超詳細教學!看完包學會!
    的頭像 發表于 08-08 09:00 ?865次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780EP</b><b class='flag-5'>模塊</b>Lua<b class='flag-5'>開發</b>阿里云應用<b class='flag-5'>指南</b>

    MQTT應用看這篇!Air780EP_LuatOS_MQTT應用指南

    Air780EP的低功耗4G模組之一,支持LuatOS的腳本二次開發,即使是不太懂技術的老板,也能輕松使用 Air780EP
    的頭像 發表于 08-08 17:13 ?1740次閱讀
    MQTT應用看這篇!<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780EP</b>_LuatOS_MQTT應用<b class='flag-5'>指南</b>

    Air780EP模塊開發常見問題——異常斷鏈篇

    在用Air780EP模塊開發的時候,有時候會遇到收不到網絡數據的問題。 這里把遇到的問題和排查方法記錄下來,希望能夠幫助到大家!
    的頭像 發表于 08-09 17:47 ?2815次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780EP</b><b class='flag-5'>模塊</b><b class='flag-5'>開發</b>常見問題——異常斷鏈篇

    Air780EP模塊——AT指令MQTT接入OneNET開發指南

    過程,Air780EP和MQTT是最佳拍檔,讓設備互聯變得輕松又靠譜。想不想試試這簡單又神奇的操作?那就來吧!本文詳細講解了基于Air80EP
    的頭像 發表于 08-19 16:40 ?2028次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780EP</b><b class='flag-5'>模塊</b>——AT指令MQTT接入OneNET<b class='flag-5'>開發指南</b>

    AT指令速通FTP:Air780EP模塊超詳細教程

    Air780EP低功耗4G模組AT開發接入FTP超詳細示例!
    的頭像 發表于 08-20 17:40 ?2310次閱讀
    AT指令速通FTP:<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780EP</b><b class='flag-5'>模塊</b>超詳細教程

    FTP應用看這篇!Air780EP低功耗4G模組AT開發示例

    ? Air780EP的[低功耗4G模組]之一,支持全系列的AT指令以及LuatOS腳本二次開發。 本文應各位大佬邀請,詳細講解了Air780E
    的頭像 發表于 09-29 09:36 ?1748次閱讀
    FTP應用看這篇!<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780EP</b>低功耗4G模組AT<b class='flag-5'>開發</b>示例

    | Air780EP首版LuatOS固件發布,新品模組內測搶先體驗

    11月27日,推出 《9.9盲訂!Air780EP新品4G開發板福利今日開啟》 鐵粉活動
    的頭像 發表于 12-11 12:20 ?2697次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b> | <b class='flag-5'>Air780EP</b>首版LuatOS固件發布,新品模組內測搶先體驗

    Air780EP模塊AT開發FOTA遠程升級指南

    Air780EP模塊AT開發FOTA遠程升級指南簡介AT版本的遠程升級主要是對AT固件進行升級,實際方式為通過
    的頭像 發表于 07-19 15:16 ?699次閱讀
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模塊</b>AT<b class='flag-5'>開發</b>FOTA遠程升級<b class='flag-5'>指南</b>

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內存死機如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內存死機如何分析簡介本文檔適用于
    的頭像 發表于 07-19 16:07 ?480次閱讀
    <b class='flag-5'>Air780</b>E/<b class='flag-5'>Air780EP</b>/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201<b class='flag-5'>模塊</b>遇到內存死機如何分析

    Air780EP模塊AT開發-HTTP應用指南

    Air780EP模塊AT開發-HTTP應用指南
    的頭像 發表于 07-22 14:38 ?564次閱讀
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模塊</b>AT<b class='flag-5'>開發</b>-<b class='flag-5'>HTTP</b>應用<b class='flag-5'>指南</b>

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析簡介本文檔適用于
    的頭像 發表于 08-01 17:27 ?692次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b> <b class='flag-5'>Air780</b>E/<b class='flag-5'>Air780EP</b>/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201<b class='flag-5'>模塊</b>遇到死機問題如何分析

    Air780EP模塊FTP應用AT開發詳解

    基于Air780EP使用AT指令接入FTP的超詳細教程!
    的頭像 發表于 08-21 11:16 ?461次閱讀
    <b class='flag-5'>Air780EP</b><b class='flag-5'>模塊</b>FTP應用AT<b class='flag-5'>開發</b>詳解

    低功耗4G模組Air780EP——硬件設計02

    低功耗4G模組Air780EP——硬件設計
    的頭像 發表于 09-03 15:07 ?583次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>低功耗4G模組<b class='flag-5'>Air780EP</b>——硬件設計02

    LuatOS開發板Core_Air780EP使用說明

    Core-Air780EP 開發板是通信推出的基于 Air780EP 模組所開發的,包含電源
    的頭像 發表于 09-03 17:38 ?487次閱讀
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>LuatOS<b class='flag-5'>開發</b>板Core_<b class='flag-5'>Air780EP</b>使用說明

    RNDIS網卡應用看這篇!Air780EP低功耗4G模組AT開發示例

    ?Air780EP的低功耗4G模組之一,支持全系列的AT指令以及LuatOS腳本二次開發。 本文應各位大佬邀請,特別講解Air780EP
    的頭像 發表于 09-30 06:59 ?453次閱讀
    RNDIS網卡應用看這篇!<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air780EP</b>低功耗4G模組AT<b class='flag-5'>開發</b>示例