多協議物聯網關的方案測試-基于米爾全志T536開發板

本文將介紹基于米爾電子MYD-LT536開發板(米爾基于全志T536開發板)的多協議物聯網關方案的開發測試。

摘自優秀創作者-ALSET

米爾基于全志T536開發板

為了充分的應用該開發板,結合T536處理器的特點,這里進一步的進行軟件開發,充分利用開發板的硬件資源,完成業務產品的需求。這里以物聯網多協議網關應用為研究為目的,首先建立基礎的從各個硬件設讀取硬件端口的數據,并且通過SOCKET由網絡收發的過程。在一般開發物聯網網關時可以采用MQTT,MODBUS等協議庫,作為標準的通訊,來解決硬件型號采集和對TCP/IP網絡發送的過程。但有些業務則需要專有的通信協議來進行通訊,比如TCP、IP或者UDP的方式進行網絡收發。

在米爾的官方資料中已經提供了全套的開發資料,可以參考開發板的資料,來搭建所需要的開發環境。開發資料中提供了系統固化鏡像、Bootloader源碼、內核驅動源碼,以及豐富的Demo程序,閱讀資料有助于快速的構建開發環境。這里將在此開發板上進行驗證和測試。

1.主機硬件端口讀取
米爾在T536開發板上支持了豐富的端口并且開發板上做了型號的隔離,非常適合工業物聯網型號采集和控制。首先查看一下開發板的端口硬件資源:

開發板的物聯網接口資源豐富,它引出2路RS485、1路RS232、2路CAN、3路Ethernet、5路USB、Local Bus等通信接口,同時引出LVDS,HP OUT/MIC IN等音視頻多媒體接口,內置2TOPS NPU、8M@30fps ISP,并支持4K@25fps H.264視頻編碼。
這里首先進行讀取RS232和485端口數據,這里設計可配置的數據參數讀物方式,端口配置保存在板子用戶目錄下。

2.端口配置文件
通過使用端口配置,可以方便的在實施時配置與業務對應的參數,符合應用場景。這樣不必修改程序即可投入使用,這里配置端口文件如下

3.進程間通訊程序RPC
為了使讀取的數據,能多重的使用,這里使用多線程的方式,其中一個線程負責讀取線程,并把讀取的數據壓入系統的隊列中。另外一個線程則可以檢查和處理數,比如對數據做異常值檢查,對數據做平滑,抽稀,均值等處理,通信線程則把需要的數據向另外的進程通過進程通訊的方式進行發送,RPC線程程序設計如下:

4.交叉編譯環境腳本編寫

編寫好編譯腳本,即完成整體工程的創建,并傳輸到編譯環境主機中進行編譯。把工程項目傳到主機交叉編譯環境中:

然后直接make 進行編譯:

很順利的編譯成功。

5. 開發http服務程序
在物聯網網關設備中,通常采用web的管理界面,用戶監控系統應用的工作狀態,以及進行的必要的配置和設置等工作。這里設計一個嵌入式的http服務程序,考慮服務程序和硬件緊密結合,這里不使用nginx等這樣的獨立的web服務程序,而是使用httpd開源的小型http服務工程,進行二次開發,好處是可以方便的加入對硬件的訪問以及特別的應用功能,不如獲取端口的數據,并做處理,通過web網關傳到頁面前端,通過動態html腳本,完成靈活的頁面和底層訪問的功能。這里使用httpd開源工程進行二次開發:
工程主代碼如下:

工程目錄如下:

其中需要創建幾個運行目錄,tmpl是前端頁面模板目錄,里面可以放入html模板,供http服務器程序渲染輸出最終的html頁面。
www目錄則放置靜態資源文件,如圖片,樣式表文件,js前端腳本文件等。
這幾個目錄也需要在開發板上創建。
對工程進行編譯,編譯如下:

可見成功的編譯出httpd板上執行程序。

6.設計并開發前端頁面
為了使這個物聯網網關根直觀可用,這里還需要設計一組前端頁面,方便觀察網關的運行裝填,以及對響應的配置文件等進行配置。因為前端頁面不是開發板主要的開發目標,這里我們使用AI輔助設計前端頁面,順便也看一下AI前端頁面設計的能力。這里使用字節跳動的coze spzce智能體來設計物聯網網關的前端頁面,首先打開扣子空間頁面:

在提示詞中詳細描述我們的頁面設計內容,提示詞內容如下:

再點擊生成,經過大約5分鐘的時間,生成了頁面代碼和樣式表文件以及相關js代碼,生成內容如下:

輸出的頁面內容如下:

7.手動調整修改HTML前端頁面

由智能體生成的頁面,通過檢查,發現頁面中有不少錯誤和缺失,首先對頁面進行人工檢查錯誤和修改,對頁面中的實例數據進行刪除,并修改為全局模板變量,對訪問的靜態資源文件位置進行修改,對訪問數據的XRH方式進行jquery方式進行修改。

8.服務程序和前端頁面模板部署
把端口數據服務程序以及WEB后臺服務程序httpd都傳輸到開發板上,并且把頁面模板也傳輸到開發板httpd的同級目錄下:

前端頁面的部署:

9.服務啟動運行
部署好服務程序后,即可開始啟動相關服務程序,首先啟動
multi-serial-monitor

打開瀏覽器,輸入開發板的IP,訪問WEB頁面,顯示出來:

總結

通過初步的通訊多端口數據的采集與收發,和使用多線程的的工作方式,以及多進程的任務服務方式,實現了T536數據采集與收發的程序測試。并且開發了嵌入式的http服務,提供一個簡單明了的客戶端管理界面,整個開發過程整體非常順暢。很容易建立好開發板的使用環境。同時通過開發板的多協議網關程序,也可以進一步將該數據網關用戶智能生產控制領域,如智慧樓宇,智慧工廠等。通過開板的完備的功能以及各個子系統的緊湊聯系,使得面向物聯數據開發過程游刃有余,對進一步開發復雜的業務邏輯和定制化業務流程也很有幫助。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84564.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84564.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84564.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

echarts的還原,下載圖片失效(空白圖片,還原白屏)

echarts的toolbox.feature. restore 和toolbox.feature. saveAsImage 失效 也沒有任何報錯, 只需要修改: // chart.setOption(op); chart.setOption(op,true);

56-Oracle SQL Tuning Advisor(STA)

各位小伙伴,一般都用哪些優化工具,Oracle SQL Tuning Advisor (STA)用的多嗎,Profile就是它的其中1個產物,下一期再弄Profile,STA 的核心功能是自動化診斷高負載SQL的性能瓶頸?(如全表掃描、缺失索引&…

修改element-plus的主題色css變量

提示:本文僅是記錄我修改element-plus等組件庫的css變量, 具體【實現主題色切換看這篇】即可 文章目錄 1.文件劃分2.src/style/index.scss入口文件3.src/style/theme.scss主題色切換維護4.src/style/_color-utils.scss動態生成element-plus的scss變量5.…

Vibe Coding - 進階 Cursor Rules

文章目錄 為什么要配置 .cursorrules使用 .cursorrules 的五大優勢 如何創建與應用 .cursorrules? 基礎步驟🛠 創建方式: 高質量 .cursorrules 文件,應包含以下內容配置示例Java 項目TypeScript React 項目總結 cursorrules 推薦網站 為什么…

騰訊云自動化助手(TAT)技術評估報告

摘要 騰訊云自動化助手(TAT)作為云服務器(CVM)與輕量應用服務器(Lighthouse)的原生運維工具,通過無密碼批量命令執行(Shell/Python/PowerShell)、交互式會話管理及公共命…

【simulink】IEEE5節點系統潮流仿真模型(2機5節點全功能基礎模型)

主要內容 該模型為simulink仿真模型,主要實現的內容如下: 模型是基于 Simulink 搭建的電力系統潮流計算仿真模型,圍繞2 臺發電機、5 個節點的拓撲結構構建,用于電力系統穩態分析,是電力系統研究、教學及工程實踐中…

責任鏈模式詳解

責任鏈模式 場景 顧名思義,責任鏈模式(Chain of Responsibility Pattern)為請求創建了一個接收者對象的鏈。這種模式給予請求的類型,對請求的發送者和接收者進行解耦。這種類型的設計模式屬于行為型模式。 在這種模式中&#x…

Taro 跨端應用性能優化全攻略:從原理到實踐

引言:為什么需要性能優化? 在當今移動互聯網時代,用戶體驗已經成為決定產品成敗的關鍵因素。根據 Google 的研究,頁面加載時間每增加 1 秒,移動端轉化率就會下降 20%。對于使用 Taro 開發的跨端應用來說,性…

Git集成Jenkins通過Pipeline方式實現一鍵部署

Docker方式部署Jenkins 部署自定義Docker網絡 部署Docker網絡的作用: 隔離性便于同一網絡內容器相互通信 # 創建名為jenkins的docker網絡 docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 jenkins# 查看docker網絡列表 docker network ls# …

磐基PaaS平臺MongoDB組件SSPL許可證風險與合規性分析(下)

#作者:任少近 3.7.條款六:非源代碼形式分發 官方原文如下: 原文關鍵部分:“You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.” 解讀:“您不得…

桌面小屏幕實戰課程:DesktopScreen 2 第一個工程

飛書文檔http://https://x509p6c8to.feishu.cn/docx/doxcnkGhtbxcv8ge5wKFkunsgmm 一、創建工程 cd ~/esp cp -r esp-idf/examples/get-started/hello_world . cd ~/esp/hello_world//設置目標板卡相關 idf.py set-target esp32//可配置工程屬性 idf.py menuconfig 工程源碼…

華為云Flexus+DeepSeek征文|體驗華為云ModelArts快速搭建Dify-LLM應用開發平臺并搭建查詢數據庫的大模型工作流

華為云FlexusDeepSeek征文|體驗華為云ModelArts快速搭建Dify-LLM應用開發平臺并搭建查詢數據庫的大模型工作流 什么是華為云ModelArts 華為云ModelArts ModelArts是華為云提供的全流程AI開發平臺,覆蓋從數據準備到模型部署的全生命周期管理&#xff0c…

【深度學習】TensorFlow全面指南:從核心概念到工業級應用

TensorFlow全面指南:從核心概念到工業級應用 一、TensorFlow:人工智能時代的計算引擎1.1 核心特性與優勢 二、安裝與環境配置2.1 版本選擇建議2.2 GPU支持關鍵組件 三、TensorFlow核心概念解析3.1 數據流圖(Data Flow Graph)3.2 張量(Tensor)&#xff1a…

在VTK中捕捉體繪制圖像進階(同步操作)

0. 概要 這段代碼實現了一個VTK(Visualization Toolkit)應用程序,主要功能是: 讀取DICOM醫學圖像序列并進行體繪制(Volume Rendering)創建一個主窗口顯示3D體繪制結果創建一個副窗口顯示主窗口的2D截圖將副窗口中的交互操作(如旋轉、縮放等)轉發到主窗口,而不影響副窗…

使用NPOI庫導出多個Excel并壓縮zip包

使用NPOI庫導出Excel文件可以按照以下步驟進行: 添加NPOI庫的引用:在項目中添加對NPOI庫的引用。 創建一個新的Excel文件對象:使用NPOI中的HSSFWorkbook(對應.xls格式)或XSSFWorkbook(對應.xlsx格式&#…

【AGI】突破感知-決策邊界:VLA-具身智能2.0

突破感知-決策邊界:VLA-具身智能2.0 (一)技術架構核心(二)OpenVLA:開源先鋒與性能標桿(三)應用場景:從實驗室走向真實世界(四)挑戰與未來方向&…

消融實驗視角下基于混合神經網絡模型的銀行股價預測研究

鏈接: 項目鏈接_link 結果 模型消融: 特征消融: 中國銀行_不同模型預測結果和模型評估可視化 招商銀行_不同模型預測結果和模型評估可視化 模型評估可視化

MySQL存儲引擎與架構

MySQL存儲引擎與架構 1.1詳細了解數據庫類型 1.1.1關系型數據庫 常見產品:MySQL(免費)、Oracle 關系型數據庫模型是把復雜的數據結構歸結為簡單二維表格形式。通常該表第一行為字段名稱,描述該字段的作用,下面是具體…

將浮點數轉換為分數

原理 double 由以下部分組成: 符號位指數部分尾數部分 符號位的含義:為 0 表示正數,為 1 表示負數。指數部分的含義:在規格化數中,指數部分的整型值減去 1023 就是實際的指數值。在非規格化數中,指數恒為…

前端實現截圖的幾種方法

前端實現截圖的幾種方法 前端實現截圖功能有多種方式,下面我將介紹幾種常用的方法及其實現方案。 1. 使用 html2canvas 庫 html2canvas 是最流行的前端截圖解決方案之一,它可以將 DOM 元素轉換為 canvas。 基本用法 import html2canvas from html2c…