今天讓我們來實踐一下Air780E軟件的WebSocket應用吧,讓我們更了解它。
1、WebSocket概述
WebSocket是HTML5下一種新的協議(本質上是一個基于TCP的協議),它實現了瀏覽器與服務器之間的全雙工通信,能夠節省服務器資源和帶寬,達到實時通訊的目的。WebSocket協議通過握手機制,允許客戶端和服務器之間建立一個類似TCP的連接,從而方便它們之間的通信。
在線聊天應用:允許用戶實時發送和接收消息,而無需頁面刷新或輪詢服務器。
實時協作應用:支持多用戶實時編輯文檔或共享白板等場景。
實時游戲:允許多個玩家之間進行實時的游戲交互。
實時數據展示:用于顯示實時數據,如股票市場變化、天氣預報更新等。
實時通知和提醒:用于向用戶發送實時的通知消息,如新郵件提醒、社交媒體通知等。
在線會議和視頻通話:支持實時的音視頻通信。
2、準備硬件環境
“古人云:‘工欲善其事,必先利其器。’在深入介紹本功能示例之前,我們首先需要確保以下硬件環境的準備工作已經完成。”
2.1 Air780E開發板
本demo使用的是Air780E核心板
此核心板的詳細使用說明參考:
https://docs.openluat.com/air780e/product/
Air780E產品手冊中的<<開發板Core_Air780E使用說明VX.X.X.pdf>>,寫這篇文章時最新版本的使用說明為:開發板Core_Air780E使用說明V1.0.5.pdf;核心板使用過程中遇到任何問題,可以直接參考這份使用說明pdf文檔。
2.2 SIM卡
請準備一張可正常上網的SIM卡,該卡可以是物聯網卡或您的個人手機卡。
特別提醒:請確保SIM卡未欠費且網絡功能正常,以便順利進行后續操作。
2.3 PC電腦
2.4 數據通信線
請準備一根用于連接Air780E開發板和PC電腦的數據線,該數據線將實現業務邏輯的控制與交互。您有兩種選擇:
USB數據線(其一端為Type-C接口,用于連接Air780E開發板)。通常,這種數據線的外觀如下示意圖所示:

普通的手機USB數據線一般都可以直接使用;
數據線是USB轉TTL串口線。通常,這種數據線的外觀如下示意圖所示:

在本教程中,我們將采用以下數據線配置進行測試和數據查看:
第一種:USB數據線:此數據線不僅用于為測試板供電,還用于查看數據日志。其一端為Type-C接口,連接Air780E開發板;另一端為標準USB接口,連接PC電腦。
第二種:USB轉TTL串口線:此數據線主要用于Websocket-UART透傳數據的查看。其一端為USB接口,連接PC電腦;另一端為TTL串口接口,連接Air780E開發板,以便進行串口通信和數據傳輸。
2.5 組裝硬件環境
2.5.1 請按照SIM卡槽上的指示方向正確插入SIM卡,務必確保插入方向正確,避免插反導致損壞!
通常,插入SIM卡的步驟如下:
將SIM卡的金屬接觸面朝下,對準卡槽的開口。
用力平穩地將SIM卡推入卡槽,直至聽到“咔嚓”一聲,表示SIM卡已正確安裝到位。


2.5.2 USB數據線,連接電腦和Air780E開發板,如下圖所示:

3、準備軟件環境
“凡事預則立,不預則廢。”在詳細闡述本功能示例之前,我們需先精心籌備好以下軟件環境。
3.1 Luatools工具
要想燒錄AT固件到4G模組中,需要用到的調試工具:Luatools;
Luatools工具集具備以下幾大核心功能:
一鍵獲取最新固件:自動連接服務器,輕松下載最新的模組固件。
固件與腳本燒錄:便捷地將固件及腳本文件燒錄至目標模組中。
串口日志管理:實時查看模組通過串口輸出的日志信息,并支持保存功能。
串口調試助手:提供簡潔的串口調試界面,滿足基本的串口通信測試需求。
Luatools下載之后,無需安裝,解壓到你的硬盤,點擊Luatools_v3.exe運行,出現如下界面,就代表Luatools安裝成功了:

3.2 燒錄代碼
首先要說明一點:腳本代碼,要和固件的LuatOS-SoC_V1112_EC618_FULL.soc文件一起燒錄。
整體壓縮文件:內含有文件一:Core固件和文件二:WebSocket加密通訊腳本文件,文件三:WebSocket-UART透傳腳本文件,如圖所示。

3.2.1 壓縮文件:
閱讀原文下載完整壓縮文件包:
https://docs.openluat.com/air780e/luatos/app/socket/websocket/
3.2.2 壓縮包內部文件
文件一:Core固件
文件二:WebSocket加密通訊腳本文件
文件三:WebSocket-UART透傳腳本文件
3.2.3 找到燒錄的固件文件
https://docs.openluat.com/air780e/luatos/app/socket/websocket/

3.2.4 正確連接電腦和4G模組電路板
使用帶有數據通信功能的數據線,不要使用僅有充電功能的數據線;
3.2.5 識別4G模組的boot引腳
在下載之前,要用模組的boot引腳觸發下載,也就是說,要把4G模組的boot引腳拉到1.8v,或者直接把boot引腳和VDD_EXT引腳相連。我們要在按下BOOT按鍵時讓模塊開機,就可以進入下載模式了。
具體到Air780E開發板,
當我們模塊沒開機時,按著BOOT鍵然后長按POW開機。
當我們模塊開機時,按著BOOT鍵然后點按重啟鍵即可。

3.2.6 識別電腦的正確端口
判斷是否進入BOOT模式:-模塊上電,此時在電腦的設備管理器中,查看串口設備,如下圖:

進入boot下載模式,如下圖所示:

這時候,硬件連接上就緒狀態,恭喜你,可以進行燒錄了!
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命令和數據傳輸最大波特率921600bps,默認波特率自適應9600-115200bps支持硬件流控(RTS/CTS)
AUX_UART:通用串口
DBG_UART:用于輸出調試信息

注意:
以上PinOut圖示,對應的V1.8的開發板,版本號在板子絲印上可查閱。
V1.4的開發板,由于LCD腳有差異,圖示的LCD_RS/LCD_CLK實際位于開發板管腳編號06/05的UART2/AUX_UART腳,不在編號11/14腳。
V1.8的開發板17腳改為VBAT.
3.3.1 LLCOM工具設置:初始配置

3.3.2 數據發送前的配置

4、WebSocket加密通訊的概述
本小節教你怎么使用luatos腳本語言,就可以讓4G模組連接上一個WebSocket服務器,并且模組和服務器之間實現數據的交互!
4.1 本教程實現的功能定義:
4G模組插卡開機后,連接上WebSocket服務器;
這是個測試服務,當4G模組發送的是json,且action=echo,就會回顯所發送的內容
發送內容是
wsc:send((json.encode({action="echo",msg=os.date()})))
4.2 文章內容引用
780E開發板軟硬件資料:Air780E產品手冊
websocket函數接口不做詳細介紹,可通過此鏈接查看具體介紹:websocket-網絡接口-LuatOS文檔
4.3 核心腳本代碼詳解
4.3.1 websocket客戶端創建

4.3.2 設置額外的headers

4.3.3 設置自動重連機制

4.3.4 注冊websocket回調

4.3.5 連接服務器

4.3.6 發布消息

4.3.7 websocket客戶端關閉(關閉后資源釋放無法再使用)
wsc:close()
4.4 成果演示與深度解析:視頻+圖文全面展示
4.4.1 成果運行精彩呈現

4.4.2 演示視頻生動展示
4.4.3 完整實例深度剖析



5、WebSocket-UART透傳的概述
在某些應用場景下,可能需要將WebSocket接收到的數據通過UART串口發送到其他設備,或者將UART串口接收到的數據通過WebSocket發送到服務器。這通常需要通過一個中間層或網關設備來實現數據的轉換和傳輸。
5.1 本教程實現的功能定義:
4G模組插卡開機后,連接上WebSocket服務器;
本小節教你怎么使用luatos腳本語言,就可以讓合宙4G模組通過Uart1透傳數據發送到WebSocket服務器,并且模組和服務器之間實現數據的交互!
5.2 文章內容引用
780E開發板軟硬件資料:Air780E產品手冊
websocket函數接口不做詳細介紹,可通過此鏈接查看具體介紹:websocket-網絡接口-LuatOS文檔
5.3 核心腳本代碼詳解
5.3.1 websocket客戶端創建

5.3.2 設置額外的headers

5.3.3 設置自動重連機制

5.3.4 注冊websocket回調

5.3.5 連接服務器

5.3.6 串口初始化
本文示例:串口使用MAIN_UART(uart1)

5.3.7 接收UART消息

5.3.8 發布消息

5.3.9 websocket客戶端關閉(關閉后資源釋放無法再使用)

5.4 成果演示與深度解析:視頻+圖文全面展示
5.4.1 成果運行精彩呈現

5.4.2完整實例深度剖析




6、總結
WebSocket加密確保了數據在傳輸過程中的安全性,防止被竊取或篡改;而WebSocket透傳則指數據在不改變內容的情況下,通過WebSocket協議進行傳輸,通常涉及中間層或網關設備的數據格式轉換與傳遞
Air780E作為一款4G模組,支持WebSocket協議,并可通過Luatools等工具進行調試和固件管理。在Air780E上實現WebSocket加密通訊,通常需要使用SSL/TLS等加密協議來確保數據傳輸的安全性。
7、常見問題
websocket服務器的連接地址,格式為ws(或wss)://xxx開頭
websocket需要在任務中啟動,帶自動重連,支持心跳協議
websocket心跳包,建議180秒
注意串口發送過去的數據是字符格式,這里進行對比時注意echo的類型ifuart_rx_buff_data=='"echo"'
8、擴展
在WebSocket中,WS和WSS代表兩種不同的連接類型,它們分別具有以下特點:
8.1 WS(WebSocket)
含義:表示非安全的WebSocket連接,即沒有加密的WebSocket通信。
端口:默認情況下,WebSocket的WS協議使用80端口。
使用場景:適用于不需要數據加密的場景,或者在安全性要求不高的環境中使用。然而,對于敏感數據或需要保護通信內容的情況,WS可能不是最佳選擇。
8.2 WSS(WebSocketSecure)
含義:表示安全的WebSocket連接,即在TLS(傳輸層安全協議)之上的WebSocket通信。WSS相當于HTTPS在WebSocket中的應用,提供了數據加密和完整性驗證等安全功能。
端口:默認情況下,WSS協議使用443端口,這是大多數網站用于HTTPS通信的標準端口。
使用場景:適用于需要保護通信內容、防止數據竊取或篡改的場景。WSS是處理敏感數據或進行安全通信時的推薦選擇。
審核編輯 黃宇
-
物聯網
+關注
關注
2945文章
47819瀏覽量
414841 -
TCP
+關注
關注
8文章
1424瀏覽量
83501 -
Sim
+關注
關注
2文章
258瀏覽量
42177 -
開發板
+關注
關注
26文章
6289瀏覽量
118059 -
WebSocket
+關注
關注
0文章
33瀏覽量
4455
發布評論請先 登錄
Air780EPM嵌入式開發:LuatOS下的MQTT通信實踐
實戰Air780EPM:構建4G共享網關,服務WiFi與有線設備!
Air780EGH串口電路設計攻略:硬件工程師必知要點
Air780EGH串口通信優化:硬件電路設計核心要素剖析
Air780EGH開源代碼來襲!定位功能快速入門指南
揭秘Air780EGH定位功能:源碼開放助力極速開發 !
Air8101多網融合戰略升級:Air780EPM模塊助力4G聯網落地
優化你的設計:Air780EPM場景化ADC硬件電路指南!
Air780EPM — ADC硬件電路設計:場景化優化與實踐!
解鎖Air780EPM:N種GPIO操控LED的實戰技巧!
如何解決Air780EPM開發中的調試難題?深度解析高效調試方法
開發寶典:4路低功耗ADC接口,Air780EPM二次開發必看!
新手必看!4G模組Air780EPM——GPIO的設計說明
手把手教你!4G模組Air780EPM——GPIO的設計說明
Air780EPM 模塊串口電路設計硬件指導
WebSocket應用:Air780E軟件的高效實踐
評論