今天讓我們來實踐一下Air780E軟件的WebSocket應用吧,讓我們更了解它。
1、WebSocket概述
WebSocket是HTML5下一種新的協(xié)議(本質(zhì)上是一個基于TCP的協(xié)議),它實現(xiàn)了瀏覽器與服務(wù)器之間的全雙工通信,能夠節(jié)省服務(wù)器資源和帶寬,達到實時通訊的目的。WebSocket協(xié)議通過握手機制,允許客戶端和服務(wù)器之間建立一個類似TCP的連接,從而方便它們之間的通信。
在線聊天應用:允許用戶實時發(fā)送和接收消息,而無需頁面刷新或輪詢服務(wù)器。
實時協(xié)作應用:支持多用戶實時編輯文檔或共享白板等場景。
實時游戲:允許多個玩家之間進行實時的游戲交互。
實時數(shù)據(jù)展示:用于顯示實時數(shù)據(jù),如股票市場變化、天氣預報更新等。
實時通知和提醒:用于向用戶發(fā)送實時的通知消息,如新郵件提醒、社交媒體通知等。
在線會議和視頻通話:支持實時的音視頻通信。
2、準備硬件環(huán)境
“古人云:‘工欲善其事,必先利其器?!谏钊虢榻B本功能示例之前,我們首先需要確保以下硬件環(huán)境的準備工作已經(jīng)完成?!?/p>
2.1 Air780E開發(fā)板
本demo使用的是Air780E核心板
此核心板的詳細使用說明參考:
https://docs.openluat.com/air780e/product/
Air780E產(chǎn)品手冊中的<<開發(fā)板Core_Air780E使用說明VX.X.X.pdf>>,寫這篇文章時最新版本的使用說明為:開發(fā)板Core_Air780E使用說明V1.0.5.pdf;核心板使用過程中遇到任何問題,可以直接參考這份使用說明pdf文檔。
2.2 SIM卡
請準備一張可正常上網(wǎng)的SIM卡,該卡可以是物聯(lián)網(wǎng)卡或您的個人手機卡。
特別提醒:請確保SIM卡未欠費且網(wǎng)絡(luò)功能正常,以便順利進行后續(xù)操作。
2.3 PC電腦
2.4 數(shù)據(jù)通信線
請準備一根用于連接Air780E開發(fā)板和PC電腦的數(shù)據(jù)線,該數(shù)據(jù)線將實現(xiàn)業(yè)務(wù)邏輯的控制與交互。您有兩種選擇:
USB數(shù)據(jù)線(其一端為Type-C接口,用于連接Air780E開發(fā)板)。通常,這種數(shù)據(jù)線的外觀如下示意圖所示:
普通的手機USB數(shù)據(jù)線一般都可以直接使用;
數(shù)據(jù)線是USB轉(zhuǎn)TTL串口線。通常,這種數(shù)據(jù)線的外觀如下示意圖所示:
在本教程中,我們將采用以下數(shù)據(jù)線配置進行測試和數(shù)據(jù)查看:
第一種:USB數(shù)據(jù)線:此數(shù)據(jù)線不僅用于為測試板供電,還用于查看數(shù)據(jù)日志。其一端為Type-C接口,連接Air780E開發(fā)板;另一端為標準USB接口,連接PC電腦。
第二種:USB轉(zhuǎn)TTL串口線:此數(shù)據(jù)線主要用于Websocket-UART透傳數(shù)據(jù)的查看。其一端為USB接口,連接PC電腦;另一端為TTL串口接口,連接Air780E開發(fā)板,以便進行串口通信和數(shù)據(jù)傳輸。
2.5 組裝硬件環(huán)境
2.5.1 請按照SIM卡槽上的指示方向正確插入SIM卡,務(wù)必確保插入方向正確,避免插反導致?lián)p壞!
通常,插入SIM卡的步驟如下:
將SIM卡的金屬接觸面朝下,對準卡槽的開口。
用力平穩(wěn)地將SIM卡推入卡槽,直至聽到“咔嚓”一聲,表示SIM卡已正確安裝到位。
2.5.2 USB數(shù)據(jù)線,連接電腦和Air780E開發(fā)板,如下圖所示:
3、準備軟件環(huán)境
“凡事預則立,不預則廢。”在詳細闡述本功能示例之前,我們需先精心籌備好以下軟件環(huán)境。
3.1 Luatools工具
要想燒錄AT固件到4G模組中,需要用到的調(diào)試工具:Luatools;
Luatools工具集具備以下幾大核心功能:
一鍵獲取最新固件:自動連接服務(wù)器,輕松下載最新的模組固件。
固件與腳本燒錄:便捷地將固件及腳本文件燒錄至目標模組中。
串口日志管理:實時查看模組通過串口輸出的日志信息,并支持保存功能。
串口調(diào)試助手:提供簡潔的串口調(diào)試界面,滿足基本的串口通信測試需求。
Luatools下載之后,無需安裝,解壓到你的硬盤,點擊Luatools_v3.exe運行,出現(xiàn)如下界面,就代表Luatools安裝成功了:
3.2 燒錄代碼
首先要說明一點:腳本代碼,要和固件的LuatOS-SoC_V1112_EC618_FULL.soc文件一起燒錄。
整體壓縮文件:內(nèi)含有文件一:Core固件和文件二:WebSocket加密通訊腳本文件,文件三:WebSocket-UART透傳腳本文件,如圖所示。
3.2.1 壓縮文件:
閱讀原文下載完整壓縮文件包:
https://docs.openluat.com/air780e/luatos/app/socket/websocket/
3.2.2 壓縮包內(nèi)部文件
文件一:Core固件
文件二:WebSocket加密通訊腳本文件
文件三:WebSocket-UART透傳腳本文件
3.2.3 找到燒錄的固件文件
https://docs.openluat.com/air780e/luatos/app/socket/websocket/
3.2.4 正確連接電腦和4G模組電路板
使用帶有數(shù)據(jù)通信功能的數(shù)據(jù)線,不要使用僅有充電功能的數(shù)據(jù)線;
3.2.5 識別4G模組的boot引腳
在下載之前,要用模組的boot引腳觸發(fā)下載,也就是說,要把4G模組的boot引腳拉到1.8v,或者直接把boot引腳和VDD_EXT引腳相連。我們要在按下BOOT按鍵時讓模塊開機,就可以進入下載模式了。
具體到Air780E開發(fā)板,
當我們模塊沒開機時,按著BOOT鍵然后長按POW開機。
當我們模塊開機時,按著BOOT鍵然后點按重啟鍵即可。
3.2.6 識別電腦的正確端口
判斷是否進入BOOT模式:-模塊上電,此時在電腦的設(shè)備管理器中,查看串口設(shè)備,如下圖:
進入boot下載模式,如下圖所示:
這時候,硬件連接上就緒狀態(tài),恭喜你,可以進行燒錄了!
3.2.7 新建項目
首先,確保你的Luatools的版本大于或者等于3.0.6版本.
在Luatools的左上角上有版本顯示的,如圖所示:
Luatools版本沒問題的話,就點擊Luatools右上角的“項目管理測試”按鈕,如下圖所示:
這時會彈出項目管理和燒錄管理的對話框,如下圖:
3.2.8 開始燒錄
選擇780E板子對應的底層core和剛改的main.lua腳本文件。下載到板子中。
點擊下載后,我們需要進入boot模式才能正常下載。
3.3 PC端串口工具
閱讀原文下載:
https://docs.openluat.com/air780e/luatos/app/socket/websocket/
串口接線方式:Air780提供三個Uart.
MAIN_UART:通用串口,可用于AT命令和數(shù)據(jù)傳輸最大波特率921600bps,默認波特率自適應9600-115200bps支持硬件流控(RTS/CTS)
AUX_UART:通用串口
DBG_UART:用于輸出調(diào)試信息
注意:
以上PinOut圖示,對應的V1.8的開發(fā)板,版本號在板子絲印上可查閱。
V1.4的開發(fā)板,由于LCD腳有差異,圖示的LCD_RS/LCD_CLK實際位于開發(fā)板管腳編號06/05的UART2/AUX_UART腳,不在編號11/14腳。
V1.8的開發(fā)板17腳改為VBAT.
3.3.1 LLCOM工具設(shè)置:初始配置
3.3.2 數(shù)據(jù)發(fā)送前的配置
4、WebSocket加密通訊的概述
本小節(jié)教你怎么使用luatos腳本語言,就可以讓4G模組連接上一個WebSocket服務(wù)器,并且模組和服務(wù)器之間實現(xiàn)數(shù)據(jù)的交互!
4.1 本教程實現(xiàn)的功能定義:
4G模組插卡開機后,連接上WebSocket服務(wù)器;
這是個測試服務(wù),當4G模組發(fā)送的是json,且action=echo,就會回顯所發(fā)送的內(nèi)容
發(fā)送內(nèi)容是
wsc:send((json.encode({action="echo",msg=os.date()})))
4.2 文章內(nèi)容引用
780E開發(fā)板軟硬件資料:Air780E產(chǎn)品手冊
websocket函數(shù)接口不做詳細介紹,可通過此鏈接查看具體介紹:websocket-網(wǎng)絡(luò)接口-LuatOS文檔
4.3 核心腳本代碼詳解
4.3.1 websocket客戶端創(chuàng)建
4.3.2 設(shè)置額外的headers
4.3.3 設(shè)置自動重連機制
4.3.4 注冊websocket回調(diào)
4.3.5 連接服務(wù)器
4.3.6 發(fā)布消息
4.3.7 websocket客戶端關(guān)閉(關(guān)閉后資源釋放無法再使用)
wsc:close()
4.4 成果演示與深度解析:視頻+圖文全面展示
4.4.1 成果運行精彩呈現(xiàn)
4.4.2 演示視頻生動展示
4.4.3 完整實例深度剖析
5、WebSocket-UART透傳的概述
在某些應用場景下,可能需要將WebSocket接收到的數(shù)據(jù)通過UART串口發(fā)送到其他設(shè)備,或者將UART串口接收到的數(shù)據(jù)通過WebSocket發(fā)送到服務(wù)器。這通常需要通過一個中間層或網(wǎng)關(guān)設(shè)備來實現(xiàn)數(shù)據(jù)的轉(zhuǎn)換和傳輸。
5.1 本教程實現(xiàn)的功能定義:
4G模組插卡開機后,連接上WebSocket服務(wù)器;
本小節(jié)教你怎么使用luatos腳本語言,就可以讓合宙4G模組通過Uart1透傳數(shù)據(jù)發(fā)送到WebSocket服務(wù)器,并且模組和服務(wù)器之間實現(xiàn)數(shù)據(jù)的交互!
5.2 文章內(nèi)容引用
780E開發(fā)板軟硬件資料:Air780E產(chǎn)品手冊
websocket函數(shù)接口不做詳細介紹,可通過此鏈接查看具體介紹:websocket-網(wǎng)絡(luò)接口-LuatOS文檔
5.3 核心腳本代碼詳解
5.3.1 websocket客戶端創(chuàng)建
5.3.2 設(shè)置額外的headers
5.3.3 設(shè)置自動重連機制
5.3.4 注冊websocket回調(diào)
5.3.5 連接服務(wù)器
5.3.6 串口初始化
本文示例:串口使用MAIN_UART(uart1)
5.3.7 接收UART消息
5.3.8 發(fā)布消息
5.3.9 websocket客戶端關(guān)閉(關(guān)閉后資源釋放無法再使用)
5.4 成果演示與深度解析:視頻+圖文全面展示
5.4.1 成果運行精彩呈現(xiàn)
5.4.2完整實例深度剖析
6、總結(jié)
WebSocket加密確保了數(shù)據(jù)在傳輸過程中的安全性,防止被竊取或篡改;而WebSocket透傳則指數(shù)據(jù)在不改變內(nèi)容的情況下,通過WebSocket協(xié)議進行傳輸,通常涉及中間層或網(wǎng)關(guān)設(shè)備的數(shù)據(jù)格式轉(zhuǎn)換與傳遞
Air780E作為一款4G模組,支持WebSocket協(xié)議,并可通過Luatools等工具進行調(diào)試和固件管理。在Air780E上實現(xiàn)WebSocket加密通訊,通常需要使用SSL/TLS等加密協(xié)議來確保數(shù)據(jù)傳輸?shù)陌踩浴?/p>
7、常見問題
websocket服務(wù)器的連接地址,格式為ws(或wss)://xxx開頭
websocket需要在任務(wù)中啟動,帶自動重連,支持心跳協(xié)議
websocket心跳包,建議180秒
注意串口發(fā)送過去的數(shù)據(jù)是字符格式,這里進行對比時注意echo的類型ifuart_rx_buff_data=='"echo"'
8、擴展
在WebSocket中,WS和WSS代表兩種不同的連接類型,它們分別具有以下特點:
8.1 WS(WebSocket)
含義:表示非安全的WebSocket連接,即沒有加密的WebSocket通信。
端口:默認情況下,WebSocket的WS協(xié)議使用80端口。
使用場景:適用于不需要數(shù)據(jù)加密的場景,或者在安全性要求不高的環(huán)境中使用。然而,對于敏感數(shù)據(jù)或需要保護通信內(nèi)容的情況,WS可能不是最佳選擇。
8.2 WSS(WebSocketSecure)
含義:表示安全的WebSocket連接,即在TLS(傳輸層安全協(xié)議)之上的WebSocket通信。WSS相當于HTTPS在WebSocket中的應用,提供了數(shù)據(jù)加密和完整性驗證等安全功能。
端口:默認情況下,WSS協(xié)議使用443端口,這是大多數(shù)網(wǎng)站用于HTTPS通信的標準端口。
使用場景:適用于需要保護通信內(nèi)容、防止數(shù)據(jù)竊取或篡改的場景。WSS是處理敏感數(shù)據(jù)或進行安全通信時的推薦選擇。
審核編輯 黃宇
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44557瀏覽量
372753 -
TCP
+關(guān)注
關(guān)注
8文章
1353瀏覽量
79055 -
Sim
+關(guān)注
關(guān)注
2文章
246瀏覽量
39998 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
WebSocket
+關(guān)注
關(guān)注
0文章
29瀏覽量
3745
發(fā)布評論請先 登錄
相關(guān)推薦
評論