0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AT開(kāi)發(fā)HTTP應(yīng)用:Air780EP低功耗4G模組

青山老竹農(nóng) ? 來(lái)源:jf_75140285 ? 2024-10-25 17:29 ? 次閱讀

? 已經(jīng)寫(xiě)了一篇基于Air780EP模組AT開(kāi)發(fā)的FOTA遠(yuǎn)程升級(jí)指南, 有客戶朋友詢問(wèn)能否講講HTTP應(yīng)用部分? 本期特別安排——涵蓋HTTP基本應(yīng)用流程、GET/POST/SSL請(qǐng)求示例、斷點(diǎn)續(xù)傳、常見(jiàn)問(wèn)題等內(nèi)容。

Air780EP是一款 低功耗4G全網(wǎng)通模組 ,兼容模組行業(yè)1618經(jīng)典封裝,支持OpenCPU開(kāi)發(fā)及全功能數(shù)傳AT開(kāi)發(fā),可廣泛應(yīng)用于多樣化的物聯(lián)網(wǎng)終端。

一、相關(guān)準(zhǔn)備工作

1.1 硬件準(zhǔn)備

  • 合宙EVB_Air780EP開(kāi)發(fā)板一套,包括天線SIM卡;
  • USB
  • PC電腦

1.2 軟件準(zhǔn)備

  • 串口調(diào)試工具
    如果沒(méi)有準(zhǔn)備,推薦使用LLCOM:
  • AT固件下載

進(jìn)入AT固件下載頁(yè)面按下Ctrl+F,搜索AirM2M_780EP_LTE_AT,即可找到Air780EP模塊所使用的AT固件。

本文使用示例為:

AirM2M_780EP_V1007_LTE_AT版本固件

推薦選用:相關(guān)型號(hào)固件名稱后面數(shù)字版本號(hào)最高的最新relase版本進(jìn)行調(diào)試。

二、HTTP應(yīng)用基本流程

合宙低功耗4G模塊支持HTTP和HTTPS協(xié)議,HTTP應(yīng)用的基本流程如下:

  1. 激活PDP
  2. 初始化HTTP服務(wù)
  3. 設(shè)置HTTP會(huì)話參數(shù)
  4. 如果要支持SSL,配置SSL參數(shù)
  5. 如果使用POST命令,輸入POST數(shù)據(jù)
  6. 發(fā)起HTTP請(qǐng)求
  7. 收到HTTP應(yīng)答,讀取應(yīng)答數(shù)據(jù)
  8. 終止HTTP服務(wù)

相關(guān)注意事項(xiàng):

第1步如果出現(xiàn)異常,首先需要排查HTTP連接和請(qǐng)求參數(shù)是否正常,通過(guò)Postman是否可以請(qǐng)求成功,模塊上網(wǎng)是否正常(AT+CEREG?);

第2步到第5步,只要輸入格式正確,基本不會(huì)出問(wèn)題;如果出錯(cuò),可以跳過(guò),直接處理第6步的異常;

第6步和第7步如果出現(xiàn)異常:終止HTTP服務(wù),有選擇性的去激活PDP;然后再有選擇性的激活PDP,從第2步開(kāi)始重新執(zhí)行。

三、HTTP GET請(qǐng)求示例

具體指令和參數(shù)使用說(shuō)明,可參考AT指令手冊(cè):

圖片?

相關(guān)注意事項(xiàng):

01. 請(qǐng)求及應(yīng)答

發(fā)送AT+HTTPACTION命令后,收到OK僅僅表示4G模塊開(kāi)始處理這條命令,并不表示請(qǐng)求發(fā)送成功,收到了應(yīng)答。

只有收到+HTTPACTION: n,statusCode,len才表示請(qǐng)求結(jié)束,statusCode表示應(yīng)答成功,其余都表示應(yīng)答失敗。

02. 數(shù)據(jù)大小限制

HTTP應(yīng)答數(shù)據(jù)的緩沖區(qū)大小為4KB,如果返回的http body數(shù)據(jù)超過(guò)了這個(gè)大小,則需要 斷點(diǎn)下載 ——可以使用AT+HTTPPARA命令,通過(guò)設(shè)置BREAK和BREAKEND參數(shù)來(lái)實(shí)現(xiàn)。

03. HTTP被動(dòng)斷開(kāi)

發(fā)送AT+HTTPACTION命令,和服務(wù)器建立了HTTP連接后,如果連接異常被動(dòng)斷開(kāi),會(huì)輸出+HTTPACTION: ,,提示。

04. PDP被動(dòng)激活

先來(lái)看下PDP被動(dòng)激活時(shí)的AT命令處理序列,如果不理解AT命令含義,請(qǐng)自行參考AT手冊(cè)。

+PDP DEACT // 出現(xiàn)PDP去激活的URC上報(bào)

后面如果沒(méi)做任何處理,接著做HTTP請(qǐng)求會(huì)失敗,可以按照下方的建議處理。

應(yīng)對(duì)處理每次結(jié)束,都需要重新走一遍HTTP請(qǐng)求流程:

第一種方法:

AT+CIPSHUT // 關(guān)閉移動(dòng)場(chǎng)景

第二種方法:

AT+CIPSHUT // 關(guān)閉移動(dòng)場(chǎng)景

AT+CGDCONT=5,"IP",""http://請(qǐng)?zhí)顚?xiě)實(shí)際APN

AT+CGACT=1,5

第三種方法:

AT+CFUN=0 // 進(jìn)入飛行模式

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

第四種方法:

AT+RESET // 重啟模塊

參考下發(fā)流程中收到"+SAPBR 1: DEACT"錯(cuò)誤提示,表示PDP被動(dòng)去激活,為異常處理的觸發(fā)點(diǎn)。

圖片?

四、HTTP POST請(qǐng)求示例

POST請(qǐng)求流程與GET流程基本一致,只有指令參數(shù):

AT+HTTPACTION=0

變?yōu)椋?/p>

AT+HTTPACTION=1

具體指令和參數(shù)使用說(shuō)明,可參考AT指令手冊(cè):

圖片?

五、HTTPS SSL請(qǐng)求示例

本示例為帶SSL證書(shū)雙向驗(yàn)證功能的HTTPS過(guò)程,具體指令和參數(shù)使用說(shuō)明,可參考AT指令手冊(cè):

圖片?

圖片?

六、HTTP斷點(diǎn)續(xù)傳示例

在實(shí)際的應(yīng)用場(chǎng)景中,可能需要下載一個(gè)非常大的文件,例如幾百K字節(jié)、幾M字節(jié),但是****4G模塊中HTTP可用的內(nèi)存緩沖區(qū)Air780EP模塊只有4KB左右。 當(dāng)文件大小超過(guò)這個(gè)緩沖區(qū)時(shí),就要使用斷點(diǎn)續(xù)傳功能來(lái)分段下載處理了。

下文以“下載一個(gè)119345字節(jié)的文件”為例,來(lái)說(shuō)明如何使用斷點(diǎn)續(xù)傳功能(注意:本示例僅僅演示了正常流程的HTTP AT命令,完整流程以及異常處理流程請(qǐng)參考本文應(yīng)用流程部分)。

圖片?

圖片?

七、常見(jiàn)問(wèn)題Q&A

以下針對(duì)客戶朋友們實(shí)際應(yīng)用中的反饋,整理了HTTP應(yīng)用中的常見(jiàn)問(wèn)題:

01. HTTP支持多連接嗎?

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

02. HTTPS如何使用?

本文主要描述了基本流程和異常處理,對(duì)于HTTPS使用方法沒(méi)有做過(guò)多描述。這一部分,請(qǐng)自行參考 AT指令手冊(cè)HTTP章節(jié)下《使用方法舉例》 中的"帶SSL證書(shū)驗(yàn)證功能的HTTPS流程"使用方法;支持的SSL參數(shù),請(qǐng)自行參考AT+SSLCFG命令說(shuō)明。如果SSL的參數(shù)配置不變,則每次開(kāi)機(jī)運(yùn)行過(guò)程中,僅設(shè)置一次即可。

03. 重試多次PDP,HTTP應(yīng)用一直連接失???

如果重試多次PDP激活,PDP一直激活失敗,或者HTTP一直請(qǐng)求應(yīng)答失敗,請(qǐng)嘗試使用如下手段恢復(fù):

  • 使用RESET引腳復(fù)位模塊;
  • 極端情況下,直接給模塊斷電,再上電,POWER KEY引腳拉低開(kāi)機(jī)。

04. HTTP下載的大文件,如何可靠的發(fā)送給MCU(AT流控)?

需要在斷點(diǎn)續(xù)傳流程指令里開(kāi)頭加入AT+IFC的配置指令:

AT+HTTPREAD

+HTTPREAD: 3072

...... //此處輸出3072字節(jié)數(shù)據(jù)

OK

此處的3072字節(jié)數(shù)據(jù),是模塊通過(guò)UART AT口發(fā)送給MCU。在實(shí)際傳輸過(guò)程中,由于串口芯片驅(qū)動(dòng)、MCU端的處理能力、波特率的選擇都存在不確定性,可能會(huì)導(dǎo)致MCU端接收到的數(shù)據(jù),實(shí)際上沒(méi)有3072字節(jié),這就要求UART AT口打開(kāi)流控功能。

模塊支持硬件流控和軟件流控兩種:

硬件流控,參考如下步驟操作:

  • 模塊和MCU的UART口,CTS、RTS要交叉相連
  • MCU端固件要支持并且打開(kāi)硬流控功能
  • MCU端要發(fā)送AT+IFC=2,2命令到模塊端,打開(kāi)模塊端的硬流控功能

軟件流控,參考如下步驟操作:

  • MCU端固件要支持并且打開(kāi)軟流控功能
  • MCU端要發(fā)送AT+IFC=1,1命令到模塊端,打開(kāi)模塊端的軟流控功能

05. 為什么我只發(fā)了10字節(jié)消息,100次卻消耗了很多流量?

因?yàn)檫€有HTTP自帶的請(qǐng)求頭。

06. 為什么頻繁請(qǐng)求會(huì)失???

HTTP連接總數(shù)數(shù)量有限,且不支持HTTP2多路復(fù)用連接,因此建議等一個(gè)HTTP連接返回請(qǐng)求結(jié)果之后,再去請(qǐng)求下一個(gè)連接;不要使用循環(huán)定時(shí)器方式不斷的發(fā)起新的HTTP請(qǐng)求。

07. 如何POST文件?

主要是使用AT+HTTPDATA命令錄入文件數(shù)據(jù)后,發(fā)送AT+HTTPACTION=1利用POST上傳。

08. 數(shù)據(jù)發(fā)送接收緩存問(wèn)題如何解決?

AT版本有緩存機(jī)制,內(nèi)存中有一個(gè)的緩沖區(qū)(Air780EP模塊AT固件HTTP緩存為4KB),發(fā)送和接受使用的是同一塊緩沖區(qū)。

發(fā)送和收到數(shù)據(jù)后,插入此緩沖區(qū),然后通過(guò)AT口輸出URC,提示收到的數(shù)據(jù)長(zhǎng)度;緩沖區(qū)滿之后,再收到新數(shù)據(jù),會(huì)丟棄新收到的數(shù)據(jù),并通過(guò)AT口輸出URC提示出錯(cuò);需要讀取數(shù)據(jù)時(shí),發(fā)送AT+HTTPREAD命令讀取,可分段讀取,也可全部讀取。

?

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5056

    文章

    18964

    瀏覽量

    301702
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    499

    瀏覽量

    30970
  • 模組
    +關(guān)注

    關(guān)注

    6

    文章

    1406

    瀏覽量

    30207
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AT指令速通FTP:合宙Air780EP模塊超詳細(xì)教程

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

    合宙低功耗4G模組Air780EP——硬件設(shè)計(jì)01

    Air780EP是一款合宙低功耗LTECat1無(wú)線通信模組。 支持FDD-LTE/TDD-LTE的4G遠(yuǎn)距離無(wú)線 傳輸技術(shù)。 另外,模組提供
    的頭像 發(fā)表于 09-02 16:47 ?1474次閱讀
    合宙<b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>Air780EP</b>——硬件設(shè)計(jì)01

    FTP應(yīng)用看這篇!合宙Air780EP低功耗4G模組AT開(kāi)發(fā)示例

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

    超實(shí)用!阿里云應(yīng)用——Air780EP低功耗4G模組AT開(kāi)發(fā)示例

    ? Air780EP是合宙推出的一款[低功耗4G全網(wǎng)通模組],兼容模組行業(yè)1618經(jīng)典封裝,支持OpenCPU
    的頭像 發(fā)表于 10-08 09:55 ?1237次閱讀
    超實(shí)用!阿里云應(yīng)用——<b class='flag-5'>Air780EP</b><b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>AT<b class='flag-5'>開(kāi)發(fā)</b>示例

    Air780EP低功耗4G模組AT開(kāi)發(fā)示例:阿里云應(yīng)用篇

    ?Air780EP是合宙推出的一款[低功耗4G全網(wǎng)通模組],兼容模組行業(yè)1618經(jīng)典封裝,支持OpenCPU
    的頭像 發(fā)表于 10-14 14:22 ?737次閱讀
    <b class='flag-5'>Air780EP</b><b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>AT<b class='flag-5'>開(kāi)發(fā)</b>示例:阿里云應(yīng)用篇

    Air780EP模塊AT開(kāi)發(fā)-HTTP應(yīng)用指南

    Air780EP模塊AT開(kāi)發(fā)-HTTP應(yīng)用指南
    的頭像 發(fā)表于 07-22 14:38 ?516次閱讀
    <b class='flag-5'>Air780EP</b>模塊AT<b class='flag-5'>開(kāi)發(fā)</b>-<b class='flag-5'>HTTP</b>應(yīng)用指南

    合宙低功耗4G模組Air780EP——產(chǎn)品規(guī)格書(shū)

    合宙低功耗4G模組Air780EP——產(chǎn)品規(guī)格信息介紹
    的頭像 發(fā)表于 08-30 18:07 ?1242次閱讀
    合宙<b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>Air780EP</b>——產(chǎn)品規(guī)格書(shū)

    合宙低功耗4G模組Air780EP——硬件設(shè)計(jì)02

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

    基站定位與Wi-Fi定位看這篇!合宙Air780EP低功耗4G模組AT開(kāi)發(fā)示例

    ?Air780EP是合宙的[低功耗4G模組]之一,支持全系列的AT指令以及LuatOS腳本二次開(kāi)發(fā)。 本文應(yīng)各位大佬邀請(qǐng),特別講解
    的頭像 發(fā)表于 09-25 07:26 ?367次閱讀
    基站定位與Wi-Fi定位看這篇!合宙<b class='flag-5'>Air780EP</b><b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>AT<b class='flag-5'>開(kāi)發(fā)</b>示例

    RNDIS網(wǎng)卡應(yīng)用看這篇!合宙Air780EP低功耗4G模組AT開(kāi)發(fā)示例

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

    Air780EP低功耗4G模組—AT開(kāi)發(fā)FOTA遠(yuǎn)程升級(jí)

    ? Air780EP是合宙推出的一款 低功耗4G全網(wǎng)通模組 ,兼容模組行業(yè)1618經(jīng)典封裝,支持OpenCPU
    的頭像 發(fā)表于 10-07 20:36 ?248次閱讀
    <b class='flag-5'>Air780EP</b><b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>—AT<b class='flag-5'>開(kāi)發(fā)</b>FOTA遠(yuǎn)程升級(jí)

    MQTT應(yīng)用:Air780EP低功耗4G模組AT開(kāi)發(fā)

    本文應(yīng)各位大佬邀請(qǐng),詳細(xì)講解Air780EP模組MQTT應(yīng)用的多個(gè)AT命令。
    的頭像 發(fā)表于 10-25 17:27 ?171次閱讀
    MQTT應(yīng)用:<b class='flag-5'>Air780EP</b><b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>AT<b class='flag-5'>開(kāi)發(fā)</b>

    Air780EP低功耗4G模組AT開(kāi)發(fā):阿里云應(yīng)用

    Air780EP是合宙推出的一款低功耗4G全網(wǎng)通模組,兼容模組行業(yè)1618經(jīng)典封裝,支持OpenCPU開(kāi)
    的頭像 發(fā)表于 10-25 17:28 ?159次閱讀
    <b class='flag-5'>Air780EP</b><b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>AT<b class='flag-5'>開(kāi)發(fā)</b>:阿里云應(yīng)用

    AT開(kāi)發(fā)FOTA遠(yuǎn)程升級(jí):Air780EP低功耗4G模組

    ?針對(duì)客戶朋友的應(yīng)用反饋,特編輯本篇文章:基于Air780EP模組AT開(kāi)發(fā)的FOTA遠(yuǎn)程升級(jí)指南。
    的頭像 發(fā)表于 10-25 17:31 ?237次閱讀
    AT<b class='flag-5'>開(kāi)發(fā)</b>FOTA遠(yuǎn)程升級(jí):<b class='flag-5'>Air780EP</b><b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>

    低功耗4G模組Air780EP之fskv開(kāi)發(fā)示例

    ?今天我們學(xué)習(xí)合宙低功耗4G模組Air780EP的fskv開(kāi)發(fā)示例。 一、簡(jiǎn)介 兼容fdb的函數(shù) 使用fdb的flash空間,啟用時(shí)也會(huì)替代
    的頭像 發(fā)表于 11-01 07:28 ?80次閱讀
    <b class='flag-5'>低功耗</b><b class='flag-5'>4G</b><b class='flag-5'>模組</b>:<b class='flag-5'>Air780EP</b>之fskv<b class='flag-5'>開(kāi)發(fā)</b>示例