咋們今天說的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是處理敏感數據或進行安全通信時的推薦選擇。
分享完畢
審核編輯 黃宇
-
物聯網
+關注
關注
2904文章
44304瀏覽量
371447 -
開發板
+關注
關注
25文章
4959瀏覽量
97214 -
WebSocket
+關注
關注
0文章
29瀏覽量
3737
發布評論請先 登錄
相關推薦
評論