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

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

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

關(guān)于Air780E:與服務(wù)器的加密通信操作方法

青山老竹農(nóng) ? 來源:jf_82863998 ? 作者:jf_82863998 ? 2024-10-12 07:31 ? 次閱讀

?今天我們來學(xué)習(xí)合宙低功耗4G模組Air780E快速入門之跟服務(wù)器之間的加密通信,伙伴們,一起學(xué)起來!

一、編寫腳本

1.1 準(zhǔn)備資料

Air780E開發(fā)板購買

Air780E開發(fā)板設(shè)計資料

LuatOS-Air780E/網(wǎng)絡(luò)加密通信程序源碼demo

合宙的 TCP/UDP 測試服務(wù)器

API介紹說明

1.2 程序詳解

1.2.1 首先配置聯(lián)網(wǎng)配置

-- 測試網(wǎng)站 https://netlab.luatos.com/ 點擊 打開TCP 獲取測試端口號

-- 要按實際情況修改

local host = "112.125.89.8" -- 服務(wù)器ip或者域名, 都可以的

local port = 45186 -- 服務(wù)器端口

local is_udp = false -- 如果是UDP, 要改成true, false就是TCP

local is_tls = true -- 加密與否, 要看服務(wù)器的實際情況

--=============================================================

1.2.2 聯(lián)網(wǎng)后,創(chuàng)建聯(lián)網(wǎng)成功后,對收發(fā)數(shù)據(jù)事件的處理函數(shù)

local function sockettest()

-- 等待聯(lián)網(wǎng)

sys.waitUntil("IP_READY")

-- 時間同步

socket.sntp()

-- 開始正在的邏輯, 發(fā)起socket鏈接,等待數(shù)據(jù)/上報心跳

local taskName = "sc"

local topic = taskName .. "_txrx"

log.info("topic", topic)

local txqueue = {}

--[[創(chuàng)建一個任務(wù)線程

@param1 function 任務(wù)函數(shù)名,用于resume喚醒時調(diào)用

@param2 string 任務(wù)名稱,用于喚醒任務(wù)id

@param3 function 接收到非目標(biāo)消息時的回調(diào)函數(shù)

@param4 any 任務(wù)函數(shù)fun的可變參數(shù)

@return number 返回該任務(wù)的線程號

]]

sysplus.taskInitEx(sockettask, taskName, netCB, taskName, txqueue, topic)

while 1 do

local result, tp, data = sys.waitUntil(topic, 30000)



   log.info("event", result, tp, data)



   if not result then



       -- 等很久了,沒數(shù)據(jù)上傳/下發(fā), 發(fā)個日期心跳包吧



       table.insert(txqueue, os.date())



       sys_send(taskName, socket.EVENT, 0)



   elseif tp == "uplink" then



       -- 上行數(shù)據(jù), 主動上報的數(shù)據(jù),那就發(fā)送呀



       table.insert(txqueue, data)



       sys_send(taskName, socket.EVENT, 0)



   elseif tp == "downlink" then



       -- 下行數(shù)據(jù),接收的數(shù)據(jù), 從ipv6task來的



       -- 其他代碼可以通過 sys.publish()



       log.info("socket", "收到下發(fā)的數(shù)據(jù)了", #data,"data:",data)



   end

end

end

1.2.3 聯(lián)網(wǎng)函數(shù)

function sockettask(d1Name, txqueue, rxtopic)

-- 打印準(zhǔn)備連接的服務(wù)器信息

log.info("socket", host, port, is_udp and "UDP" or "TCP", is_tls and "TLS" or "RAW")

-- 準(zhǔn)備好所需要的接收緩沖區(qū)

local rx_buff = zbuff.create(1024)

local netc = socket.create(nil, d1Name)

socket.config(netc, nil, is_udp, is_tls)

log.info("任務(wù)id", d1Name)

while true do

-- 連接服務(wù)器, 15秒超時



   log.info("socket", "開始連接服務(wù)器")



   sysplus.cleanMsg(d1Name)



   local result = libnet.connect(d1Name, 15000, netc, host, port)



   if result then



       log.info("socket", "服務(wù)器連上了")



       --向服務(wù)器發(fā)送數(shù)據(jù)



       libnet.tx(d1Name, 0, netc, "helloworld")



   else



       log.info("socket", "服務(wù)器沒連上了!!!")



   end



   while result do



       -- 連接成功之后, 先嘗試接收



       -- log.info("socket", "調(diào)用rx接收數(shù)據(jù)")



       local succ, param = socket.rx(netc, rx_buff)



       if not succ then



           log.info("服務(wù)器斷開了", succ, param, ip, port)



           break



       end



       -- 如果服務(wù)器有下發(fā)數(shù)據(jù), used()就必然大于0, 進行處理



       if rx_buff:used() > 0 then



           log.info("socket", "收到服務(wù)器數(shù)據(jù),長度", rx_buff:used())



           local data = rx_buff:query() -- 獲取數(shù)據(jù)



           sys.publish(rxtopic, "downlink", data)



           rx_buff:del()



       end



       -- log.info("libnet", "調(diào)用wait開始等待消息")



       -- 等待事件, 例如: 服務(wù)器下發(fā)數(shù)據(jù), 有數(shù)據(jù)準(zhǔn)備上報, 服務(wù)器斷開連接



       result, param, param2 = libnet.wait(d1Name, 15000, netc)



       log.info("libnet", "wait", result, param, param2)



       if not result then



           -- 網(wǎng)絡(luò)異常了, 那就斷開了, 執(zhí)行清理工作



           log.info("socket", "服務(wù)器斷開了", result, param)



           break



       elseif #txqueue > 0 then



           -- 有待上報的數(shù)據(jù),處理之



           while #txqueue > 0 do



               local data = table.remove(txqueue, 1)



               if not data then



                   break



               end



               result,param = libnet.tx(d1Name, 15000, netc,data)



               log.info("libnet", "發(fā)送數(shù)據(jù)的結(jié)果", result, param)



               if not result then



                   log.info("socket", "數(shù)據(jù)發(fā)送異常", result, param)



                   break



               end



           end



       end



       -- 循環(huán)尾部, 繼續(xù)下一輪循環(huán)



   end



   -- 能到這里, 要么服務(wù)器斷開連接, 要么上報(tx)失敗, 或者是主動退出



   libnet.close(d1Name, 5000, netc)



   -- log.info(rtos.meminfo("sys"))



   sys.wait(30000) -- 這是重連時長, 自行調(diào)整

end

end

二、燒錄代碼到硬件

2.1 正確連接電腦和4G模組電路板

使用帶有數(shù)據(jù)通信功能的數(shù)據(jù)線,不要使用僅有充電功能的數(shù)據(jù)線;

2.2 識別4G模組的boot引腳

下載之前,要用模組的boot引腳觸發(fā)下載, 也就是說,要把4G模組的boot引腳拉到 1.8v,或者直接把boot引腳和VDD_EXT引腳相連。我們要在按下BOOT按鍵時讓模塊開機,就可以進入下載模式了。

具體到 Air780E開發(fā)板,

2.2.1 當(dāng)我們模塊沒開機時,按著BOOT鍵然后長按PWR開機。

2.2.2 當(dāng)我們模塊開機時,按著BOOT鍵然后點按重啟鍵即可。

圖片?

2.3 識別電腦的正確端口

判斷是否進入BOOT模式:模塊上電,此時在電腦的設(shè)備管理器中,查看串口設(shè)備, 會出現(xiàn)一個端口表示進入了boot下載模式,如下圖所示:

圖片?

當(dāng)設(shè)備管理器出現(xiàn)了3個連續(xù)數(shù)字的com端口,并且每個數(shù)字都大于4,這時候, 硬件連接上就緒狀態(tài),恭喜你,可以進行燒錄了!

2.4 新建項目

首先,確保你的 LuaTools 的版本,上大于 2.2.13 版本的。

在 LuaTools 的左上角上有版本顯示的,如圖所示:

圖片?

LuaTools 版本沒問題的話, 就點擊 LuaTOols 右上角的“項目管理測試”按鈕,如下圖所示:

圖片?

這時會彈出項目管理和燒錄管理的對話框,如下圖:

新建一個項目

注意:這里截圖使用的hello world項目的燒錄教程,燒錄的時候要將腳本換成本次demo的。

圖片?

2.5 開始燒錄

選擇780E板子對應(yīng)的底層core和剛改的main.lua腳本文件。下載到板子中。

圖片?

圖片?

點擊下載后,我們需要進入boot模式才能正常下載,在(3)(4)小節(jié)已經(jīng)介紹了如何進入boot模式。

圖片?

三、驗證功能

3.1 打開TCP SSL連接測試工具。

圖片?

3.2 配置端口,tcp連接,是否加密。

圖片?

3.3 成功連接并發(fā)送數(shù)據(jù)

圖片?

四、常見問題

4.1 最多同時支持多少個連接?

socket支持多個連接的, 通常最多支持8個。加密連接(TLS/SSL)需要更多內(nèi)存, 這意味著能容納的連接數(shù)會小很多, 同時也更慢。

4.2 可以與mqtt庫同時使用嗎?

支持。

以上就是今天的全部內(nèi)容,合宙低功耗4G模組Air780E快速入門之跟服務(wù)器之間的加密通信,你學(xué)會了嗎?

?審核編輯 黃宇

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

    關(guān)注

    12

    文章

    8940

    瀏覽量

    85057
  • 加密通信
    +關(guān)注

    關(guān)注

    1

    文章

    11

    瀏覽量

    2748
收藏 人收藏

    評論

    相關(guān)推薦

    【合宙Air780E開發(fā)板趣味應(yīng)用】Air780E開發(fā)板方言打麻將

    合宙10月份推出的Air780E模組,是一款LTE Cat.1 bis通信模塊,采用移芯EC618平臺,支持4G全網(wǎng)通。合宙也推出了相應(yīng)的開發(fā)板,別看開發(fā)板身材小,價格低,但是身手不差。合宙
    發(fā)表于 01-04 13:45

    基于Air780E的遠程報警方案

    恒博A780E-S智能遠程報警方案板,基于合宙低功耗4G Cat.1模組Air780E設(shè)計,支持LuatOS二次開發(fā),無需額外添加單片機;可以幫助行業(yè)客戶快速搭建遠程報警產(chǎn)品及其配套系統(tǒng),并提供客戶端軟件
    發(fā)表于 03-01 11:51 ?1827次閱讀

    低成本!基于Air780E的恒博智能遠程報警/控制方案

    系統(tǒng)方案服務(wù)商,已基于Air780E推出了遠程報警/控制系列方案。文末【閱讀原文】鏈接,了解更多Cat.1應(yīng)用方案。1基于Air780E
    的頭像 發(fā)表于 02-13 16:06 ?3335次閱讀
    低成本!基于<b class='flag-5'>Air780E</b>的恒博智能遠程報警<b class='flag-5'>器</b>/控制<b class='flag-5'>器</b>方案

    Air780E硬件設(shè)計手冊

    電子發(fā)燒友網(wǎng)站提供《Air780E硬件設(shè)計手冊.pdf》資料免費下載
    發(fā)表于 04-14 09:57 ?20次下載

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

    Air780E/Air780EP/Air780EQ/Air201模塊遇到死機問題如何分析簡介本文檔適用于合宙Air780E
    的頭像 發(fā)表于 07-19 15:37 ?509次閱讀
    <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模塊遇到死機問題如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內(nèi)存死機如何分析

    Air780E/Air780EP/Air780EQ/Air201模塊遇到內(nèi)存死機如何分析簡介本文檔適用于合宙Air780E、
    的頭像 發(fā)表于 07-19 16:07 ?438次閱讀
    <b class='flag-5'>Air780E</b>/<b class='flag-5'>Air780</b>EP/<b class='flag-5'>Air780</b>EQ/<b class='flag-5'>Air</b>201模塊遇到內(nèi)存死機如何分析

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

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

    合宙Air780E硬件設(shè)計手冊02

    合宙低功耗4G模組Air780E硬件設(shè)計介紹
    的頭像 發(fā)表于 09-06 12:02 ?349次閱讀
    合宙<b class='flag-5'>Air780E</b>硬件設(shè)計手冊02

    干貨篇:低功耗4G模組Air780E的串口通信

    ? 今天我們來講解低功耗4G模組Air780E的串口通信的基本用法,小伙伴們,學(xué)起來吧!
    的頭像 發(fā)表于 10-05 14:38 ?388次閱讀
    干貨篇:低功耗4G模組<b class='flag-5'>Air780E</b>的串口<b class='flag-5'>通信</b>

    低功耗4G模組Air780E的固件的遠程升級操作方法

    ?今天我們學(xué)習(xí)Air780E快速入門之固件的遠程升級,小伙伴們,學(xué)起來吧! 一、 生成差分包 合宙的遠程升級支持使用合宙云平臺和自建服務(wù)器,此例程使用的是合宙云平臺。 1.1 準(zhǔn)備新舊版的core
    的頭像 發(fā)表于 10-12 07:04 ?215次閱讀
    低功耗4G模組<b class='flag-5'>Air780E</b>的固件的遠程升級<b class='flag-5'>操作方法</b>

    超級干貨!Air780E的串口通信分享

    ? 猛然發(fā)現(xiàn),Air780E的串口通信還沒分享,難怪已經(jīng)有小伙伴提出了要求! 那我們來講解低功耗4G模組 Air780E 的串口通信的基本用法,小伙伴們,學(xué)起來吧! 一、硬件準(zhǔn)備 ?
    的頭像 發(fā)表于 10-15 10:47 ?272次閱讀
    超級干貨!<b class='flag-5'>Air780E</b>的串口<b class='flag-5'>通信</b>分享

    如何使用Air780E開發(fā)板?看這篇就夠了!

    ? 一、綜述 CORE-AIR780E 開發(fā)板是合宙通信推出的基于 Air780E 模組所開發(fā)的,包含電源,SIM 卡,USB,天線,音頻等必要功能的最小硬件系統(tǒng)。以方便用戶在設(shè)計前期
    的頭像 發(fā)表于 10-23 17:07 ?220次閱讀
    如何使用<b class='flag-5'>Air780E</b>開發(fā)板?看這篇就夠了!

    關(guān)于Air780E:使用文件系統(tǒng)存儲溫濕度數(shù)據(jù)怎么操作?

    的使用-程序源碼demo 780E開發(fā)板和DHT11 合宙的TCP/UDP測試服務(wù)器 API使用介紹 ? 1.2 程序解析 (1):首先采集溫濕度數(shù)據(jù) --采集溫濕度數(shù)據(jù),該引腳需要接開發(fā)板上一個帶上拉5k
    的頭像 發(fā)表于 10-31 07:26 ?64次閱讀
    <b class='flag-5'>關(guān)于</b><b class='flag-5'>Air780E</b>:使用文件系統(tǒng)存儲溫濕度數(shù)據(jù)怎么<b class='flag-5'>操作</b>?

    奇妙的Air780E之UDP應(yīng)用示例大賞!

    關(guān)于UDP是一種無連接的、不可靠的傳輸層協(xié)議,主要用于實現(xiàn)網(wǎng)絡(luò)中的快速通訊,我們今天將把Air780E的UDP應(yīng)用分析透徹。
    的頭像 發(fā)表于 11-04 09:25 ?114次閱讀
    奇妙的<b class='flag-5'>Air780E</b>之UDP應(yīng)用示例大賞!

    UDP應(yīng)用詳解:Air780E軟件的全面手冊

    了解Air780E軟件UDP應(yīng)用全面手冊,永享編程幸福人生。
    的頭像 發(fā)表于 11-05 12:31 ?39次閱讀
    UDP應(yīng)用詳解:<b class='flag-5'>Air780E</b>軟件的全面手冊